iPhone HE-AAC流媒体直播(3G)

RMX*_*RMX 23 iphone mp3 mobile-safari http-live-streaming icecast

使用jPlayer开发了一个互联网广播流媒体,它使用带有jQuery的html5音频标签,并为不支持的浏览器提供闪回功能.在iPhone(iOS 5.0.1)上测试播放器后,我们遇到了一个非常特殊的问题.

当iPhone连接到WiFi时,它使用HE-AAC V2流@ 64kbps 44.1kHz(苹果产品的首选编解码器)完美地流式传输.然而,当iPhone连接到3G移动网络时,它会"断续续续"或每1-2分钟停止流动1-2秒(不会完全停止流式传输).令人不安的是,当iPhone被迫以相同的比特率使用单独的MP3流时,它没有这个问题并且在3G上运行良好.

更新5

我们最近购买了3G/4G Sprint移动热点设备,并使用该设备测试了这个问题.当iPhone连接到移动热点时,它显示为连接到wifi设备,即使实际连接是通过3G/4G,也不会出现问题.这可能会回到iPhone不通过HTTP直播和直接连接到移动网络处理HE-AAC的问题.

更新4

将iPhone更新到iOS 5.1但问题仍然存在.

更新3

请阅读此处有关连接到移动网络时脚本无法正确呈现的各种问题.手指似乎指向可能插入代理以服务网页的移动网络运营商,例如用于缩小图像尺寸.它也可能会注入一些JavaScript页面.测试页面可以在这里找到 注意:此页面使用HE-AAC,因此它只适用于iPhone ...

UPDATE

根据Apple针对iOS设备的HTTP Live Streaming doc,"仅音频内容可以是MPEG-2传输,也可以是MPEG基本音频流,无论是采用ADTS标头的AAC格式还是MP3格式." 我们的音乐服务器使用OddcastV3编码器向icecastV2服务器发送三个流(MP3,HE-AAC V2和Oggvorbis).不确定编码器是否正在插入HE-AAC V2流的ADTS标头.有没有办法检查这个?

Mag*_*nus 1

从无线电规划的角度来看 - 这是我的两点意见:

您所描述的听起来像是带宽整形 - 这既是无线电网络(如 3G 网络)的常见且通常必要的设计。在我工作过的大多数 3G 运营商中,您通常会优化您的网络,以通过“长时间运行”的高带宽服务提供高速突发(例如下载图像、发送一封电子邮件或获取一个 HTML 页面)。这是因为一个简单的事实:这是大多数用户想要/需要的。

这种整形可以在典型的 3GPP (GSM 3G) 网络上导致您首先获得支持 384kbit 的 RAB(无线接入承载),然后只要您的设备接受它就会降级。这意味着您通常会从 384 -> 256 -> 128 切换,然后是 64kbit,您的设备可能开始缓慢接收数据,然后网络对其进行升级,并在一段时间后再次降级。

那么为什么 MP3 文件不卡顿呢?我的猜测是总 kbit 速率可能会有所不同 - 所以你在 64kbit RAB 中没问题。这是一个普遍现象。