2011-08-30 310 views
1

我已经在我的服务器上安装了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”,但那没有奏效。

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

谢谢!

+2

这是“¿Porqué?” (两个字); -P –

+0

facepalm。谢谢,我忘了:p – tundoopani

+0

可能重复的http://stackoverflow.com/questions/4828083/ffmpeg-php-error-code-127 –

回答

1

我有类似的问题,从蚂蚁目标执行从PHP。我不能从ant命令获得整个输出,只有前几行,并且ant目标没有执行。换句话说就是部分执行。

使用波纹管命令我已经设法运行它,但命令的输出被附加到log_file.log。

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

希望这会对你有用。

3

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

+1

“我尝试用FFmpeg的完整路径替换”ffmpeg“,但那不起作用。” – tundoopani