【问题标题】:How can i smoothly playback a FLV at different speeds?如何以不同的速度流畅播放 FLV?
【发布时间】:2011-05-28 14:52:24
【问题描述】:

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

这里有一些例子:

  • 用户将“擦洗”flv 帧(前/后)
  • flv 需要在用户交互时以一半的速度播放。

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

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

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

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

【问题讨论】:

  • 听起来你正在制作一个基于网络的视频编辑器。虽然我希望有人对你有一个有用的答案,但我怀疑你需要的东西不是 Flash。也许有一种方法可以将 VLC 包装在浏览器插件中。
  • @Brad 它远不及基于网络的视频编辑器。它是“富媒体”网站的一部分,其中包含一些需要用户以交互方式控制的漂亮的预渲染内容。
  • @George Profenza - 我以前见过这样做,但是视频被导入到 flash ide 中,我们操纵了时间线进行擦洗。我相信我们有第二个视频版本,用于慢动作回放版本,并在两个电影剪辑之间切换。相当低技术的方法,并非没有问题,但我们解决了它们。我有一种感觉,使用渐进式下载的普通旧 flv 很难做到这一点
  • @James Hay - 非常感谢您的意见。几年前我做过一些类似的事情,因为用嵌入的视频向前播放时间线很好,但向后插值非常可怕。你是对的,我遇到的问题是渐进式 flv 下载。我更喜欢使用一个 flv 而不是两个,但它仍然是一个非常好的技术。时间线方法适用于改变视频的速度,但不适用于单个视频的方向。
  • @George Profenza - 公平的呐喊。抱歉,我帮不上忙:)。祝你好运!

标签: flash flv


【解决方案1】:

我以前见过这样做,但视频被导入到 flash ide 中,我们操纵了时间线进行擦洗。我相信我们有第二个视频版本,用于慢动作回放版本,并在两个电影剪辑之间切换。相当低技术的方法,并非没有问题,但我们解决了它们。我有一种感觉,使用渐进式下载的普通旧 flv 很难做到这一点。

【讨论】:

    【解决方案2】:

    感谢这个问题:它让我阅读了flv format spec (from page 74) 并开始编写基于ByteArray 的解析器。据我了解有两种方法:

    正文 VideoTagBody VideoTagBody 包含视频帧负载。


    所以似乎可以将每个帧作为像素数据访问

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

    【讨论】:

    • 那么,理论上是否可以将flv作为字节数组访问并访问视频帧有效负载,或者关闭每个帧的像素数据并在原始末尾以相反的顺序添加它视频有效负载并更新文件头中的元数据,或者将 flv 克隆为字节数组,反转克隆的“帧”并创建一个新的 NetStream 的提要?
    • @George Profenza - 我主要考虑编辑和检索/更改帧以及保存,但在这一点上我做的研究太少,无法确定。当我得到结果时,我会告诉你的。顺便说一句,大约两个小时前我在 OSMF (package org.osmf.net.httpstreaming.flv) 中发现了一个类似的包,但是我继续编码:)
    • @ George Profenza - FlashDevelop 在我尝试跟踪 6 秒 flv 的完整标签列表时死机。也许是因为我跟踪了所有 SCRIPTDATA 标签
    • @www0z0k 谢谢!希望我能给你更多的票来支持你的努力!
    • @George Profenza - 欢迎)从 .flv 中获取一系列标签相当容易,但现在我必须研究所有音频和视频编解码器规范才能获得对媒体数据的所需访问权限。感觉很懒,但很感兴趣,所以我希望它会完成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2012-11-10
    • 2011-12-22
    • 2011-09-20
    相关资源
    最近更新 更多