ffmpeg php exec не работает - PullRequest
       51

ffmpeg php exec не работает

0 голосов
/ 19 июля 2011
  • У меня установлен ffmpeg
  • Safe_mode выключен
  • , когда я делаю это: $movie = new ffmpeg_movie('Bear.wmv'); Я могу использовать getDuration (), getFilename () .... без каких-либо проблемтак что все, кажется, работает
  • exec работает нормально, потому что, когда я делаю: $output = exec('ls -lart'); Я получаю хороший маленький результат.

но когда я делаю это:

exec('ffmpeg -i Bear.wmv outputfile.flv')

ничего не произойдет

если я добавлю: $command_output, $result единственный результат, который я предполагаю: array { }

Я перепробовал все, что мог придумать:

exec('ffmpeg -i Bear.wmv outputfile.flv')

exec('ffmpeg.so -i Bear.wmv outputfile.flv')

exec('/usr/lib/php5/20090626/ffmpeg -i Bear.wmv outputfile.flv')

Я перепробовал все размеры, папки и кодеки, но все еще ничего не получил

Все, что я хочу сделать, - это преобразовать это видео Bear.wmv в файл flv.

Я очень близок к тому, чтобы плакать, как ребенок, и / или выпрыгивать из окна (я только на первом этаже, но все еще смеюсь), поэтому, пожалуйста, помогите !! ??!

Ответы [ 2 ]

1 голос
/ 19 июля 2011

FFMPEG - это приложение, которое выводит не на STDIO, а на STDERR, поэтому вы можете перенаправить его на стандартный вывод:

$cmd = $FFMPEGDIR . " -i somefile.avi 2>&1"; // SEE 2>&1 !!

Размер извлечения:

<code> exec( $cmd , $info );

      echo "<pre>".print_r($info,true)."
"; $ resolution = preg_match ('@ [, \ t] ([0-9] {3,4} x [0-9] {3,4}) [, \ t] @si', implode ("", $ info), $ durmatches); $ rtab = explode ("x", $ durmatches [1]); $ videowidth = $ rtab [0]; $ videoheight = $ rtab [1];
0 голосов
/ 19 июля 2011

Недавно настроил ffmpeg для аудио материала ... это что-то вроде черного искусства, ffmpeg печально известен тем, что не играет красиво (или постоянно) - то, что работает (работает) для меня, может не сработать для вас!

попробуйте использовать: shell_exec ()

или:

$command="{$FFMPEG_BINARY} ... rest of your options";
$process=proc_open($command, $descriptors, $pipes);
if (!$process)
{
    // failed to exec...
}
else
{
    // command ran...
}

мой ffmpeg был в ... "/ usr / bin / ffmpeg" просто проверьте, что вы также выбрали правильный путь.

...