我看过一些关于截取播放视频帧的截图的帖子。我正在寻找一种向后播放视频的方法,通常一次只在一帧中移动。理想情况下,我可以从flash视频中提取特定I帧之前和之后的帧。
对于这个问题,最重要的是提取帧的能力,而不是实际播放视频。我在上找到的所有解决方案都需要播放视频,然后它们本质上只是将屏幕打印到位图。
是否可以在actionscript中提取出单个视频帧,以实现单帧向前和向后推进?
发布于 2011-04-07 01:41:04
我不认为有一种方法,不先播放内容。但是..。可以在流式视频(不一定在显示列表中)播放时顺序地bitmapdata.draw每一帧,直到有一个大的位图阵列可供导航。这有两个大问题:
很明显,其中之一是您只能访问已经播放的帧。这可能会通过应用程序中发生的任何其他事情来处理-例如,当视频正在流媒体/被捕获时,用户正在与一些介绍内容进行交互。
另一个可能无法克服的问题是记忆。你流式传输内容的原因是,这样你就不会一直在内存中拥有全部24兆(或更多)的flv。这种类型的场景意味着你必须这样做。也就是说,取决于帧的大小/数量-这可能不是什么大问题。
坦率地说,如果你决定走这条路,你最好在flash之外将视频分割成帧(在after effects或Premier中),并将它们嵌入到swf中(或者单独加载它们)。无论如何,这意味着你可以更好地控制压缩。
也许这会有帮助?
发布于 2011-04-07 06:17:12
你的组合让人迷惑,但是...
捕获帧阵列的能力:
bitmapData.draw(video);
无需播放视频:
netStream.pause();
然后向后播放:
netStream.step(-1);
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html
发布于 2011-08-31 20:12:23
如果使用关键帧间隔1(即所有帧都是关键帧)对视频文件进行编码,则向后导航视频不会有问题。这会增加文件的大小,但使您可以在回放时立即跳转到任何帧。
https://stackoverflow.com/questions/5570300
复制相似问题