4

我目前正在使用MPMoviePlayerController并正在分析视频播放的指标。具体来说,分析自适应比特率。

995kbps作为测试的一部分,observedBitrate我以固定MPMovieAccessLogEvent的比特率15mbps

是否有任何已知原因导致返回的比特率远高于播放的比特率?我已经仔细检查了所有的值和所有的播放,这绝对observedBitrate是夸大的。

根据文档,此值为:

为电影播放器​​下载的所有媒体的经验吞吐量,以比特/秒为单位。

更新

我在开发者论坛上发布了这个问题并收到了一个答案,这仍然只是猜测,但我认为它可能有助于这个问题,并且可能会引发一个更好的答案。

https://devforums.apple.com/thread/216659?tstart=0

使用 mediastreamvalidator 检查您的 HLS 视频是值得的,它将下载并测量您的分段比特率。

4

1 回答 1

4

对此有一个简单的答案 - indicatedBitratea MPMovieAccessLogEvent(或AVPlayerItemAccessLogEventfor AVPlayer)是当前播放列表的比特率,播放流所需的平均比特率也是如此。

但是,observedBitrate不是平均的 - 它是播放器在下载特定视频块时达到的瞬时比特率(或下载速度)。

示例:播放具有 1000 Kb/s 流的播放列表,每块 10 秒。该设备可以通过 WiFi 实现超过 10MB/s 的下载,因此下载每个块的时间不到 1 秒。因此,播放器在每个块期间以超过 10,000 Kb/s 的速度下载。我希望玩家返回(大约)这些值:

indicatedBitrate: 1000 KB/秒

observedBitrate: 10,000 KB/秒

我自己对这些大值感到困惑,但我认为这可以解释。

这只是为了说明 - 这些值不是很有意义,因为我们真的不知道下载一个块需要多长时间,或者每个块有多大。真正告诉您的observedBitrate是,播放器在跟上播放流​​所需的比特率方面做得有多好。如果前者比后者大 10 倍,那么它只使用 10% 的可用时间来下载每个块。该比率可用作服务质量指标。例如,如果observedBitrate小于,indicatedBitrate那么播放器很可能会因为缓冲而停顿,但只要它大于,那么一切都很好,流很可能播放流畅。

于 2015-08-11T16:28:59.453 回答