2010-09-19 145 views
2

命令行中的ffmpeg生成预览文件和两个单独的双向转换,从shell脚本运行时,成功执行。ffmpeg从命令行运行,从mod_fcgi执行完成后截断

通过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 

supressing外壳的输出

scriptname.sh > /dev/null 2>&1 

不会改变结果。

应该使用shell_exec吗?它是一个unix许可?

这是在Ubuntu 10.04.1

这种解决方案并不适用 FFMPEG running in Command Line but not PHP

编辑:

看起来它可能有一些做两遍编码。两遍编码可以在命令行中正常工作,但是从PHP env 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 

运在维护者的要求ened新票 https://roundup.ffmpeg.org/issue2238

编辑: 貌似问题是WMV文件

http://ubuntuforums.org/showthread.php?t=1074152

回答

2

问题就走了通过更新的ffmpeg和编译音频。 wmv专业音频文件现在支持ffmpeg,并且我使用的安装不支持。