iOS 上的 Flash/AIR 舞台视频 - 有可能吗?表现如何?
Posted
技术标签:
【中文标题】iOS 上的 Flash/AIR 舞台视频 - 有可能吗?表现如何?【英文标题】:Flash/AIR Stage Video on iOS - Is It Possible? How is the performance? 【发布时间】:2012-04-21 17:41:48 【问题描述】:你们中的任何人都可以向我指出一些有关 ios 设备上 AIR (3.2) 视频性能的资源。
我感兴趣:
StageVideo 可用 是否允许/启用视频流 高清视频的性能还可以吗? 是否允许播放 .flv? (在 android 上怎么样:flash 已经有了)【问题讨论】:
刚刚 +1 了,我一直在使用斑马线 QR 码阅读器开发一个应用程序,并且对 iOS 与舞台视频和 AIR 3.2 的兼容性以及从舞台视频中捕获位图感到好奇。如果我最终没有看到答案并与一些同事一起测试它,我会告诉你它是如何工作的。 谢谢@shaunhusain,我也很想测试这个,但问题是我没有那么多移动设备和证书,所以我可以对几个屏幕分辨率/cpu/gpu 进行认真的测试。很快我将为此添加赏金,以防您决定对其进行测试。 :) 我为 iOS (iPad2) 开发了一个流媒体视频应用程序,我必须说我对它的性能感到相当惊讶。我们能够毫无问题地播放高清(不是全高清,而是 1024 x 768 之类的)视频流。虽然不知道 .flv 播放。我们还遇到了一个严重的错误,它不允许我们通过 RTMPS/RTMPE 进行流式传输。 @DennisJaamann 感谢您的评论。确实,从您那里听到这样的好消息很有趣。一个问题:你用的是舞台视频还是普通视频? @AdrianPirvulescu,我们为此使用了 StageVideo。 【参考方案1】:iOS 上只有 H264 具有硬件解码功能。 这意味着仅适用于 H264 的原生播放器的视频性能相当 并且 Sorenson 和 VP6 的解码(充其量)缓慢(即使是低分辨率)。
“AIR 3 for iOS 将 StageVideo 对象用于硬件解码的 H.264 视频,但对 NetStream 功能的支持有限。AIR 3 for iOS 还通过 StageVideo 对象支持 On2 和 Sorenson 编解码器。此支持不使用硬件解码,并且不限制 NetStream 功能。” flash.media.StageVideo
FLV 和 MP4 是封装格式。 FLV 可以包含 VP6+MP3 或 H264+AAC(或其中任何一个单独使用)。 MP4 可以包含 H264+AAC。 文档没有说明 iOS 不支持 FLV。
但是,在 iOS 上,如果 FLV/H264 无法播放,由于以下限制,您将无法即时将其重新混合为 MP4(否则您将丢失硬件解码): “注意:AIR 3.0 for iOS 中的 H.264 视频不支持此方法。” flash.net.NetStream::appendBytes()
没有任何关于 Sorenson 或 VP6 不支持即时 remuxing(因此它们应该是)的说法。
反正你不应该需要 appendBytes,除非你打算做一些非常高级的事情,比如在播放过程中不中断地动态切换比特率。
直播需要与 appendBytes 类似的东西。由于需要 H264 硬件解码且没有软件模式,因此您不会获得 H264 用于直播。
“事实证明,H264 视频的实时流式传输无法在 Adobe Air 中的 iOS 设备上呈现。其他视频编解码器可以工作 (H263),但不适用于 H264。您将使用提要,但只会听到音频。我在与 Adobe Air 开发团队的成员交谈后确认了这一点。” 来自Adobe Forums
H264 解码在不同 Apple ARM CPU 上的表现在很大程度上取决于视频编码设置(B 帧或关键帧、比特率等)以及您是否拥有动态内容、静态内容、快速切换场景、分辨率、颜色托盘等。
结论: 使用 FLV 或 MP4(以最适合您的为准),内置 H264+AAC。 尝试使用编码设置或您定位的大量视频(如果有)。 确定您要定位的最低(最旧)iOS 设备,并在其上进行测试。
【讨论】:
忘了提及以上所有内容仅适用于 StageVideo,不适用于普通 flash.media.Video。 您好 Tiberiu,您的帖子回答了我更多的问题。感谢您的发布。我会把你标记为正确的。还有一个问题:性能如何?它在本机分辨率下滞后或运行正常? 它必须与 QuickTime 相同。很大程度上取决于播放的视频,同时也取决于硬件。 编译 AIR 应用程序时,您必须至少以 -swf-version=13 为目标(StageVideo 在 -swf-version=11 时可用,但是,我建议以最新支持为目标,我认为现在是 15 )。如果带有 H264/AAC 的 FLV 不能将其切割为硬件,则必须使用具有相同流的 MP4。在进行任何测试之前检查各种 iOS 设备的比特率和推荐的视频和音频编码设置(也就是说,如果您可以控制播放的视频)。我还没有在 iOS 上测试过 FLV,是的,但是我很快就会测试,因为我现在正在做一些事情。 @jamix 这在很大程度上取决于 CPU 功率、屏幕分辨率和视频分辨率。【参考方案2】:我不知道性能如何叠加,但 NetStream 的 Actionscript 文档提供了一些关于使用 NetStream/Video 在 iOS 设备上的 AIR 上播放视频的信息:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#play%28%29
使用 AIR 3 的 iOS 上的 H.264 视频支持 StageVideo:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/StageVideo.html
要点是 iOS 设备支持 StageVideo 和有限的流媒体功能,只要您的视频使用 iOS 要求的流媒体格式。
【讨论】:
好的,所以基本上你说的是我无法在 iPhone 上使用 adobe air 应用播放 .flv ?以上是关于iOS 上的 Flash/AIR 舞台视频 - 有可能吗?表现如何?的主要内容,如果未能解决你的问题,请参考以下文章
Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系