为什么ffmpeg在命令行执行转换的结果不能重定向到文件

From Ffmpeg工程组

Jump to: navigation, search

提出问题:

xp下cmd里执行
ffmpeg.exe -i "e:\input\06.asf" -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 test.flv >>log.log
无法重定向。log.log文件是空的,然而屏幕上却有显示。
用别人编译的,和我自己编译的ffmpeg,都不行。
查help查不到选项。
只有一个 -v ,这个选项放进命令行,照样无用。

对应解答:

因为默认的输出式stderr
所以,修改为
ffmpeg.exe -i "e:\input\06.asf" -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 test.flv 2>>log.log
ok.........
在php中用exec调用则要这么写才能得到返回内容。
命令的最后+上 空格2>&1
0是stdin
1是stdout
2是stderr
意思是将输出到stderr的信息都输出到stdout,这样exec就可以得到返回的处理结果了。

有关该问题的讨论帖可参考ffmpeg工程组论坛中的相关讨论:

有关为什么ffmpeg在命令行执行转换的结果不能重定向到文件的讨论
Personal tools