PHP's exec()不执行FFmpeg命令


PHP's exec() not executing command for FFmpeg

我已经在我的服务器上安装了ffmpeg,它可以通过我的终端正常工作。我能够成功地将文件转换为webm格式,所以我确信安装是好的。我也确信我的机器上只安装了一个ffmpeg。

当我尝试通过PHP的exec()转换文件时出现了一个问题。当我在终端上运行相同的命令时,什么也没有发生。我在stackoverflow和其他网站上寻找帮助。我试着这样看输出:

exec($cmd, $out, $rv);
echo "output is:'n".implode("'n", $out)."'n exit code:$rv'n";

输出为:"output is: exit code: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",但这不起作用。

为什么脚本不能正确运行命令并转换文件?

谢谢!

错误码127表示无法找到可执行文件(ffmpeg)。尝试指定整个路径(您可以在使用which ffmpeg的终端中找到它),或者比较php脚本和终端中PATH环境变量的值。

我有类似的问题,从php的ant目标执行。我无法从ant命令中获得整个输出,只有前几行,并且没有执行ant目标。也就是说部分执行。

使用bellow命令,我已经设法运行它,但命令的输出被追加到log_file.log.

$commandString = 'you_command_here >> log_file.log 2>&1 &';
$command = exec($commandString);