Flash 如何以不同速度平稳播放FLV?

Flash 如何以不同速度平稳播放FLV?,flash,flv,Flash,Flv,我需要以不同的速率显示FLV的帧 以下是一些例子: 用户将“擦洗”flv框架(前/后) flv需要以用户交互速度的一半播放 目前我使用的是VideoLoader对象来加载和播放FLV文件。 我尝试使用该属性,但仅显示FLV的关键帧。我在基本设置中得到了相同的结果(使用NetStream类) 作为一种解决方法,我回放FLV一次,并缓存BitmapData实例,在其中我绘制/缓存视频的每一帧。完成后,我使用BitmapData向量更新stage上的位图。使用这种方法,清理/更改速度可以很好地工作

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

以下是一些例子:

  • 用户将“擦洗”flv框架(前/后)
  • flv需要以用户交互速度的一半播放
目前我使用的是VideoLoader对象来加载和播放FLV文件。 我尝试使用该属性,但仅显示FLV的关键帧。我在基本设置中得到了相同的结果(使用NetStream类)

作为一种解决方法,我回放FLV一次,并缓存BitmapData实例,在其中我绘制/缓存视频的每一帧。完成后,我使用BitmapData向量更新stage上的位图。使用这种方法,清理/更改速度可以很好地工作,但用户仍然需要在缓存序列时查看(等待)序列一次,这是我不喜欢的

有没有更好的办法

任何提示都是有用的,
谢谢

我以前见过这样做,但是视频被导入到flash ide中,我们操纵了清理的时间线。我相信我们有一个慢动作回放版本的第二个版本的视频,并在两部电影之间切换。技术含量相当低的方法,并不是没有问题,但我们绕过了它们。我有一种感觉,使用渐进式下载的普通老flv,您将很难做到这一点。

问题的答案是:它让我阅读并开始编写基于ByteArray的解析器。据我所知,有两种方法:

Body视频标记Body视频标记Body 包含视频帧有效负载



因此,似乎可以将每个帧作为像素数据进行访问

另一种方法是将元数据中的帧速率设置为您喜欢的值,将flv写回ByteArray并保存到本地文件系统或用于播放

听起来像是在制作基于web的视频编辑器。虽然我希望有人能给你一个有用的答案,但我怀疑你需要的不是flash。也许有一种方法可以将VLC封装到浏览器插件中。@Brad它离基于web的视频编辑器还差得远。它是“富媒体”网站的一部分,其中会有一些很好的预渲染内容,需要用户以交互方式控制。@George Profenza-我以前见过这样做,但视频被导入flash ide,我们操纵了清理的时间线。我相信我们有一个慢动作回放版本的第二个版本的视频,并在两部电影之间切换。技术含量相当低的方法,并不是没有问题,但我们绕过了它们。我有一种感觉,你将努力做到这一点与一个普通的老flv使用渐进式download@James干草-非常感谢您的投入。几年前我也做过类似的事情,因为用嵌入式视频向前播放时间轴很好,但向后插入的效果非常糟糕。你是对的,我遇到的问题是渐进式flv下载。我更喜欢使用一个flv而不是两个,但这仍然是一个相当好的技术。时间线方法可以改变视频的速度,但不能改变单个视频的方向。@George Profenza-Fair shout。对不起,我帮不上更多的忙:)。祝你好运因此,从理论上讲,是否有可能以字节数组的形式访问flv并访问视频帧有效载荷,或者关闭每个帧的像素数据并将其以相反顺序添加到原始视频有效载荷的末尾,并更新文件头中的元数据,或者将flv克隆为字节数组,反转克隆的“帧”,并创建一个新的NetStream的提要?@George Profenza-我主要考虑编辑、检索/更改帧并保存回去,但在这一点上,我做的研究太少,无法确定。我得到结果后会告诉你的。顺便说一句,大约两个小时前,我在OSMF中发现了一个类似的包(
package org.OSMF.net.httpstreaming.flv
),但我继续编码:)@George Profenza-当我试图跟踪一个6秒flv的标签的完整列表时,FlashDevelop死亡。可能是因为我跟踪了所有的SCRIPTDATA标记however@www0z0k非常感谢。希望我能为你的努力投更多的票!@George Profenza-welcome)从.flv中获取一组标记非常容易,但现在我必须研究所有音频和视频编解码器规范,以获得所需的媒体数据访问权限。我觉得很懒,但很感兴趣,所以我希望能完成