我使用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表示发生了一些错误。
答案 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
命令可用之前。 (这确实会减少这里的问题数量。)