我一直在玩这个几天。 这个“ffmpegprogress”的东西有帮助,但是很难和我一起工作,而且很难阅读代码。
为了显示ffmpeg的进度,您需要执行以下操作:
从php运行ffmpeg命令,而不用等待响应(对我来说,这是最难的部分)
告诉ffmpeg将其输出发送到一个文件
从前端(AJAX,Flash,不pipe)直接打这个文件还是一个可以从ffmpeg的输出中取出进度的php文件。
以下是我解决每个部分的方法:
我从“ffmpegprogress”得到了以下想法。 这是他做的:一个PHP文件通过一个http套接字调用另一个。 第二个实际运行“exec”,第一个文件挂在上面。 对我来说,他的实施太复杂了。 他正在使用“fsockopen”。 我喜欢CURL。 所以这就是我所做的:
$url = "http://".$_SERVER["HTTP_HOST"]."/path/to/exec/exec.php"; curl_setopt($curlH, CURLOPT_URL, $url); $postData = "&cmd=".urlencode($cmd); $postData .= "&outFile=".urlencode("path/to/output.txt"); curl_setopt($curlH, CURLOPT_POST, TRUE); curl_setopt($curlH, CURLOPT_POSTFIELDS, $postData); curl_setopt($curlH, CURLOPT_RETURNTRANSFER, TRUE); // # this is the key! curl_setopt($curlH, CU