iPhone HE-AAC移动网络流媒体(3G)

iPhone HE-AAC移动网络流媒体(3G),iphone,mp3,mobile-safari,http-live-streaming,icecast,Iphone,Mp3,Mobile Safari,Http Live Streaming,Icecast,使用jPlayer开发了一个internet无线电拖缆,它利用了jQuery的html5音频标签,并为不受支持的浏览器提供了一个flash回退。在iPhone(iOS 5.0.1)上测试播放器时,我们遇到了一个非常奇怪的问题 当iPhone连接到WiFi时,它使用HE-AAC V2流以64kbps 44.1kHz(苹果产品的首选编解码器)完美地传输数据。然而,当iPhone连接到3G移动网络时,它会“断断续续”或每隔1-2分钟停止流媒体1-2秒(不会完全停止流媒体)。麻烦的是,当iPhone被迫

使用jPlayer开发了一个internet无线电拖缆,它利用了jQuery的html5音频标签,并为不受支持的浏览器提供了一个flash回退。在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上工作

更新


根据苹果公司针对iOS设备的HTTP直播文件,“纯音频内容可以是MPEG-2传输或MPEG基本音频流,可以是带有ADTS头的AAC格式,也可以是MP3格式。”我们的音乐服务器使用OddcastV3编码器向icecastV2服务器发送三个流(MP3、HE-AAC V2和Oggvorbis)。不确定编码器是否正在为HE-AAC V2流插入ADTS头。有什么方法可以检查这一点吗?

从无线电规划的角度来看,这是我的两分钱:

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

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


那么为什么MP3文件不是口吃呢?我的猜测是,总的kbit速率可能会有所不同,因此您在64kbit RAB中表现良好。这是一种常见的现象。

我们已经设法让完全相同的东西发挥作用。移动设备上的64kbit AAC-v2。我们正在传输文件,而不是稳定的流,我认为Magnus在解释网络如何将流量优先化为突发时是正确的,在我们的例子中,这意味着我们立即拥有文件的大部分,玩家可以继续播放,直到下一个突发出现。在您的例子中,这意味着流暂停,直到下一个突发出现

您是否可以在流媒体中切换到更大的块(更大的缓冲区)或流媒体整个文件

我们在iOS上遇到了一个非常奇怪的现象,我们必须将所有文件从.m4a重命名为.aac,才能在iOS上进行流式处理。如果我们不重命名它们,iOS就不会播放它们


祝你好运。

这是你的事,但我给你的建议是在SO上获得更多的声誉,并能够开始第一个问题的悬赏。您可以回答任何主题,而不仅仅是与ios相关的主题。请阅读苹果针对ios设备的HTTP Live Streaming文档,“纯音频内容可以是MPEG-2传输或MPEG基本音频流,可以是带有ADTS头的AAC格式,也可以是MP3格式。”不确定流是否具有ADTS头。不确定这是否是问题所在……在右侧,您可以找到用于流检查的工具。安装后,您可以这样使用它:mediastreamvalidator validator validate--timeout=60您将在日志中看到最重要的问题。您说“总大小可能不同”,但是没有总大小,因为这是一个流式广播电台,并且没有下载特定大小的文件,无论是MP3还是HE-AAC。对不起,我指的是“总kbit速率”。我已经更新了我的答案。您是否进行了网络窥探(可以使用模拟器中的仪器轻松完成)尚未进行网络窥探。我甚至不知道那是什么!我们已经用HE-AAC@128kbps测试了这个问题,但它仍然存在。你会说这与你的答案一致吗?我认为前进的方向是检查网络上正在发生的事情。我建议你们运行仪器,看看发生了什么。谢谢你们的投入。不幸的是,我们无法传输整个文件,因为这是为一个每天24小时稳定传输的互联网广播电台构建的。此外,这不是一个应用程序,而是使用HTTP Live streaming for iOS(直接通过mobile Safari)进行流式处理,因此我们无法控制缓冲。我对整个广播问题仍然很困惑。这个问题仍然发生在128k AAC-V2上,这一事实不会否定无线电解释吗?还有一个事实,MP3在64kbps的速度下运行良好……了解这一点的任何见解都可能帮助我们解决这个问题。再次感谢