PHP的exec()不执行FFmpeg命令
问题描述:
我已经在我的服务器上安装了ffmpeg,并且它可以通过我的终端正常工作。我能够成功地将文件转换为webm格式,所以我确信安装很好。我也确定我的机器上只安装了一个ffmpeg安装。PHP的exec()不执行FFmpeg命令
当我尝试通过PHP的exec()通过PHP转换文件时出现问题。当我运行相同的命令时,我跑到终端,没有任何反应。我查看了周围的计算器和网络的其他部分,以获得一些帮助。我试过这个,看看输出:
exec($cmd, $out, $rv);
echo "output is:\n".implode("\n", $out)."\n exit code:$rv\n";
的输出是: “输出是:退出代码:127”
我使用的命令格式如下:
ffmpeg -i "sample.mov" -vcodec libvpx -r 30 -b "644k" -acodec libvorbis -ab 128000 -ar "44100" -ac 2 -s "352x198" "sample.webm"
我试过用FFmpeg的完整路径替换“ffmpeg”,但那没有奏效。
为什么脚本不能正确运行命令并转换文件?
谢谢!
答
我有类似的问题,从蚂蚁目标执行从PHP。我不能从ant命令获得整个输出,只有前几行,并且ant目标没有执行。换句话说就是部分执行。
使用波纹管命令我已经设法运行它,但命令的输出被附加到log_file.log。
$commandString = 'you_command_here >> log_file.log 2>&1 &';
$command = exec($commandString);
希望这会对你有用。
答
错误代码127表示无法找到可执行文件(ffmpeg)。尝试指定整个路径(你可以在你的终端中找到which ffmpeg
),或者比较你的php脚本和终端中的PATH
环境变量的值。
+1
“我尝试用FFmpeg的完整路径替换”ffmpeg“,但那不起作用。” – tundoopani
这是“¿Porqué?” (两个字); -P –
facepalm。谢谢,我忘了:p – tundoopani
可能重复的http://*.com/questions/4828083/ffmpeg-php-error-code-127 –