Intereting Posts
Удалить index.php? Route = common / home из OpenCart Как управлять различными настройками php.ini в процессе производства и разработки? Утечка памяти при запуске Drupal на linux apache, но одно и то же приложение не будет протекать на сервере windows Как вставить модальные значения в db с помощью запроса ajax post? В php при инициализации класса, как передать переменную этому классу, которая будет использоваться в ее функциях? система управления документами на основе php Путь к файлу для скрипта AJAX (в WordPress) .htaccess доступен только через ip Получение данных GET и POST внутри контроллера в Laravel 4 Laravel 4: развертывание пользовательской команды artisan в пакете Разбор больших текстовых файлов с PHP без убийства сервера .htaccess изменить URL-адрес Поддержка XSLT 2.0 PHP. Когда? Извлечь объект JSON внутри объекта JSON через php Почему моя база данных не обновляется, когда кто-то посещает мой сайт?

FFMPEG работает в командной строке, но не PHP

Я использую ffmpeg build для окон, чтобы создавать миниатюры для видео. Команда хорошо работает в командной строке, но не из метода PHP exec. Я использую PHP 5.2.11

Вот команда.

"E:/Documents and Settings/x/WINDOWS/ffmpeg" -itsoffset -4 -v "E:/Program Files/Apache Software Foundation/Apache2.2/htdocs/bs/files/videogal/c08c3d20eeb9083ed033577bd154cba6.flv" -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 "E:/Program Files/Apache Software Foundation/Apache2.2/htdocs/bs/files/gallery/8ff43b72b932d2a34e7a6733672ad4d6.jpg" 2>&1 

Может кто-нибудь помочь. Я проверил разрешения, они кажутся прекрасными. GD установлен.

Ошибка msg: 'E:/Documents' is not recognized as an internal or external command, operable program or batch file

Я использую косые черты в своих путях, кроме случаев, когда избегаю двойных кавычек

Функция PHP

 function ExtractThumb($in, $out) {$path=dbconf::FFMPEG_PATH; $thumb_stdout; $errors; $retval = 0; echo $in; // Delete the file if it already exists if (file_exists($out)) { unlink($out); } // Use ffmpeg to generate a thumbnail from the movie $cmd = "$path -itsoffset -4 -i $in -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 $out 2>&1"; echo $cmd; exec($cmd, $thumb_stdout, $retval); // Queue up the error for processing if ($retval != 0) { $errors[] = "FFMPEG thumbnail generation failed"; } if (!empty($thumb_stdout)) { foreach ($thumb_stdout as $line) { echo $line . "\n"; } } if (!empty($errors)) { foreach ($errors as $error) { echo $error . "\n"; } } } 

достаточно смешно, если я бегу без абсолютного пути $ in и $ out, это то, что я получаю

 Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --extra-cflags=-fno-common --enable-memalign-hack --enable-pthreads --enable-libmp3lame --enable-libxvid --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libfaac --enable-libgsm --enable-libx264 --enable-libschroedinger --enable-avisynth --enable-swscale --enable-gpl libavutil 49.12. 0 / 49.12. 0 libavcodec 52.10. 0 / 52.10. 0 libavformat 52.23. 1 / 52.23. 1 libavdevice 52. 1. 0 / 52. 1. 0 libswscale 0. 6. 1 / 0. 6. 1 built on Jan 13 2009 02:57:09, gcc: 4.2.4 822ae86a93810dade2843e822390d723.flv: no such file or directory 

Related of "FFMPEG работает в командной строке, но не PHP"

 exec("\"E:\\Documents and Settings\\x\\WINDOWS\\ffmpeg\" -i <inputfile> <options> <outfile>"); 

Вот один из моих, которые я использовал в прошлом (если я нахожусь в стеке LAMP):

 $cmd = "/usr/bin/ffmpeg -i ".$in." -y -an -sameq -vframes 1 -s 100x56 -ss 3 -t 0.001 ".$out; 

Вы также можете рассмотреть: http://ffmpeg-php.sourceforge.net/

Вам необходимо выполнить команду:

 exec(escapeshellcmd($cmd), $thumb_stdout, $retval); 

Также у вас есть безопасный режим PHP? Вы должны проверить, что $in является реальным файлом, прежде чем пытаться закодировать.

вы правильно избегаете своих обратных косых черт, цитат и т. д.? Есть ли сообщение об ошибке?

В сообщении об ошибке указано, что он не распознает его как команду. Скорее всего, это ваше цитирование. Проверьте цитирование пробелов. При необходимости используйте пробелы «\». И где ваш фрагмент кода, который вызывает exec() ?

Возможно, попробуйте это:

 $cmd = "\"$path\" -itsoffset -4 -i \"$in\" -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 \"$out\" 2>&1"; 

Я использую его так:

 exec("C:/wamp/bin/ffmpeg -i ./output4.mp4 -sameq -acodec libmp3lame -ar 22050 -ab 32 -f flv -s 320x240 ./output8.flv -vcodec mjpeg -vframes 4 -an -f rawvideo -s 320x240 ./pic008.jpg 2>&1"); 

Непосредственно подключен от WAMP SERVER.

Обратите внимание:

./output4.mp4

Это говорит PHP, что я имею дело с текущим каталогом.

–Всего наилучшего