PHP - выполнение ffmpeg с использованием exec() и shell_exec() ничего не делает
Я пытаюсь преобразовать аудиофайл в PHP с помощью ffmpeg, я получаю аудиофайл по почте в виде m4a и хочу превратить его в mp3. Я делаю следующее, чтобы сделать это:
$commandOutput = shell_exec('ffmpeg -i '.$filePath.' -ar 8000 -ab 16000 '.str_replace('m4a', 'mp3', $filePath));
Тем не менее, он ничего не делает, и commandOutput также не содержит ничего. Файл сохраняется правильно, но не конвертируется в mp3, когда я запускаю ту же команду в терминале, он конвертирует файл должным образом. Есть идеи, что может происходить?
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
так что вы можете увидеть любые сообщения об ошибках.
Вы можете использовать расширение ffmpeg-php: http://sourceforge.net/projects/ffmpeg-php/