在iOS设备上以编程方式限制HLS流的比特率

在iOS设备上以编程方式限制HLS流的比特率,第1张

概述我有一个高清视频,我正在流媒体到iOS应用程序.我想让用户能够限制最大流质量(低,中,高),考虑到以最大比特率流式传输时视频为几GB.同样,我想根据明显的数据上限原因自动选择基于蜂窝与wifi连接的设置. 通过访问AVPlayerItemAccessLogEvent获取当前比特率没有问题,但是在强制降低质量流时丢失了. 这对HLS来说甚至可能吗?谢谢! 它不是完全动态的,但我确实通过创建四个不同的 我有一个高清视频,我正在流媒体到iOS应用程序.我想让用户能够限制最大流质量(低,中,高),考虑到以最大比特率流式传输时视频为几GB.同样,我想根据明显的数据上限原因自动选择基于蜂窝与wifi连接的设置.

通过访问AVPlayerItemAccessLogEvent获取当前比特率没有问题,但是在强制降低质量流时丢失了.

这对HLS来说甚至可能吗?谢谢!

解决方法 它不是完全动态的,但我确实通过创建四个不同的m3u8播放列表来解决这个问题.我将每个播放列表标记为代表流质量(低,高,极端).用户将根据所需的最高质量选择一个.极端播放列表包含所有品质的URL.高播放列表的URL少于极端,URL少于高,URL少于媒体.每当用户选择不同的质量时,我只需将基本流播放列表切换到相应的质量播放列表URL.

以下是四个不同播放列表的简单示例.

HLS_MovIE_Extreme.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000stream-0-64000/prog_index.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=350000stream-1-350000/prog_index.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=800000stream-2-800000/prog_index.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1200000stream-3-1200000/index prog_index.m3u8 m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1800000stream-4-1800000/prog_index.m3u8

HLS_MovIE_High.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1200000stream-3-1200000/index prog_index.m3u8 m3u8

HLS_MovIE_Medium.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=800000stream-2-800000/prog_index.m3u8

HLS_MovIE_Low.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=350000stream-1-350000/prog_index.m3u8

就像我说的那样,它不是动态的,但你可以使用各种技术来获得用户的网络连接,并在需要时指向所需的质量播放列表.对我来说,获得用户的偏好就足够了,并相应地调整流.

总结

以上是内存溢出为你收集整理的在iOS设备上以编程方式限制HLS流的比特率全部内容,希望文章能够帮你解决在iOS设备上以编程方式限制HLS流的比特率所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1076863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存