概要
Brightcoveライブは、ライブストリーミングイベントや 24 時間 365 日のライブストリームを作成するための堅牢なサービスを提供しています。このガイドでは、ライブ配信を最適化するためのベストプラクティスを概説します
コンテンツコンテキスト
ストリーミングされるコンテンツのタイプは、入力の品質を維持するために必要な設定に影響を与えるため、考慮する必要があります。トレードオフがあり、可能な限り高い設定を使用すると、フレームがスキップされるなどの問題が発生する可能性があることに注意してください。
以下の情報に基づいて、ライブイベントの前に、品質とパフォーマンスについてさまざまな設定の組み合わせをテストすることをお勧めします。
次の表に、主要な入力パラメーターの概要を示します。
パラメーター | 注 |
---|---|
入力ビットレート | エンコーダが送信するビットレート。レートが高いほどネットワーク損失の影響を受けやすいため、できるだけ低く抑える必要があります。 |
入力解像度 | これはソースコンテンツと一致する必要があります。これを元のソースより大きくすることに利点はなく、この値が高いほど、それをサポートするために必要なビットレートが高くなります。 |
トッププロファイルに対するビットレートの比率を入力します |
入力ビットレートはトッププロファイルのレートよりも高くする必要がありますが、高すぎるとフレームのドロップやその他の問題が発生する可能性があります。たとえば、トップレートが1080p 30fpsの場合、入力は理想的には約4MBPSである必要があります。これはプロファイルの影響を受けることに注意してください。
高ビットレートのトップ出力が必要な場合は、テストする価値があります。 |
プロファイル |
さまざまなプロファイル(ベースライン、メイン、高)は、データを昇順で圧縮します(ベースライン:最低、最高:最高)。圧縮率を上げると、伝送速度が向上しますが、データをデコードするためにより多くのCPUリソースが必要になります。エンコーダーが利用可能なリソースに高度に制約されていない限り、ベースラインプロファイルは避ける必要があります。一方、高ビットレートでハイプロファイルを使用すると、必要なデコードCPUリソースが増えるため、フレームがスキップされる可能性が高くなります。
こちらもご覧くださいGOP構造未満。 |
フレームレート |
これはソースと一致する必要があります。
レートが高くなると、それに比例して高い入力ビットレートが必要になります。たとえば、アクションスポーツコンテンツの場合、60fpsの入力ストリームは30fpsのストリームよりも大幅に多くのデータを伝送します。 60 fpsなどの高レートでは、高ビットレートの複雑なコンテンツでフレームスキップの問題が発生する可能性が高くなります。 |
キーフレームレート |
このための最も効率的な設定は、セグメント期間xフレームレートです。たとえば、6秒のセグメントと30 fpsがある場合、キーフレームレートを180(6x30)にすると、デコーダーの負荷が最小になります。
ただし、変動を考慮して、これはフレームレートの2倍に設定されます。たとえば、30fpsのフレームレートの場合は60に設定されます。 |
GOP構造 | 見るGOP構造未満。 |
ストリーミングに関する重要な問題
エンコーダーからBrightcoveへのストリーミングエクスペリエンスの問題に関連して、一般的に発生するいくつかの問題があります。
-
入力に影響を与えるネットワークの不安定性:
- インターネットは一般的に非常に信頼性がありますが、間違いはなく、問題は発生します。ビットレートが高いほど、問題が発生する可能性が高くなります。
- ビデオのアップロードにリアルタイムよりも時間がかかる場合、入力ドリフトが発生する可能性があります(ビデオの受信時間は送信時よりも大幅に遅くなります)
- トランスコーダーの過負荷によりフレームがスキップされる:トランスコーダーに十分なオーバーヘッドがあることを確認するためにあらゆることを行っていますが、コンテンツの複雑さが突然急上昇したり、ネットワークの一時的な中断やトランスコーダーへのその他の中断によってフレームがスキップされたりすることがあります。入力が複雑になるほど、スキップされたフレームが発生する可能性が高くなります。また、静止画像から5分以上の長時間の変更や、アクションコンテンツの突然の変更により、過負荷が発生する可能性があるという既知の問題もあります。
- 可変フレーム期間を送信するエンコーダー:フレームレートは一定である必要があり、一定のキーフレーム間隔を許容するようなものである必要があります。たとえば、29.97別名30000/1001または23.976別名24000/1001などのフレームレートの場合、一定の間隔でキーフレームを設定することはできないため、避ける必要があります。
- 一定の期間間隔ではないキーフレームを送信するエンコーダーの場合、キーフレームレートは、秒単位のフレームレートの2倍以上である必要があります。たとえば、フレームレートが30 fpsの場合、キーフレーム間隔は60フレーム(2秒)で、セグメントごとに1回の最大間隔である必要があります。たとえば、6秒のセグメントがある場合、最大間隔は180フレームになります。 30 fps
コンテンツタイプ
一般に、より複雑なコンテンツでは、これらの設定のうち高い方を使用する必要があるため、フレームがスキップされる可能性が高くなります。以下の表は、複雑な順にいくつかの例を示しています。これらは単なる例であり、ほぼすべてのエンコーダ設定が異なることに注意してください。テストと検証を実行する必要があります。
コンテンツタイプ | 設定例 |
---|---|
ウェブカメラ |
|
Web会議 |
|
アニメーション |
|
トーキングヘッド/ニュース |
|
ライブコンサート |
|
ライブスポーツ |
|
ライブスポーツ高FPS |
|
検証とテスト
理想的には、顧客は最も複雑な(最も変化するコンテンツ)で可能な限り低い設定から始めて、出力が受け入れられるまでさまざまな設定を増やしてコンテンツでテストする必要があります。これは、一般に設定が高いほど、ネットワークまたはトランスコーディングのいずれかで問題が発生する可能性が高くなるためです。
GOP構造
ビデオのGroupof Pictures(GOP)構造は、最初に次のように使用されるプロファイルに依存します。
- ベースラインプロファイルは、IフレームとPフレームおよびCAVLCエントロピーエンコーディングのみをサポートします
- 主要と高い I、B、PフレームとCABACエントロピー符号化をサポート
メインプロファイルとハイプロファイルは、一般に、より良い品質でより良い圧縮をもたらしますが、スキップされたフレームの影響を受けやすくなるため、エンコードとデコードに追加の計算も必要になります。さらに、これらのプロファイルはB(双方向)フレームを使用するため、エンコードプロセスにいくらかの遅延が発生します。
ベースラインプロファイルは、エンコードとデコードに必要なCPUが少なくて済みますが、圧縮が少ないため、品質を維持するために必要なビットレートが高くなり、ネットワークの問題の影響を受けやすくなります。
フレームタイプとパフォーマンスへの影響の可能性に関する注意:
- Iフレーム:最も多くの帯域幅を使用します。完全なシーンの変更またはセグメントの境界で追加するのが最適です。つまり、コンテンツが変更されるほど、必要なものが多くなります(GOPの長さが短くなります)。
- Pフレーム:Iフレーム間の基本単位です
- Bフレーム:前のフレームと将来のフレームの両方を使用すると、追加するほど圧縮率は高くなりますが、CPUとレイテンシーは高くなります
の用法Iフレーム理想的には、セグメントの開始(パススルーを使用する場合は重要)またはシーンの変更に限定する必要があります。すべてまたは多数のIフレームは、フレームのスキップにつながる過剰な負荷を引き起こす可能性があるため、避ける必要があります。
その他の注意事項:
- キーフレームの密な配置を防ぐためのオプションを使用します(例:
min_keyin
= 3+)。 - キーフレームの挿入の定期的なリズムを保証するオプションを使用します。たとえば、GOPの長さを秒単位で指定する代わりに、正確な分数またはフレームで指定します。
ビットレート
- 最小入力帯域幅:2.5メガビット/秒
- 最大入力帯域幅:10 mbps
- ストリームを「ほぼCBR」にする-で
max_bitrate
= 1.1 * target_bitrate。 - 可能な場合は、厳密なHRD準拠のレート制御モードを使用します。
プロトコル
インターネットは保証された配信ネットワークではないことに注意することが重要です。インターネット接続は「良好」と見なされる場合もありますが、高品質で信頼性の高いライブビデオストリーミングには不十分な場合があります。ISPでの少量の輻輳、ルーター間の計画外のフェイルオーバー、または同様の問題など、カスタマーエンコーダーとBrightcoveトランスコーディングプラットフォーム間のパスの小さな中断は、ビデオ出力の中断を引き起こす可能性があります。ハイステークスのライブブロードキャストでは、専用ファイバー、予約済み衛星帯域幅、または管理対象ネットワーク上のコミット済み帯域幅のいずれかで構成される複数の専用ネットワークを使用するのが通常の方法です。これにはかなりのコストがかかり、ほとんどの場合、インターネットを介して十分な成果を上げることができます。ただし、障害のないトランスポートを維持することが重要な場合は、AWS DirectConnectまたはある程度の専用帯域幅を提供できるISPを検討してください。
私たちが推奨するオプションは(順番に):
- SRT -トランスポート速度(UDP)と、ある程度の制御およびエラー回復力の適切な組み合わせを提供します。srt-transmitなどのローカルRTPから変換できるツールはありますが、すべてのエンコーダーで使用できるわけではありません。
- RTMP --TCPベースであるため、優れたレベルのエラー回復力が提供されます。欠点は、これにはかなりのオーバーヘッドが伴うことです。複数のオーディオトラックなどのすべての機能がRTMPで使用できるわけではないことに注意してください。
- RTP-FEC -エラー回復力を備えた高速UDPベースのトランスポートを提供します
- RTP -エラー回復力のない高速転送と高度な機能を提供します
サポートされているエンコーダ
Live で動作することが知られているエンコーダの一覧については、「ライブイベントでサポートされるエンコーダ」を参照してください。他のエンコーダも動作しますが、テストされていないことに注意してください。
サポートされるCDN
- Akamai
- Amazon CloudFront
再試行
エンコーダからの RTMP 接続の再試行をイネーブルにすることを推奨します。5 秒の再試行間隔での再試行回数が多くなると、エンコーダとエントリポイント間の断続的な接続の問題が軽減されます。
ジョブ設定
推奨ジョブ設定
フィールド | 推奨値 |
---|---|
ad_audio_loudness_level |
-23 (EBU R.128規格) |
入力要件
次の表に、入力ライブストリームの要件を示します。
項目 | 要件 |
---|---|
プロトコル | rtmp 、rpt 、rtp-fec 、 またsrt (を除くすべてrtmp MPEG2-TS入力用です)[1-1] |
動画形式 | h.264 |
オーディオフォーマット | AAC |
最大オーディオサンプリングレート | 最大 48000 Hz(Brightcoveサポートはリクエストに応じてこの値を増やすことができます) |
解明 | 最大1080p (幅:1920 ピクセル、高さ:1080 ピクセル) |
ビットレート | 少なくとも最高の出力ビットレートと同じ高さでなければなりません-最大:10MBPS。
ほとんどの場合、Brightcoveサポートでは、入力ストリームに定数ビットレートを使用すると、問題が発生する可能性が大幅に減少することがわかりました。 |
フレームレート | 30 fps ( サポートリクエストを送信して、制限を 60 fps に引き上げることができます) |
スライス | エンコーダにこのオプションがある場合は、次のように設定します。 1 |
注
- [1-1] TS入力に複数のビデオ/オーディオトラックがある場合は、それぞれについて最初のトラックを選択します。また、インターネット経由の UDP 上のプレーンなTSは非常に信頼できないため、FEC を使用することを強くお勧めします。FECの場合、 小さい 行/列に使用する値ほど、エラー訂正の信頼性が高くなります(帯域幅が増加しますが)。
スレートソースファイルの推奨事項
- 解像度 : (あなたのエンコーディングラダーで最高)
- FPS : (ソースと同じ)
- ビットレート:(あなたのエンコーディングラダーで最高)
- オーディオ : (最高のレンディションと同じビットレート、チャンネル、サンプリング周波数、サンプルあたりのビット数、または入力と同じ)
推奨を出力する
以下は推奨出力設定ですが、多くのエンコーダでは、RTMP入力は10MBPS(ビデオ+オーディオ)、フレームレートは30fpsに制限されています。
項目 | 推奨 |
---|---|
動画コーデック | h264 は現在、唯一の選択肢です |
オーディオコーデック | aac は現在、唯一の選択肢です |
幅 | width またはheight が指定されていない場合は、ソース寸法が使用されます。width height またはが指定されている場合は、ソースの縦横比を維持するために、もう一方の寸法が計算されます。 |
高さ | width またはheight が指定されていない場合は、ソース寸法が使用されます。width height またはが指定されている場合は、ソースの縦横比を維持するために、もう一方の寸法が計算されます。 |
ビットレート | 入力ビットレート以下の値 |
キーフレームレート | 2秒 |
よくある質問
- ライブジョブを作成した後、ストリーミングを開始する必要があるのはどれくらいですか?
- Brightcoveライブでは、
waiting
状態がからに移行する場合の 2 つの条件がありますfinishing
。- ジョブが待機状態(まだ開始されていない)で、
max_waiting_time_ms
が経過した場合、ジョブは終了または非アクティブになります。 - ジョブが切断状態(開始されたが切断済み)で、
reconnect_time
が経過した場合、ジョブは終了/非アクティブになります。
が
event_length
30 分を超える場合、ジョブは 30 分で終了します。がevent_length
30 分未満の場合、ジョブはで終了しますevent_length
。たとえば、が
event_length
60 分である場合、ライブジョブは 30 分で終了します。event_length
が 15 分の場合、ライブジョブは 15 分で終了します。reconnect_time
は、待機状態には影響しません。 - ジョブが待機状態(まだ開始されていない)で、
- 同時ライブ job_settings の制限は何ですか?
-
アクティブな待機中の未開始ジョブは、いつでも 5 つまで許可されます。
同時ジョブの追加制限:
channel
(24x7)ジョブの数は、リージョンごとに0または低い数に制限されます(アカウントの種類によって異なります)。- 同時に「実行中」
event
ジョブの数は、地域によって制限されており、通常は100に制限されています。 event
同時に接続するジョブの数は5に制限されています 。- リージョンごとの SEP ジョブ数は 3 または 10 に制限されています(「サポートされている AWS リージョン」を参照)。
これらの制限は、サポートがアカウントレベルで調整できます。追加の容量が必要な場合は、アカウントマネージャーにお問い合わせください。
- 入力帯域幅が十分であれば、Brightcoveライブは 1080p 品質をプッシュできますか?
- はい、1080p 入力はすべてのアカウントで有効です。
- DRMは利用可能ですか?
- はい!ライブアカウントに DRM サポートを追加する場合は、アカウントマネージャーにお問い合わせください。