Возможность захвата массива кадров без необходимости воспроизводить видео, а затем воспроизводить в обратном направлении на стороне клиента flash / flex - PullRequest
0 голосов
/ 06 апреля 2011

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

Наиболее важным в этом вопросе является возможность извлекать кадры, фактически не воспроизводя видео.Все решения, которые я нашел на SO, требуют воспроизведения видео, тогда они, по сути, просто печатают экран в растровое изображение.

Возможно в ActionScript извлечь отдельные видеокадры, чтобы включить продвижение по кадрами вперед и назад?

Ответы [ 3 ]

1 голос
/ 06 апреля 2011

Не думаю, что есть способ без предварительного воспроизведения контента. Но ... вы можете последовательно bitmapdata.draw каждый кадр как воспроизводимое потоковое видео (не обязательно в списке отображения), пока у вас не будет одного большого массива растровых изображений для навигации. Есть две большие проблемы с этим:

Во-первых, очевидно, что у вас будет доступ только к уже воспроизведенным кадрам. Это может быть связано с тем, что еще происходит в вашем приложении - скажем, пользователь взаимодействует с некоторым вводным контентом во время потоковой передачи / захвата видео.

Другая, возможно, непреодолимая проблема с памятью. Причина, по которой вы транслируете контент, заключается в том, что у вас нет всех 24 мегапикселей (или чего-то еще) в памяти flv за все время. Этот тип сценария будет означать, что вам придется. Это, как говорится, в зависимости от размера / количества кадров - это не может быть такой большой проблемой.

Честно говоря, если вы решите пойти по этому пути, вам лучше разбить видео на кадры вне флеш-памяти (после или после эффектов) и вложить их в swf (или загрузить их по отдельности). В любом случае это будет означать, что вы будете лучше контролировать сжатие.

Может, это поможет?

0 голосов
/ 31 августа 2011

Навигация видео в обратном направлении не является проблемой, если вы кодируете видеофайл с интервалом в 1 ключевой кадр (то есть, когда все кадры являются ключевыми кадрами).Это увеличивает размер файла, но дает вам возможность мгновенно перейти к любому кадру при воспроизведении.

0 голосов
/ 07 апреля 2011

Ваша комбинация частей сбивает с толку, но ...

Возможность захвата массива кадров:

bitmapData.draw(video);

без необходимости воспроизводить видео:

netStream.pause();

, затем играть в обратном направлении:

netStream.step(-1);

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html

...