PHP exec () не выполняет команду для FFmpeg - PullRequest
1 голос
/ 30 августа 2011

Я установил 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, но это не сработало.

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

Спасибо!

Ответы [ 2 ]

3 голосов
/ 30 августа 2011

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

1 голос
/ 30 августа 2011

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

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

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

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

...