iOS HTTP Live Streaming - 比特率未知时请求的字节范围?
<p><p>我们注意到 HLS 在一个正在开发的视频点播 iOS 应用程序中、在高延迟网络上的性能极差,并希望对下载的发生方式进行一些手动调整。</p>
<p>文件(完全编码、从头到尾、TS/M3U8 文件)已经在 CloudFront 上提供服务,因此我们在服务器端可以做的只有这么多来优化它(我认为)。</p >
<p>另一个希望是在 iOS 应用程序中运行一个本地主机服务器,让这个“服务器”通过优先于更频繁、更小段的下载来管理下载。因此,希望能够规避网络的高延迟,同时仍然能够使用可观的可用带宽。</p>
<p>这里的想法是让我们自己了解基础“index.m3u8”及其描述的所有比特率,并且只向 iOS 公开一个简单的 TS 文件“播放列表”(没有任何比特率信息)。 </p>
<p>但是,我遇到的困难是试图弄清楚 iOS 将如何实际请求 TS 文件。也就是说,即使 iOS 尝试播放“直接”M3U8 文件(没有多个比特率的文件),我相信它也会尝试发送 TS 文件的范围请求。但是在不知道这些文件的比特率的情况下,iOS 会请求 localhost 的字节范围是多少?即使它确实请求特定的字节范围,它怎么可能是正确的?由于我之前从 localhost 提供给 iOS 的文件,可能是比特率为 1 Mbps 的“5.ts”,而下一个文件可能是比特率为 500 Kbps 的“6.ts”。 iOS 无法估计下一个文件的正确字节范围是多少? </p>
<p>我所概述的方法(为每个 TS 文件切换比特率,对 iOS 透明)甚至可以工作吗?或者,M3U8 中指定的所有 TS 文件是否必须强制具有与我尚未阅读的 HLS 规范的某些部分相同的比特率?
<br/>
<br/>
<br/>
我想我可能会混淆一些事情,或者没有正确理解 iOS 是如何与基本流媒体一起工作的。这方面的一些实际知识将非常有帮助。</p>
<p>谢谢! </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>我刚刚意识到我的问题没有实际意义,是深夜脑溢血的结果。</p>
<p>iOS 在发出范围请求以下载 TS 文件时,无需注意 <b>M3U8 中指定的比特率</b>。它将发送一个 <code>Range: bytes=0-1</code> 请求让 TS 开始,在响应中获取文件的长度,然后根据需要缓冲的距离或MediaPlayer 框架内部考虑的任何其他变量。</p>
<p>今天以新鲜的眼光看标准 MP4 的范围请求模式(如 <a href="http://stevebranding.wordpress.com/tag/avplayer/" rel="noreferrer noopener nofollow">this</a> 链接)解决了这个问题。</p>
<p>抱歉打扰了。</p>
<p>P.S:换句话说,我在原始问题中概述的方案实际上会起作用,除非有任何其他问题。</p></p>
<p style="font-size: 20px;">关于iOS HTTP Live Streaming - 比特率未知时请求的字节范围?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/15728185/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/15728185/
</a>
</p>
页:
[1]