Извлечение эскиза из .flv - PullRequest
       97

Извлечение эскиза из .flv

0 голосов
/ 21 апреля 2010

Мне было интересно, как я могу извлечь эскиз из файла флэш-видео, а затем отобразить его в списке.

Предполагается, что в списке есть много видео, из которых мне нужно извлекать миниатюры программно с помощью ActionScript.

флеш-плеер будет в сети, и извлечение должно происходить во время загрузки SWF-файла, поэтому метод не должен занимать много времени.

как мне продолжать это делать? это вообще возможно?

TNX заранее

Ответы [ 4 ]

1 голос
/ 21 апреля 2010

Вы можете использовать ffmpeg. Возможно, наилучшим подходом будет вызов скрипта.

1 голос
/ 22 апреля 2010

Вы должны взглянуть на FFMpeg - с его помощью вы можете извлекать миниатюры из видео (среди прочего, тонны интересных вещей). После того, как он установлен на вашем сервере, вы просто передаете команду через функцию exec () PHP, и все.

Например:

$cmd = "ffmpeg -i you_video.flv -f image2 -vframes 1 -ss 00:00:01 -y -s 100x100 my_video_thumb.png";

exec($cmd, $output, $return);

Where:

-i is your specify the input file
-f is to force the output format, this case "image2" since we are generating an image
-vframes video frames we want to record in the snapshot, only one
-ss starting time of the snapshot
-y overwrite any existing file with the same name
-s size/dimensions of the output image

Есть несколько хороших руководств по установке FFMpeg на ваш сервер, если вы заглянете в Google, вы найдете тонны информации. Вот отправная точка, хотя http://vexxhost.com/blog/2007/03/03/installing-ffmpeg-ffmpeg-php-mplayer-mencoder-flv2tool-lame-mp3-encoder-libogg-%E2%80%93-the-easy-way/

Ура, M.

0 голосов
/ 22 апреля 2010

Если вы не хотите использовать ffmpeg, я думаю, вы могли бы сделать следующее:

загрузить основной SWF,

для каждого из файлов FLV,

  • Загрузка FLV;

  • отправка FLV в нужное время;

  • создать новый объект BitmapData;

  • выводит содержимое flv в
    растровые данные с использованием метода draw;

  • добавить BitmapData к растровому объекту и отобразите это в вашем списке;

Когда это будет завершено, покажите основное приложение

Подход, который делает что-то похожее на это, но использует ключевые точки для запуска чертежа, можно найти здесь:

http://blog.flexexamples.com/2007/08/03/creating-flv-cuepoint-thumbnails-using-the-bitmap-and-bitmapdata-classes/

Еще одна вещь, для того, чтобы манипулировать flvs (метод draw для работы), файлы должны находиться в вашем собственном домене, или на корневом сервере должен быть файл междомена, который содержит flv, который утверждает, что ваш домен разрешен доступ

* * Пример одна тысяча тридцать восемь: http://api.flickr.com/crossdomain.xml
0 голосов
/ 21 апреля 2010

Лучшее решение - создать на сервере миниатюру со стороны и отправить URL-адрес к этому изображению. Если вы хотите делать миниатюры «на лету», вам нужно сначала загрузить видео, по крайней мере, до того момента, когда вы захотите сделать снимок экрана, это будет не особенно быстро.

...