【问题标题】:MPMoviePlayerController MovieAccessLogEvent - Inflated observedBitrateMPMoviePlayerController MovieAccessLogEvent - 膨胀的观察比特率
【发布时间】:2014-01-08 14:12:28
【问题描述】:

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

作为测试的一部分,我以固定比特率 (995kbps) 加载视频的特定再现,但是当从我的 MPMovieAccessLogEventobservedBitrate 属性中读取时,这个值会被夸大得多 - 顺其自然大约15mbps

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

根据文档,这个值为:

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

更新

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

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

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

【问题讨论】:

  • +1 有趣的问题 - 我从未真正仔细检查过那些记录的值。假设您在这里(很可能)得不到正确答案,请继续提交 TSI。
  • 谢谢。是的,这很奇怪,我在想也许“所有媒体的吞吐量”意味着总下载的比特率还包含额外的开销。但是当我播放其他版本(240kbps、640kbps)时,似乎无法推断出任何模式。
  • 我确实看到实际下载的数据超过了播放的流比特率,因为在播放时至少存在放大和缩小所选流比特率的点。换句话说,播放器有时可能会在流式传输时丢弃块以支持不同的带宽。然而,这不应该加起来为 2 或更高的因子,它只适用于 http-streaming。

标签: ios mpmovieplayercontroller bitrate adaptive-bitrate


【解决方案1】:

对此有一个简单的答案 - MPMovieAccessLogEventindicatedBitrate(或 AVPlayerItemAccessLogEventAVPlayer)是当前播放列表的比特率,因此是播放流所需的平均比特率。

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

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

indicatedBitrate: 1000 Kb/s

observedBitrate: 10,000 Kb/s

我自己也被这些大值迷惑了,但我认为这可以解释它。

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

【讨论】:

  • ,你对observedbitrate的解释很好,我要求你用一个例子来解释平均观察bitrate的计算。这将有助于更好地理解它。提前谢谢。
  • karthik - 我添加了一个额外的段落来扩展这方面的内容。感谢您指出 - 我看到我的示例可能会被误解,因此希望它现在更清晰。
  • 感谢您的澄清,我已经发布了一个关于播放列表当前比特率的问题,请您在这里帮助我。stackoverflow.com/q/32406838/1730345
猜你喜欢
  • 1970-01-01
  • 2015-10-30
  • 2020-03-15
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多