4

私は現在 を使用しておりMPMoviePlayerController、ビデオ再生の指標を分析しています。具体的には、アダプティブ ビットレートの分析です。

テストの一環として、ビデオの特定のレンディションを固定ビットレート ( 995kbps) で読み込みobservedBitrateますが、 my のプロパティから読み取るとMPMovieAccessLogEvent、この値はさらに大きくなり、約15mbps.

この返されるビットレートが再生のビットレートよりもかなり高い既知の理由はありますか? 私はすべての値とすべての再生を再確認しましobservedBitrateたが、膨らんでいるのは間違いなく です。

ドキュメントによると、この値は次のとおりです。

ムービー プレーヤー用にダウンロードされたすべてのメディアの経験的なスループット (ビット/秒)。

アップデート

私はこの質問を開発者フォーラムに投稿し、回答を受け取りました.

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

セグメントのビット レートをダウンロードして測定する mediastreamvalidator で HLS ビデオをチェックする価値があります。

4

1 に答える 1

4

これには簡単な答えがありますindicatedBitrate。a MPMovieAccessLogEvent(またはAVPlayerItemAccessLogEventfor AVPlayer) は現在のプレイリストのビットレートであり、ストリームを再生するために必要な平均ビットレートです。

ただし、これobservedBitrateは平均化されたものではありません。これは、プレーヤーが特定のビデオ チャンクをダウンロードしている間に達成した瞬間的なビットレート (またはダウンロード速度) です。

例: 1000 Kb/s ストリームのプレイリストを、それぞれ 10 秒のチャンクで再生します。デバイスは WiFi 経由で 10MB/秒以上のダウンロードを達成できるため、各チャンクのダウンロードに 1 秒もかかりません。したがって、プレーヤーは各チャンクで 10,000 Kb/s を超える速度でダウンロードしています。プレーヤーが(おおよそ)これらの値を返すことを期待しています:

indicatedBitrate: 1000Kb/秒

observedBitrate: 10,000Kb/秒

私自身、これらの大きな値に当惑していましたが、これで説明がつくと思います。

これは説明のためのものです。チャンクのダウンロードにかかる時間や、実際には各チャンクの大きさがわからないため、これらの値はあまり意味がありません。本当にobservedBitrateわかるのは、プレーヤーがストリームの再生に必要なビットレートにどれだけうまく対応しているかです。前者が後者の 10 倍大きい場合、各チャンクのダウンロードに使用可能な時間の 10% しか使用していません。この比率は、サービス品質の指標として使用できます。たとえば、observedBitrateが よりも小さい場合、indicatedBitrateバッファリングが原因でプレーヤーが停止する可能性が非常に高くなりますが、大きい場合はすべて問題なく、ストリームはスムーズに再生される可能性があります。

于 2015-08-11T16:28:59.453 に答える