/* Can generate, we are good to go */ $fname = "capture.mov"; $ffparms = "-vcodec mpeg4 -r " . ZM_EYEZM_EVENT_FPS . " " . $baseURL . "/" . $fname . " 2> /dev/null"; } else { if (!strcmp($vcodec, "h264")) { if (!ffmpegSupportsCodec("libx264")) { logXmlErr("FFMPEG not installed, accessible in path/ZM_PATH_FFMPEG, or doesn't support H264"); exit; } 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;
/** 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; }