2

私はアップルのhttpライブストリーミングを使用してipad/iphoneにライブビデオをストリーミングすることに取り組んでいます。この重要なステップの1つは、プレイリストとともにトランスポートストリームを複数のtsセグメントにセグメント化することです。Appleのドキュメントによると、推奨されるtsセグメントの継続時間は10秒です。ただし、継続時間が長いほどレイテンシが長くなるため、この期間を2秒または1秒に短縮しようとしています。

Appleのドキュメントでは、キーフレームの境界間でセグメンテーションを実行する必要もあります。つまり、各tsセグメントはキーフレームで開始する必要があるため、独立して再生できます。ここに矛盾する部分があります。これはほとんど不可能であり、トランスポートストリームが1〜2秒ごとにキーフレームを持つことも無駄になります。だから私の質問は、tsセグメントがキーフレームで始まらない場合でもhttpライブストリーミングは機能しますか?

4

1 に答える 1

3

ビデオストリームが1秒または2秒ごとにキーフレームを持つことは非常に簡単です。たとえば、放送テレビには通常、0.5秒ごとにキーフレームがあります。エンコーダーの構成パラメーターは、「GOP」(写真のグループ)サイズやキーフレーム間隔などと呼ばれます。

キーフレームの頻度が高くなると(同じ品質を実現するにはより多くのバイトが必要になります)、コーディング効率は低下しますが、シークのパフォーマンスは向上します。

質問に直接答えるには:いいえ。tsセグメントがキーフレームで始まらない場合、HLSは正しく機能しません。これには2つの理由があります。

  1. 任意のセグメントをシークし、すぐにデコードできる有効なデータを取得できる必要があります。

  2. 任意のセグメント境界で異なるビットレートを切り替えることが可能でなければなりません。キャッシュされたデータが無効になるため、異なるストリームへの参照はありません。

于 2012-07-25T07:40:13.587 に答える