2015-03-23 3 views
0

Я изучаю использование ffmpeg довольно долгое время и казался немного запутанным для меня. Наконец, я обнаружил, что команда exec PHP может помочь в выполнении команды ffmpeg, если ffmpeg установлен в системе. Я создал сценарий PHP ниже:Невозможно использовать команду exec для использования ffmpeg

exec("ffmpeg -i C:\Users\sameeksha\Downloads\v.mp4 -ar 22050 -ab 32 -f flv -s 320x240 C:\FFMPEG\video.flv", $output, $return); 

    if($return) { 
     echo "created ".$output;  
    } 
    else 
     echo "not ".$output; 

Та же команда запуска из командной строки, создавая конвертировать видео, но когда я запускаю его как PHP скрипт это не делает. Я даже установил dll-файлы для ffmpeg, но все же не работал для меня.

Любая помощь будет оценена по достоинству.

+0

Попробуйте использовать полный путь к файлу ffmpeg. При запуске с веб-сервера (например: apache) команды запускаются от пользователя веб-сервера (например: пользователь с именем «apache»). Возможно, пользователь apache не видит файл ffmpeg. При использовании командной строки сценарий запускается под пользователем, который запускал эту команду, что, скорее всего, является вашей учетной записью, а это значит, что он может видеть файл, потому что он был добавлен в переменную среды пути. –

ответ

2

Вам нужно избежать обратных косых черт в строке с двойными кавычками.

Пример: C:\FFMPEG\video.flv должен быть C:\\FFMPEG\\video.flv

Или просто использовать косую черту: C:/FFMPEG/video.flv

Вы можете также ограждают вашу команду в апострофы, а не кавычки, так как апостроф ингибирует управляющие последовательности, обеспечивающие \ не последний символ на вашем входе.

exec('ffmpeg -i ... ', $output, $return);