Циклический буфер видео в ActionScript3 - PullRequest
2 голосов
/ 16 сентября 2011

Я пытаюсь создать приложение AS3 с зацикливанием, бесшовный видео фон. Фон загружается с flv. До сих пор проблема была в плавности, потому что все тактики зацикливания видео, которые я встречал в отношении AS3, всегда имеют короткую, но заметную паузу в конце видео, прежде чем вернуться к началу и воспроизвести снова.

Лучший способ, который я решил решить, это воспроизвести видео и буферизовать видеокадры как объекты BitmapData в очередь определенной длины (без добавления видео на сцену). Таким образом, рендеринг видео будет действительно включать вставку каждого из этих BitmapDatas в растровое изображение. объект прикреплен к моей сцене в определенное время, которое затем рисуется.

Вроде как:

/*VideoBufferer loops the input video and queues frames and then updates*/
var vidbuffer:VideoBufferer = new MyVideo("video.flv",outputImage)

var outputImage:Bitmap = new Bitmap();
stage.addChild(outputImage);

//forgive syntax, this is pseudoCode
timed process that happens X times per second{
  outputImage.bitmapData = vidbuffer.popBitmapData(); //returns bitmap data from the queue
}

Мне плевать на звук.

Однако я, похоже, не знаю, как реализовать этот желаемый класс VideoBufferer, поскольку я не знаю, как воспроизводить видео, не добавляя его на сцену и не извлекая из него кадры. Кто-нибудь знает, есть ли такой класс, который уже делает это, или кто-то может подсказать мне, как реализовать функцию захвата кадров VideoBufferer?

Спасибо

Ответы [ 2 ]

2 голосов
/ 27 июня 2014

Я знаю, что это очень поздний ответ, но у меня есть решение для бесшовного воспроизведения FLV, описанное здесь: http://blog.redannick.com/seamlessly-looping-video-files-in-as3-with-netstream-appendbytes/

пример кода здесь: https://gist.github.com/redannick/7772246

1 голос
/ 04 октября 2011

Ваш и мой лучший друг с открытым исходным кодом: мистер Дуб, на помощь.

http://code.google.com/p/mrdoob/source/browse/trunk/libs/net/hires/utils/display/BitmapDataSequence.as

Он предназначен для загрузки SWF и преобразования кадров в последовательность объектов BitmapData.Он должен быть обновлен, чтобы использовать Векторы и т. Д., Поскольку он не обновлялся с 2008 года, но это ответ.

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

...