Я установил 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-скрипте и терминале.