【发布时间】:2014-09-12 10:06:57
【问题描述】:
我正在尝试在 php 中将视频从 .mp4 转换为 .flv:
shell_exec("ffmpeg -i input.mp4 output.flv 1>output.txt 2>&1");
另外,我在output.txt 文件中获取整个过程的输出,以便在javascript 中创建进度条(这不是这里的问题)。
问题是:
如果视频(input.mp4)大小> 50Mb,则完成shell_exec(> 30秒)需要很长时间。这会不必要地挂起 UI。
所以我想知道的是:
有没有办法让
shell_exec与脚本的其余部分一起工作?我只需要通过
php脚本启动ffmpeg.exe,然后php脚本就可以终止了。一旦进程启动
javascript将开始它的魔法(在客户端)。
所以我需要执行shell_exec async。与脚本的其余部分。并且一旦启动该过程,脚本应该通过简单的echoing 通知客户。它不应该等待ffmpeg.exe 完成其工作。有可能吗?
我在 SO 上看到过几个类似的问题,其中许多都描述了相同的问题
例如:
Run a ffmpeg process in the background
ffmpeg Progress Bar - Encoding Percentage in PHP
Can ffmpeg show a progress bar?
等等
但是
他们都在使用linux 操作系统或使用curl。我正在使用windows 8(没有 curl 和除ffmpeg.exe 之外的任何其他附加组件的 wamp)。
那么有可能吗?这里的专家可以再帮我一次吗?
提前致谢。
【问题讨论】: