如何以不同的速度顺畅播放FLV?

时间:2010-12-21 03:39:10

标签: flash flv

我需要以不同的速率显示FLV的帧。

以下是一些例子:

  • 用户将“擦洗”flv框架(前/后)
  • flv需要以一半的速度播放用户互动。

目前我正在使用LoaderMax和它的VideoLoader对象来加载和播放FLV文件。 我尝试使用playProgress属性,但只显示FLV的关键帧。我在基本设置(使用NetStream类)

时获得了相同的结果

作为一种解决方法,我回放FLV一次,并缓存BitmapData实例,我在其中绘制/缓存视频的每一帧。完成此操作后,我使用BitmapData Vector更新舞台上的位图。使用这种方法,擦洗/更改速度可以正常工作,但是用户仍需要查看(等待)序列一次,当它被缓存时,我不喜欢。

关于如何做到这一点的更好的想法?

任何提示都很有用, 谢谢!

2 个答案:

答案 0 :(得分:2)

问题的问题:它让我阅读flv format spec (from page 74)并开始编写基于ByteArray的解析器。据我所知,有两种方式:

  

Body VideoTagBody VideoTagBody   包含视频帧有效载荷。

所以似乎可以作为像素数据访问每一帧
另一个是将元数据中的帧率设置为你喜欢的值,将一个flv写回ByteArray并保存到本地文件系统或使用NetStream.appendBytes()进行播放

答案 1 :(得分:1)

之前我已经看过这个,但是视频被导入到flash ide中,我们操纵了擦洗的时间线。我相信我们有慢动作播放版本的第二版视频,并在两个动画片段之间切换。相当低技术的方法,并没有没有它的问题,但我们绕过它们。我有一种感觉,你会用渐进式下载用一个普通的老式flv来做这件事。