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/

Другие вопросы по тегам