Трудный вопрос: как получить доступ к ffmpeg_php getFrame в Imagick без конвертации в GD? - PullRequest
0 голосов
/ 13 декабря 2010

У меня есть тысячи видеоклипов, которые нужно обрабатывать в Imagick покадрово.В настоящее время я получаю кадры с помощью ffmpeg-php и обрабатываю каждый кадр с помощью Imagick.Imagick не может (по крайней мере, я не знаю, как) получить доступ к кадру напрямую, поэтому мне нужно преобразовать кадры в GD и записать его в двоичную строку.Это медленно для тысяч клипов с более чем миллионом кадров.Как я могу получить доступ / конвертировать кадр из ffmpeg getFrame в Imagick?Или другие быстрые / грязные способы для такого преобразования?Заранее спасибо!

$movie = new ffmpeg_movie('any.avi', 0);

 $im = new Imagick();

 ob_start();

 imagejpeg($movie->getFrame($i)->toGDImage());

 $im->readImageBlob(ob_get_contents());

 ob_end_clean();


// do Imagick process....

 echo $im_im;

1 Ответ

0 голосов
/ 14 декабря 2010

Не так сложно с делегатами от Imagick, см .:

<?php

$im = new imagick();
$im->newPseudoImage( 200, 200, "ffmpeg:test1.mpg[40]" );
$im->setImageFormat( "png" );

header( "Content-Type: image/png" );
echo $im;

?>

И полная ссылка

http://valokuva.org/?p=13

Надеюсь, это поможет.

...