Example #1
0
             }
             if (!requireVer("1", "2")) {
                 logXmlErr("H264 Event viewing requires eyeZm v1.2 or greater");
                 exit;
             }
             /* Good to go */
             $fname = "capture.mp4";
             $ffparms = getFfmpeg264FoutParms(validString(getset('br', ZM_EYEZM_H264_DEFAULT_EVBR)), $baseURL . "/" . $fname);
         } else {
             logXmlErr("Unknown codec " . $vcodec . " selected for event viewing");
             exit;
         }
     }
     logXml("Selected " . $vcodec . " for viewing event " . $event['Id']);
     $fnameOut = $baseURL . "/" . $fname;
     $shellCmd = getFfmpegPath() . " -y -r " . $fps . " -i " . $baseURL . "/%0" . ZM_EVENT_IMAGE_DIGITS . "d-capture.jpg";
     $shellCmd .= " " . $ffparms;
     logXml("Encoding event with command: " . $shellCmd);
     $shellOutput = shell_exec($shellCmd);
     /* Check that file exists */
     if (!file_exists(trim($fnameOut))) {
         logXmlErr("Generate Event " . $event['Id'] . " file " . $fnameOut . " does not exist");
         exit;
     }
     $url = "./" . getEventPathSafe($event) . "/" . $fname;
     logXml("Loading Event URL " . $url);
     header("Location: " . $url);
     exit;
 } else {
     if (!strcmp($action, "vframe")) {
         /* ACTION: View a frame given by an event and frame-id. Parms: <eid> <frame> [alarm | analyze | qty | scale]
Example #2
0
/** Return FFMPEG parameters for H264 streaming */
function getFfmpeg264Str($width, $height, $br, $fin, $fout)
{
    $ffparms = getFfmpeg264FoutParms($br, $fout);
    $ffstr = getFfmpegPath() . " -t " . ZM_EYEZM_H264_MAX_DURATION . " -analyzeduration 0 -i ";
    $ffstr .= $fin . " -f mpegts " . $ffparms;
    return $ffstr;
}