什么是ffmpeg退出代码2?并且输出错误数组为空并且无法在php中工作

时间:2019-06-12 11:42:36

标签: php ffmpeg

我使用ffmpeg将比特率转换为128,但无法在php中工作

 exec("ffmpeg -i input.mp3 -codec:a libmp3lame -b:a 128k output().mp3 2>&1", 
 $output, $exit_code);
 if ($exit_code!= 0) {
    $data['message'][] = "Error";
 }

 print_r($output);
 print_r($exit_code);
 exit;

运行此代码后,显示错误代码2。 输出是一个空数组,并且exit_code是2,并且不会创建output.mp3文件。

我已经学习过How can I find out what this ffmpeg error code means?,但这不是我的问题,不解释错误代码2或未定义错误代码2。我的问题是不显示任何错误并且错误消息为空,仅exit_code显示2表示发生了一些错误。

1 个答案:

答案 0 :(得分:2)

意外令牌'('附近的

语法错误

您需要对括号进行转义,因为它们是特殊字符:

exec("ffmpeg -i input.mp3 -codec:a libmp3lame -b:a 128k 'output().mp3' 2>&1",

exec("ffmpeg -i input.mp3 -codec:a libmp3lame -b:a 128k output\(\).mp3 2>&1",

另请参阅FFmpeg: Quoting & Escaping

这并非完全是PHP问题,因此请始终确保在尝试编写脚本之前,在您的ffmpeg命令可用之前。 (这确实会减少这里的问题数量。)