gpt4 book ai didi

php - 通过 PHP 调用 ffmpeg 但不要等待

转载 作者:行者123 更新时间:2023-12-04 22:51:38 25 4
gpt4 key购买 nike

我有我的上传脚本来处理文件上传,然后调用 exec(ffmpeg -i......

我调用 ffmpeg 3 次。一个转换为mp4,一个转换为web,一个获取缩略图。

问题是,如果调查员上传了他所有的镜头,他不想坐在那里等待它转换,然后才能做任何其他事情。那么如何发送 3 个命令然后退出脚本呢?

我也想运行 exec(rm -r/path/to/original) 所以原始视频被删除但显然我必须等待转换完成才能运行

最佳答案

您可以在命令后使用与号字符在后台运行它并立即恢复提示(控制)。

我建议创建一个 bash 脚本,例如:

#!/bin/sh
ffmpeg -i $1 -ab 64k -vb 420k $1.mp4
ffmpeg -i $1 -ab 64k -vb 420k $1.webm

然后从 php 运行它,例如:
system ('myscript.sh tempfile &');

以下示例使用 if结构来决定是否使用声音。第一个参数是文件名,如果第二个等于 0那么 mp4 上没有声音,如果第三个为零,则 webm 上没有声音。
#!/bin/sh
if [ $2 -eq 0 ]
then
ffmpeg -i $1 -an -vb 420k $1.mp4
else
ffmpeg -i $1 -ab 64k -vb 420k $1.mp4
fi


if [ $3 -eq 0 ]
then
ffmpeg -i $1 -an -vb 420k $1.webm
else
ffmpeg -i $1 -ab 64k -vb 420k $1.webm
fi

您可以从 PHP 中使用它,例如:
system ('myscript.sh ' . $tempfile . ' ' . (0 + $mp4sound) . ' ' . (0 + $webmsound) . ' &');

...但请记住,您甚至可以启动 PHP 文件而不是 shellscript,例如:
system ("php converter.php \"$tempfile\" \"$mp4sound\" \"$webmsound\" &');

关于php - 通过 PHP 调用 ffmpeg 但不要等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7632338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com