首页 > 解决方案 > 通过 PHP 执行。我无法将输出(stderr)放入文件中

问题描述


当我通过 php 运行 exec() 时,我无法将输出(stderr)放入文件中。

我在命令末尾包含了“2> my_out_put_file.txt”来完成此操作。但是当我包含这个时,该命令不会被执行。但是,如果我在没有“2> my_out_put_file.txt”的情况下运行命令,那么它可以工作。

有趣的是,如果我直接通过 shell/promt 运行,即使命令末尾有“2> my_out_put_file.txt” ,整个命令也可以工作,但当我通过 php / apache 运行时则不行。


不工作:

exec("C:/FFmpeg/bin/ffmpeg -i $new_path/$filename_with_ext -f mp4 -vcodec libx264 -preset ultrafast -profile:v main -acodec aac $new_path/$filename.mp4 2> out.txt ", $ a, $b);


作品:

exec("C:/FFmpeg/bin/ffmpeg -i $new_path/$filename_with_ext -f mp4 -vcodec libx264 -preset ultrafast -profile:v main -acodec aac $new_path/$filename.mp4", $a, $b) ;


最好的问候
尼奥

标签: phpapacheffmpegcommandstderr

解决方案


这对我有用:

... 2>&1 >> log.txt

也从 exec 测试:

php -r "exec('ffmpeg -version 2>&1 >> log.txt');"

推荐阅读