繁体   English   中英

无需捕获视频即可捕获帧阵列的功能,然后在Flash / Flex客户端中向后播放

[英]Ability to capture array of frames without having to play video, then play backwards in flash/flex client side

我已经看到了一些帖子,其中涉及拍摄正在播放的视频帧的屏幕截图。 我正在寻找一种向后播放视频并通常一次移动一帧的方法。 理想情况下,我可以从Flash视频中提取特定i帧之前和之后的帧。

这个问题最重要的是能够提取帧,而无需实际播放视频。 我在SO上找到的所有解决方案都需要播放视频,然后实质上只是将屏幕打印到位图。

在动作脚本中是否可以提取单个视频帧以使单个帧向前和向后前进?

我认为没有首先播放内容就没有办法。 但是...您可以按顺序bitmapdata。在播放流式视频(不一定在显示列表中)时绘制每个帧,直到您需要浏览大量位图为止。 这有两个大问题:

显然,一种是您只能访问已经播放的帧。 这可以通过应用程序中发生的任何其他事情来处理-例如,用户正在与流媒体/正在捕获视频时与一些介绍内容进行交互。

另一个也许是无法克服的问题是内存问题。 流内容的原因是这样,您就不会一直在内存中存储所有24兆(或任何容量)的flv。 这种情况意味着您必须这样做。 话虽如此,取决于帧的大小/数量-这可能不是一个大问题。

坦白说,如果您决定走这条路,最好将视频分成Flash以外的帧(在特效或特长后),并用swf嵌入(或单独加载)。 这意味着无论如何您都将更好地控制压缩。

也许有帮助吗?

这些部分的组合令人困惑,但是...

能够捕获帧数组:

bitmapData.draw(video);

无需播放视频:

netStream.pause();

然后倒退播放:

netStream.step(-1);

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

如果以关键帧间隔1(即所有帧均为关键帧)对视频文件进行编码,则向后导航视频是没有问题的。 这会增加文件的大小,但使您可以在播放时立即跳转到任何帧。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM