首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无需播放视频即可捕获一系列帧,然后在flash/flex客户端向后播放

无需播放视频即可捕获一系列帧,然后在flash/flex客户端向后播放
EN

Stack Overflow用户
提问于 2011-04-07 01:11:29
回答 3查看 1.5K关注 0票数 0

我看过一些关于截取播放视频帧的截图的帖子。我正在寻找一种向后播放视频的方法,通常一次只在一帧中移动。理想情况下,我可以从flash视频中提取特定I帧之前和之后的帧。

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

是否可以在actionscript中提取出单个视频帧,以实现单帧向前和向后推进?

EN

回答 3

Stack Overflow用户

发布于 2011-04-07 01:41:04

我不认为有一种方法,不先播放内容。但是..。可以在流式视频(不一定在显示列表中)播放时顺序地bitmapdata.draw每一帧,直到有一个大的位图阵列可供导航。这有两个大问题:

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

另一个可能无法克服的问题是记忆。你流式传输内容的原因是,这样你就不会一直在内存中拥有全部24兆(或更多)的flv。这种类型的场景意味着你必须这样做。也就是说,取决于帧的大小/数量-这可能不是什么大问题。

坦率地说,如果你决定走这条路,你最好在flash之外将视频分割成帧(在after effects或Premier中),并将它们嵌入到swf中(或者单独加载它们)。无论如何,这意味着你可以更好地控制压缩。

也许这会有帮助?

票数 1
EN

Stack Overflow用户

发布于 2011-04-07 06:17:12

你的组合让人迷惑,但是...

捕获帧阵列的能力:

代码语言:javascript
运行
复制
bitmapData.draw(video);

无需播放视频:

代码语言:javascript
运行
复制
netStream.pause();

然后向后播放:

代码语言:javascript
运行
复制
netStream.step(-1);

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

票数 0
EN

Stack Overflow用户

发布于 2011-08-31 20:12:23

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5570300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档