• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iOS HTTP Live Streaming - 比特率未知时请求的字节范围?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 01:57:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我们注意到 HLS 在一个正在开发的视频点播 iOS 应用程序中、在高延迟网络上的性能极差,并希望对下载的发生方式进行一些手动调整。

文件(完全编码、从头到尾、TS/M3U8 文件)已经在 CloudFront 上提供服务,因此我们在服务器端可以做的只有这么多来优化它(我认为)。

另一个希望是在 iOS 应用程序中运行一个本地主机服务器,让这个“服务器”通过优先于更频繁、更小段的下载来管理下载。因此,希望能够规避网络的高延迟,同时仍然能够使用可观的可用带宽。

这里的想法是让我们自己了解基础“index.m3u8”及其描述的所有比特率,并且只向 iOS 公开一个简单的 TS 文件“播放列表”(没有任何比特率信息)。

但是,我遇到的困难是试图弄清楚 iOS 将如何实际请求 TS 文件。也就是说,即使 iOS 尝试播放“直接”M3U8 文件(没有多个比特率的文件),我相信它也会尝试发送 TS 文件的范围请求。但是在不知道这些文件的比特率的情况下,iOS 会请求 localhost 的字节范围是多少?即使它确实请求特定的字节范围,它怎么可能是正确的?由于我之前从 localhost 提供给 iOS 的文件,可能是比特率为 1 Mbps 的“5.ts”,而下一个文件可能是比特率为 500 Kbps 的“6.ts”。 iOS 无法估计下一个文件的正确字节范围是多少?

我所概述的方法(为每个 TS 文件切换比特率,对 iOS 透明)甚至可以工作吗?或者,M3U8 中指定的所有 TS 文件是否必须强制具有与我尚未阅读的 HLS 规范的某些部分相同的比特率?


我想我可能会混淆一些事情,或者没有正确理解 iOS 是如何与基本流媒体一起工作的。这方面的一些实际知识将非常有帮助。

谢谢!



Best Answer-推荐答案


我刚刚意识到我的问题没有实际意义,是深夜脑溢血的结果。

iOS 在发出范围请求以下载 TS 文件时,无需注意 M3U8 中指定的比特率。它将发送一个 Range: bytes=0-1 请求让 TS 开始,在响应中获取文件的长度,然后根据需要缓冲的距离或MediaPlayer 框架内部考虑的任何其他变量。

今天以新鲜的眼光看标准 MP4 的范围请求模式(如 this 链接)解决了这个问题。

抱歉打扰了。

P.S:换句话说,我在原始问题中概述的方案实际上会起作用,除非有任何其他问题。

关于iOS HTTP Live Streaming - 比特率未知时请求的字节范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15728185/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap