我正在尝试获取AVPlayer播放视频流的比特率。我尝试使用observed bit rate
的AVPlayerItemAccessLogEvent
属性,但它具有很高的值(value)。进一步研究Observed-bit-rate
属性后,我了解到此属性显示download rate of a segment
的值。我需要知道播放器播放流的比特率。
下图显示了LIVE流的“观察到的比特率”与“指示的比特率”。
请就这个问题提出您的建议。
我尝试了以下链接,但没有运气:
https://stackoverflow.com/a/14845997/1730345。
MPMoviePlayerController MovieAccessLogEvent - Inflated observedBitrate。
最佳答案
您对observedBitrate
的看法是正确的。这表明下载速度。indicatedBitrate
应该告诉您播放当前流所需的广告比特率。我相信值(value)来自HLS主 list 。当播放没有多个比特率变体的流,并且只有一个比特率变体可用时,indicatedBitrate
的值将为-1
。
如果您一直在处理具有主 list 的流,那么indicatedBitrate
是最佳选择。
如果要处理没有主 list 的流,则估算比特率的一种方法是获取最后一个AVPlayerItemAccessLogEvent
条目,然后使用以下方法对其进行计算:
numberOfBitsTransferred = (numberOfBytesTransferred * 8)
numberOfBitsTransferred / segmentsDownloadedDuration
从经验上讲,每当播放器切换比特率时,它将发布一个新的访问日志条目。最新的访问日志条目将包含有关最近选择的流的数据。
关于ios7 - 如何找到AVPlayer当前比特率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32406838/