为什么ffmpeg在命令行执行转换的结果不能重定向到文件
From Ffmpeg工程组
提出问题:
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在命令行执行转换的结果不能重定向到文件的讨论
