【发布时间】:2011-04-14 10:36:53
【问题描述】:
命令行中的 ffmpeg 生成预览文件和两个单独的两遍转换,当从 shell 脚本运行时,它们会成功执行。
通过 php 的 exec(/usr/bin/ffmpeg) 或 exec(name_of_shell_script) 运行命令成功生成预览文件。奇怪的行为是电影会生成,然后截断。 ffmpeg 日志文件生成成功,随着转换的继续,我可以看到输出文件的大小增加,然后,当它出现时,文件被截断....
系统上唯一改变的东西是从 mod_php 更改为 mod_fcgi 和 php_cgi,但错误日志显示除了
之外没有任何异常mod_fcgid: stderr: wmv, files3/1qwj, 1qwj.wmv
抑制shell的输出
scriptname.sh > /dev/null 2>&1
不会改变结果。
应该使用 shell_exec 吗?是unix权限吗?
这是在 ubuntu 10.04.1 中
此解决方案不适用 FFMPEG running in Command Line but not PHP
编辑:
看起来它可能与两遍编码有关。两遍编码在命令行中工作正常,但在 PHP 环境中,shell 在第二遍时会覆盖某些内容。
nice -n 11 /usr/bin/ffmpeg -y -i $1 -r 30000/1001 -b 1M -bt 2M -vcodec libx264 -threads 0 -pass 1 -vpre /usr/share/ffmpeg/libx264-fastfirstpass.ffpreset -an movie.flv
nice -n 11 /usr/bin/ffmpeg -y -i $1 -r 30000/1001 -b 1M -bt 2M -vcodec libx264 -threads 0 -pass 2 -vpre /usr/share/ffmpeg/libx264-hq.ffpreset -acodec libfaac -ac 2 -ar 48000 -ab 192k movie.flv
$1 是输入文件名
找到 https://roundup.ffmpeg.org/issue1829
编辑:
这里完成后是日志文件工件
-rw-r--r-- 1 www-data www-data 0 2010-09-19 19:02 ffmpeg2pass-0.log
-rw-r--r-- 1 www-data www-data 0 2010-09-19 19:02 movie.flv
-rw-r--r-- 1 www-data www-data 153466 2010-09-19 19:02 movie.jpg
-rw-r--r-- 1 www-data www-data 358803 2010-09-19 19:02 movie_preview.jpg
-rw-r--r-- 1 www-data www-data 410283 2010-09-19 19:02 x264_2pass.log
-rw-r--r-- 1 www-data www-data 5759257 2010-09-19 19:02 x264_2pass.log.mbtree
应维护者的要求打开新票 https://roundup.ffmpeg.org/issue2238
编辑: 看起来问题是 wmv 文件的音频
【问题讨论】: