PHP - 使用exec()执行ffmpeg并且shell_exec()不执行任何操作

时间:2012-04-27 20:44:57

标签: php audio ffmpeg audio-converter

我正在尝试使用ffmpeg在PHP中转换音频文件,我通过post作为m4a获取音频文件,我想将其转换为mp3。我这样做是为了做到这一点:

$commandOutput = shell_exec('ffmpeg -i '.$filePath.' -ar 8000 -ab 16000 '.str_replace('m4a', 'mp3', $filePath));

然而它什么也没做,而commandOutput也什么都没有。文件保存正确但未转换为mp3,当我在终端中运行相同的命令时,它正确地转换文件。知道可能会发生什么吗?

2 个答案:

答案 0 :(得分:2)

尝试包装如下命令:

exec($cmd." 2>&1", $out, $ret);
if ($ret){
    echo "There was a problem!\n";
    print_r($out);
}else{
    echo "Everything went better than expected!\n";
}

exec()可让您捕获所有输出并获取退出代码。添加2>&1可确保将STDERR重定向到STDOUT,以便您可以看到任何错误消息。

答案 1 :(得分:1)

您可以使用ffmpeg-php扩展名:http://sourceforge.net/projects/ffmpeg-php/