Flash 8 (AS2) 中的 FLVPlayback 组件并支持高清 H.264 视频

Posted

技术标签:

【中文标题】Flash 8 (AS2) 中的 FLVPlayback 组件并支持高清 H.264 视频【英文标题】:FLVPlayback component in Flash 8 (AS2) and support for HD H.264 video 【发布时间】:2011-01-18 21:20:31 【问题描述】:

我使用 Flash 8 Professional 和 FLVPlayback 组件开发了一个视频播放器。最近,我一直在测试几个 720p .mov 文件,这些文件由在编码服务器上运行的 FFMPEG 转换为 FLV。我注意到这些文件没有在我的视频播放器中播放。他们似乎没有附加任何音频,但是当我在 Adob​​e Media Player 中播放它们时,音频就在那里。这是因为 Flash 8 中的 FLVPlayback 组件不支持高清视频吗?当我在本地测试时,视频图片播放时没有声音,但是当我在浏览器中运行时,视频冻结并且不播放。然而,进度条似乎在移动,就好像正在播放视频一样。

所以我想尝试将我的作品重新创建为 Flash CS4 项目,仍以 AS2 发布,但希望能够在 CS4 中使用支持 h264 视频的更新后的 FLVPlayback 组件。

这行得通吗?

------------------------------------ 更新 ---------- ----------------------------------

我注意到视频在完全加载之前不会播放,这在 Adob​​e Media Player 和 Flash Player 中确实如此。似乎渐进式下载不适用于我的视频,Flash Player 要求在开始播放之前加载整个视频。我找到了以下信息 - Another SO question on this topicScott Morgan post about Progressive H264 video

这是附加到我的 FLV 视频的元数据 -

Your Flash Version = WIN 10,0,45,2
filesize = 1936004
audiocodecid = 10
stereo = false
audiosamplesize = 16
audiosamplerate = 44100
audiodatarate = 93.75
videocodecid = 2 (This is Sorenson h263)
framerate = 24
videodatarate = 683.59375
height = 240
width = 320

【问题讨论】:

【参考方案1】:

是的,您可以使用 Flash CS4 制作 ActionScript 2 项目并使用最新的 FLVPlayback 组件。 Flash CS4 支持 ActionScript 版本 1、2 和 3。

然而,我认为这不是这个项目的问题。您现有的项目应使用系统上安装的任何版本的 Flash Player 软件中的视频播放代码。也许只是更新 Flash Player 就可以让您获得工作视频。如果您要在 Web 上发布此 FLV 或与这些视频一起使用,您可能需要在浏览器上检查更新版本的 Flash。

对于您提到的关于在下载时修复渐进式播放的其他 SO 问题,我没有任何补充。

【讨论】:

【参考方案2】:

有一个叫做 moov atom(是的,有两个“o”)的东西,它是 H.264 编解码器的一部分——它索引文件——如果它不在文件的前面,那么电影就赢了在整个下载完成之前无法播放。 moov atom 在创建视频时被放入,Adobe Premier CS3 和 After Effects CS3 等某些产品会将其放在文件末尾。但是有一个说明,Adobe 正在努力使用补丁更新该问题,但我不知道它是否已修复。如果您从使用 Flash Media Server 的 CDN 进行流式传输,则这不会成为问题,因为视频随后会被流式传输并(根据文档)由 FMS 索引。来源:http://www.adobe.com/devnet/flashplayer/articles/hd_video_flash_player_02.html

也许试试这个? http://blog.six4rty.ch/2008/05/14/h264-and-the-moov-atom/

【讨论】:

您好,谢谢,从我从编码的 FLV 文件中获得的元数据中,视频编解码器 id 为 2,即 Sorenson H.263。这仍然是同样的问题吗?当我运行为修复 .moov 文件而构建的应用程序并加载原始未编码的 .mov 文件时,我收到响应 - “错误:MOOV 原子不在文件末尾,文件已准备好进行渐进式下载或它是无效文件”。当我加载编码的 FLV 时,我得到 - “错误:遇到非 QT ***原子(这是一个 Quicktime 文件吗?)完成时间:0.076 秒”所以我认为 .moov 位于正确的位置?有什么想法吗? 你可以给我发一个视频吗?我有一个我编写的 AS3 Flash Player 10 视频播放器,我知道它适用于 H264 视频。我可以测试看看他们是否在那里工作。 Rob [at]inchwormstudio.com。如果不是,我会尝试对 CS4 中的视频对象进行快速测试

以上是关于Flash 8 (AS2) 中的 FLVPlayback 组件并支持高清 H.264 视频的主要内容,如果未能解决你的问题,请参考以下文章

如何在运行某些代码之前等待 flash (as2) 加载子元素?

FLASH中影片剪辑嵌套按钮实现。AS2.0

使用 AS2 在 flash 上引入 php 变量的简单方法

我可以通过 Javascript 在 Flash (AS2) 中设置变量吗

从动态文本 AS2 Flash 链接到 swf

Flash AS2 hitTest 无法正常工作