当我通过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);
Works:
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);
最好的问候Neo
这对我有用:
... 2>&1 >> log.txt
也由exec测试:
php -r "exec('ffmpeg -version 2>&1 >> log.txt');"