6

AVPlayer がビデオ ストリームを再生しているビット レートをフェッチしようとしています。observed bit rateのプロパティで試してみましAVPlayerItemAccessLogEventたが、非常に高い値が得られます。さらにObserved-bit-rateプロパティを調べたところ、このプロパティが の値を示していることdownload rate of a segmentがわかりました。プレーヤーがストリームを再生しているビット レートを知る必要があります。

以下のグラフは、LIVE ストリームの観測ビットと表示ビット レートを示しています。 ここに画像の説明を入力

この問題についてご提案をお願いします。

次のリンクを試しましたが、うまくいきませんでした:

https://stackoverflow.com/a/14845997/1730345 .

MPMoviePlayerController MovieAccessLogEvent - 膨張したobservedBitrate

4

2 に答える 2

12

あなたは正しいですobservedBitrate。それはダウンロード速度を示しています。

indicatedBitrate、現在のストリームを再生するために必要なアドバタイズされたビットレートを通知する必要があります。その価値は HLS マスター マニフェストに由来すると私は信じています。複数のビットレート バリアントを持たず、利用可能なビットレート バリアントが 1 つしかないストリームを再生する場合、 の値はindicatedBitrateになります-1

マスター マニフェストを持つストリームを常に処理している場合indicatedBitrateは、これが最適なオプションです。

マスター マニフェストを持たないストリームを扱っている場合、ビットレートを推定する 1 つの方法は、最後のAVPlayerItemAccessLogEventエントリを取得し、それを使用して計算することです。

numberOfBitsTransferred = (numberOfBytesTransferred * 8)
numberOfBitsTransferred / segmentsDownloadedDuration

経験的に言えば、プレーヤーがビットレートを切り替えるたびに、新しいアクセス ログ エントリが投稿されます。最新のアクセス ログ エントリには、最後に選択されたストリームに関するデータが含まれます。

于 2015-09-08T02:55:58.167 に答える