我在PHP的一个网站上使用ffmpeg,我使用php exec函数转换文件,实际上它让我有些头疼试图弄清楚这个ffmpeg在执行exec命令后完成文件转换:(无论如何这样做?
谢谢
答案 0 :(得分:2)
根据我的发现,exec函数会阻塞,直到ffmpeg转换完成。
例如,您可以在PHP脚本中运行这样的ffmpeg:
exec($encode, $output);
(其中$ encode是作为字符串的ffmpeg命令,$ output是来自ffmpeg的每行输出的数组。)
对我来说,这个exec命令阻止我的PHP脚本继续,直到ffmpeg转换完成,此时我的PHP脚本继续,这似乎是PHP手册中的描述:
http://php.net/manual/en/function.exec.php
因此,您可以通过在脚本的下一行使用另一个PHP命令执行exec命令来告知转换是否完成,或者更新数据库,或者更新数据库。
仅供参考,我认为将exec命令“推入后台”意味着运行exec命令但让PHP脚本同时继续(即异步)。对于在后台运行exec命令,谷歌“PHP后台执行”或“php多进程”,如:
http://www.php.net/manual/en/ref.exec.php#80241 http://www.sitecrafting.com/blog/to-run-php-code-in/