Tag: 视频播放器

优化HTTP实时流(HLS)以获得最佳用户体验2

介绍 为了更好地理解和利用AVFoundation功能,我观看了wwdc18会议502。我想传达优化HLS的信息,以提供更好的用户体验。 在上一篇文章中,我们学习了为KPI选择什么,以及如何减少启动时间。 本文,我们将介绍如何调查HLS播放中的停顿和错误 调查摊位 失速可能发生,并且确实发生! 听摊位通知 那么,如何检测您的应用程序停滞? 有停顿的通知。 AVPlayerItemPlaybackStalled是用于观察停顿的通知名称。 这是侦听停顿通知的代码示例。 检查AVPlayerItem状态,AVPlayerItem日志 当停顿时,您可以观察到一些东西来调查停顿。 首先,您可以检查AVPlayerItem.isPlaybackLikelyToKeepUp 发生停顿时, AVPlayerItem.isPlaybackLikelyToKeepUp为false ,您可以在那一刻开始加载指标。 其次,您可以从AVPlayerITemErrorLog , AVPlayerItemAccessLog查找详细日志。 如 错误说明 观察到的比特率和指示的比特率 减少失速 为了减少失速,应采取以下措施。 提供全套的比特率层 每个编解码器组合都需要自己的一组层 您的内容服务器和CDN必须 毫不延迟地提供媒体播放列表,片段和键 至少在每个目标持续时间更新实时播放列表 同步播放列表之间的不连续序列号 清楚表明服务器端故障 调查错误 我们如何调查错误? 调查方法很少 来自AVPlayerItem的错误和访问日志 来自AVPlayer,AVPlayerItem的错误属性 媒体验证工具来检测内容问题 AVPlayerItemErrorLog 这可能不是致命错误 详细信息在错误注释中 ErrorLog示例 “ 15秒内未收到媒体文件” “ HTTP404:找不到文件” “细分超过指定的变体带宽” “不支持的加密格式” AVPlayer,AVPlayerItem的“状态”属性 这可能是致命的错误 AVPlayerItem.Error结束播放并从播放器队列中删除项目 媒体验证工具 您可以使用媒体验证工具来发布内容 在开发者网站上可用 结论 […]

优化HTTP实时流(HLS)以获得最佳用户体验1

苹果每年都会更改并扩展其框架。 为了更好地理解和利用框架功能,以下是用于优化HTTP Live Streaming(HLS)的演示文稿和注释。 HTTP实时流(HLS)用于向全球受众流式传输实时和点播内容。 您可以发现如何调整和调整流创作和传递元素,以通过会话502改善用户体验。 会话链接 在会议上,他们讨论了以下内容: 建立通用的流QoS语言 客观衡量流式QoS 识别并解决损害QoS的问题 有关HLS回放会话的基本知识,请参见下图。 首先,您需要先找到问题再解决。 为了发现问题,您需要测量定义的一些指标。 什么是HLS用户体验的KPI? 这是会议中讨论的一些KPI。 5个用于HLS性能的KPI 启动时间:每个会话的启动时间 失速计数:失速速率(标准化为已观察的持续时间—计数/小时) 失速持续时间:失速持续时间与观察的持续时间之比 指示比特率:时间加权指示比特率 错误:播放失败百分比 启动时间 这是启动媒体播放的每个阶段。 失速计数,失速持续时间,指示的比特率 您可以使用AVPlayerItemAccessLog来衡量KPI 播放失败百分比 定义KPI后的下一步,提高性能! 减少启动时间 调查摊位 调查错误 使用AVAsset减少启动时间 您可以通过减少启动时间 在用户决定播放之前创建并检查AVAset 预取解密密钥(采用AVContentKeySession) 减少启动时间-AVPlayer和AVPlayerItem 您可以通过减少启动时间 在缓冲之前设置AVPlayItem 在设置播放器项目之前设置AVPlayer速率 减少启动时间-AVPlayerItem过渡 您可以通过减少启动时间 使用AVQueuePlayer播放多个项目 预先排队第二个AVPlayerItem 在本文中,我讨论了会话(502)“测量和优化HLS性能”的部分内容 这是本文的摘要 设置KPI以获得更好的HLS UX 找到衡量KPI指标的方法 减少启动时间(通过更改avasset,avplayer的配置-avplayeritem,avplayeritem转换) 在下一篇文章中,我们将看一下如何调查HLS播放中的停顿和错误