Получить декодированные кадры во Flash (воспроизведение FLV)

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

Источником видео может быть поток RTMP или файл FLV (F4V).

Любая подсказка приветствуется :)


person Christian    schedule 22.12.2009    source источник


Ответы (1)


Каким образом вы хотите изменить их?

Если вам нужно выполнить какую-либо операцию с пикселем и вы не используете Flash Player 10 (в этом случае вам следует поискать Pixel Bender), вы можете использовать функцию BitmapData.draw(), чтобы нарисовать свой кадр в BitmapData. Затем вы можете манипулировать пикселями по своему усмотрению.

var bmp : BitmapData = new BitmapData(myVideo.width, myVideo.height, false);

// Each frame, do this:
bmp.draw(myVideo);

Если вы просто хотите применить какой-то общий фильтр, например размытие, вместо этого вы можете найти классы flash.filters.*, например. BlurFilter, DropShadowFilter или ColorMatrixFilter.

person richardolsson    schedule 22.12.2009
comment
Вау, спасибо за быстрый ответ. Чтобы было ясно, например, у меня есть футбольное видео с разрешением. 720x480, и я хочу обрезать его, всегда имея футбольный мяч в середине каждого кадра. Положение мяча в каждом кадре известно с помощью алгоритма отслеживания (эта точка становится центром нового кадра). Я хочу обрезать каждый кадр видео например до 320х240 и потом показать результат на плеере. - person Christian; 22.12.2009
comment
Для того, что вы описываете, я бы просто использовал прямоугольную маску 320x240 и переместил видео за маской. - person richardolsson; 28.12.2009