PHP exec () не выполняет команду для FFmpeg

Я установил ffmpeg на свой сервер, и он отлично работает через мой терминал. Я могу успешно конвертировать файл в формат webm, поэтому я уверен, что установка прекрасна. Я также уверен, что у меня есть только одна установка ffmpeg, установленная на моей машине.

Проблема возникает, когда я пытаюсь преобразовать файлы через PHP через PHP exec (). Когда я запускаю те же команды, я бегал в терминале, ничего не происходит. Некоторую помощь я просмотрел stackoverflow и другие части сети. Я попробовал это, чтобы увидеть результат:

exec($cmd, $out, $rv); echo "output is:\n".implode("\n", $out)."\n exit code:$rv\n"; 

Выход: «выход: код выхода: 127»

Команда, которую я использую, имеет следующий формат:

 ffmpeg -i "sample.mov" -vcodec libvpx -r 30 -b "644k" -acodec libvorbis -ab 128000 -ar "44100" -ac 2 -s "352x198" "sample.webm" 

Я попытался заменить «ffmpeg» на полный путь к FFmpeg, но это не сработало.

Почему скрипт не запускает команду правильно и не конвертирует файлы?

Спасибо!

У меня есть аналогичная проблема с ant-целями от php. Я не могу получить весь вывод из команды ant только первые несколько строк, а цель ant не была выполнена. Другими словами, выполняется частичное исполнение.

С помощью команды bellow мне удалось запустить ее, но вывод команды добавляется к log_file.log.

 $commandString = 'you_command_here >> log_file.log 2>&1 &'; $command = exec($commandString); 

Надеюсь, это сработает для вас.

Код ошибки 127 означает, что исполняемый файл (ffmpeg) не найден. Попробуйте указать весь путь (вы можете найти в своем терминале с помощью which ffmpeg ) или сравнить значение PATH среды PATH в вашем php-скрипте и терминале.