概要
Brightcove Liveは、ライブストリーミングイベントや 24 時間 365 日のライブストリームを作成するための堅牢なサービスを提供します。このガイドでは、ライブ配信を最適化するためのベストプラクティスを概説します
コンテンツコンテキスト
ストリーミングされるコンテンツのタイプは、入力の品質を維持するために必要な設定に影響を与えるため、考慮する必要があります。トレードオフがあり、可能な限り高い設定を使用すると、フレームがスキップされるなどの問題が発生する可能性があることに注意してください。
以下の情報に基づいて、ライブイベントの前に、品質とパフォーマンスについてさまざまな設定の組み合わせをテストすることをお勧めします。
次の表に、主要な入力パラメーターの概要を示します。
パラメーター | 備考 |
---|---|
入力ビットレート | エンコーダが送信するビットレート。レートが高いほどネットワーク損失の影響を受けやすいため、できるだけ低く抑える必要があります。 |
入力解像度 | これはソースコンテンツと一致する必要があります。これを元のソースより大きくすることに利点はなく、この値が高いほど、それをサポートするために必要なビットレートが高くなります。 |
入力ビットレートとトッププロファイルの比率 |
ライブ イベント中に最適なパフォーマンスを確保するには、最高ビットレートのライブ レンディションのビットレートと一致するように入力ビットレートを設定することをお勧めします。ただし、最大レンディション ビットレートを大幅に超えると、バッファリング、高い入出力ドリフト、およびその他の関連する問題が発生する可能性があります。したがって、Brightcove では、入力ビットレートを決定する際に、次の要素を慎重に考慮することをお勧めします。
|
プロファイル |
異なるプロファイル(baseline、main、high)は、データを昇順に圧縮します(baseline:低、high:高)。圧縮率を上げると、転送速度が向上しますが、データをデコードするために必要なCPUリソースも多くなります。エンコーダーが利用可能なリソースに大きな制約がない限り、baselineプロファイルは避ける必要があります。一方、高ビットレートでhighプロファイルを使用すると、必要なデコードCPUリソースが増えるため、フレームがスキップされる可能性が高くなります。
こちらのGOP構造も参照して下さい。 |
フレームレート |
これはソースと一致する必要があります。
レートが高くなると、それに比例して高い入力ビットレートが必要になります。たとえば、アクションスポーツコンテンツの場合、60fpsの入力ストリームは30fpsのストリームよりも大幅に多くのデータを伝送します。 60 fpsなどの高レートでは、高ビットレートの複雑なコンテンツでフレームスキップの問題が発生する可能性が高くなります。 |
キーフレームレート |
最も効率的な設定は、セグメントの長さxフレームレートです。たとえば、6秒のセグメントと30 fpsがある場合、キーフレームレートを180(6x30)にすると、デコーダーの負荷が最小になります。
ただし、変動を考慮して、フレームレートの2倍に設定されます。たとえば、30fpsのフレームレートの場合は60に設定されます。 |
GOP構造 | こちらのGOP構造を参照してください。 |
入力制限
最高品質で一貫したストリーミング体験を実現するために、Brightcove Liveでは入力ストリーム設定を以下の項目に制限しています。
- プロトコル:
rtmp
、rtp
、rtp-fec
、またはsrt
(rtmp
以外は、MPEG2-TS入力用です)[1-1] - 解像度:最大1920x1080
- 最大30fps、これは一般的です。Brightcoveは最大 60 fps をサポートしていますが、上限を引き上げるにはBrightcove サポートに連絡する必要があります。60fps を使用する場合、Brightcoveでは、コンテンツに必要な視覚的品質と一定のフレームレートを実現するために、ビットレートを上げることをお勧めします。
- インジェストできる最大入力ビットレートは30Mbpsに設定されています。 また、最大出力ビットレートは20Mbpsです。
- コンスタント ビットレート(CBR)は、問題の発生可能性を大幅に低減します。
- ビデオ コーデックはH.264である必要があります。
- スライス:エンコーダにこのオプションがある場合は、
1
に設定します。 - 音声コーデックは
AAC
でなければなりません。 - 音声サンプリングレート:44.1khz と 48khz を推奨します。
- キーフレームレートまたは GOP (Group of Picture) を揃える:
- キーフレームは、入力と出力(25fps ビデオを含む)の両方で常に 2 秒ごとに発生する必要があります。つまり、ストリーム自体の 2 秒ごとにキーフレームがエンコーダから Brightcove に送信されます。このプロセスはさまざまな方法で定義できますが、最も一般的なのはキーフレームレートになります。
- これは、異なるエンコーダによって計算方法は異なります。例:
- Wirecast は通過するフレーム数を使用するため、30 fps のビデオの場合、設定は 60 になります。
- Elemental エンコーダは秒を使用するので、正しい設定は '2' になります。
- 60 FPS ビデオは、この設定がフレームでカウントされる場合にのみ変更されます。この場合、120 フレームごとに 2 秒になります。
- もし、Keyframe Aligned、Sync GOP、Align Keyframesなどのオプションがある場合、キーフレームが揃っていることを確認して下さい。キーフレームが揃っていないと、HLSのセグメンテーションで同期の問題が発生します。
- Brightcove Live は、インバンド(h.264 ヘッダ内)で 608 のキャプションをサポートします。 このトピックの詳細については、ライブ ストリームでのキャプション[1-2]を参照して下さい。
注
- [1-1] TS入力に複数のビデオ/オーディオトラックがある場合、それぞれについて最初のトラックを選択します。また、インターネット経由の UDP 上のプレーンなTSは非常に信頼性が低いため、FEC を使用することを強くお勧めします。FECの場合、行/列に使用する値が 小さい ほど、エラー訂正の信頼性が高くなります(その代償として、帯域幅が増加します)。
- [1-2] 608キャプションを実装する場合は、608データでキャプションの位置を設定する必要があります。
長時間実行されるジョブ
長時間実行されるジョブ (リニア チャネルなど) がある場合は、バグ修正や新機能を活用するために、毎月ジョブを再アクティブ化してください。
ストリーミングに関する重要な問題
エンコーダーからBrightcoveへのストリーミング エクスペリエンスの問題に関連して、一般的に発生するいくつかの問題があります。
-
入力に影響を与えるネットワークの不安定性:
- インターネットは一般的に非常に信頼性が高いものですが、絶対的なものではなく、問題が発生することがあります。ビットレートが高いほど、問題が発生する可能性が高くなります。
- ビデオのアップロードにリアルタイムよりも時間がかかると、入力ドリフト(ビデオを受信した時刻が、送信した時刻より大幅に遅くなること)が発生する可能性があります。
- トランスコーダーの過負荷によるフレーム スキップ:トランスコーダーに十分なオーバーヘッドを持つように努めていますが、コンテンツの複雑さの突然の急増、ネットワークの中断/キャッチアップ、またはトランスコーダへのその他の障害によって、フレームスキップが発生することがあります。入力が複雑になればなるほど、フレームスキップが発生する可能性が高くなります。また、5分間以上の静止画像からの変更や、アクションの内容が突然変わったりすると、過負荷が発生する可能性があるという既知の問題もあります。
- エンコーダーは可変フレーム長を送信する場合: 整数フレーム レート (30fps など) を使用することをお勧めします。これにより、一貫したキーフレーム配分とセグメント サイズが保証されます。
- エンコーダーが送信するキーフレームの間隔が一定でない場合、キーフレームのレートは最低でも、フレームレートの2倍(秒)以上である必要があります。例えば、30fps のフレームレートの場合、キーフレームの間隔は 60 フレーム(つまり2 秒)で、セグメントごとに最大 1 回の間隔にする必要があります。例えば、6 秒のセグメントがある場合、最大間隔は 30 fps で 180 フレームになります。
コンテンツタイプ
一般的に、より複雑なコンテンツでは、これらの設定のうち高い方を使用する必要があるため、フレームがスキップされる可能性が高くなります。以下の表は、複雑な順にいくつかの例を示しています。これらは単なる例であり、ほぼすべてのエンコーダ設定が異なることに注意してください。テストと検証を実行する必要があります。
コンテンツタイプ | 設定例 |
---|---|
ウェブカメラ |
|
Web会議 |
|
アニメーション |
|
トーキングヘッド/ニュース |
|
ライブ コンサート |
|
ライブ スポーツ |
|
ライブ スポーツ 高FPS |
|
トランスマックス ライブジョブ
リクエストのセグメンテーション設定と一致するように、キーフレームの挿入を設定します。 例えば、フレームレートが25フレーム/秒で、6秒のセグメントを希望する場合、キーフレームの間隔は少なくとも300フレームに1回になるように設定します。
エンコーダーの設定/出力を、希望するターゲット デバイスでテストします。 これは、すべてのコンシューマー機器と互換性がない可能性がある、高度な設定を持っているブロードキャスト コントリビューション エンコーダーを使用する場合に特に重要です。 また、特に高度な設定は避けることもお勧めします。エンコーダーやオプションには非常に多くのものがあるため、具体的にどのようなものかを言うのは困難です。 しかし、一般的なトップレートプロファイルは次のようになります:
- 6Mbps のピーク ビットレート
- H264 High プロファイル
- B フレーム: 2
- 8bit 4:2:0 color
検証とテスト
理想的には、最も複雑な(最も変化するコンテンツ)で可能な限り低い設定から始め、そのコンテンツについて、出力が許容できるまで様々な設定を増やしてテストする必要があります。これは、一般的に設定が高いほど、ネットワークまたはトランスコーディングのいずれかで問題が発生する可能性が高くなるためです。
帯域幅のテスト
入力ストリームの適切な設定に到達するための最初のステップは、サイト上で利用可能な帯域幅を決定することです。役立つツールはいくつかあります。
- Speedof.me ( http://speedof.me )-HTTP 接続で使用可能な総帯域幅の決定は、最初のステップとして適しています。ただし、入力フィードは HTTP ではなく RTMP 経由で Live モジュールにストリーミングされるため、RTMP 接続で使用できる実際の帯域幅は大幅に小さくなります。
- Speedtest ( http://www.speedtest.net )-現在のアップロードおよびダウンロード速度を決定するためのオンラインツール。
入力帯域幅
高品質で安定した入力ストリームを提供することが、視聴者に最高のユーザーエクスペリエンスを提供するための唯一の方法です。優れた入力ストリームは、その場所から一貫して利用可能な最高の帯域幅で、最高のビデオ品質を提供します。
- 最小入力帯域幅: 2.5 mbps
- 最大入力帯域幅: 20 mbps
入力制限スパイク
- 最大入力ビットレート: 30Mbps
- 最大出力ビットレート: 20Mbps
エンコーダー機能の決定
ライブストリームをエンコードしてLiveモジュールに送信するために使用されるソフトウェアとハードウェアの機能を理解することも重要です。高品質の1080pの入力ストリームを送信するには多くのビットレートがありますが、ハードウェアはリアルタイムよりも速い速度でエンコードできる必要があります。エンコーディング ツールの中には、使用中の CPU 使用率と帯域幅の合計に関する情報を表示するものがあります。たとえば、Telestream Wirecast では、出力統計がページの上部に表示されます。この情報は、特定のハードウェア上で可能な最も安定した、最高品質のストリームを判断するときに役立ちます。
この情報は、特定のハードウェアで可能な最も安定した最高品質のストリームを決定するときに役立ちます。 Wirecastで見るべき項目は
- CPUは80%以下でなければなりません。
- データレートはターゲット ビットレートの近くであること。
- FPSは入力ストリームの設定レートであること。
GOP構造
ビデオのGroup of Pictures(GOP)構造は、最初に次のように使用されるプロファイルに依存します。
- Baselineプロファイルは、I フレームと P フレームと CAVLC エントロピーエンコーディングのみをサポートします。
- Main および Highプロファイルは、 I、B、P フレームおよび CABAC エントロピーエンコードをサポートします。
Mainプロファイルと Highプロファイルは、一般的に、より良い品質でより良い圧縮をもたらしますが、エンコードとデコードに追加の計算を必要とするため、フレームがスキップされる可能性があります。さらに、これらのプロファイルは、B(双方向)フレームを使用するため、エンコードプロセスに若干の遅延が生じます。
Baselineプロファイルは、エンコードとデコードに必要なCPUが少なくて済みますが、圧縮率が低いため、品質を維持するために必要なビットレートが高くなり、ネットワークの問題の影響を受けやすくなります。
フレームの種類と性能への影響の可能性に関する注意事項:
- Iフレーム:最も多くの帯域幅を使用します。シーンが完全に変わるか、セグメントの境界で追加するのが最適です。つまり、コンテンツが変更されるほど、必要なものが多くなります(GOPの長さが短くなります)。
- Pフレーム:Iフレーム間の基本単位です
- Bフレーム:前のフレームと将来のフレームの両方を使用し、追加するほど圧縮率は高くなりますが、CPUとレイテンシーは高くなります。
I フレームの使用は、セグメントの開始点 (パススルーを使用する場合は重要) またはシーンの変更に限定することが理想的です。すべてまたは多数のIフレームは、フレームのスキップにつながる過剰な負荷を引き起こす可能性があるため、避ける必要があります。
その他の注意事項:
- キーフレームの密な配置を防ぐためのオプションを使用します (例:
min_keyin
= 3+)。 - キーフレームを規則正しく挿入するためのオプションを使用します。例えば、GOPの長さを秒単位で指定する代わりに、正確な端数やフレーム数で指定します。
- スポーツや動きの多いコンテンツでは、"参照フレーム数 "を
4
に調整することを検討して下さい。 - スポーツや激しい動きのコンテンツでは、"Bフレーム数 "を
3
に調整することを検討して下さい。
ビットレート
- 最小入力帯域幅: 2.5 mbps
- 最大入力帯域幅: 20 mbps
- ストリームを「ほぼ CBR」にします -
max_bitrate
= 1.1 * ターゲット ビットレート。 - 可能な場合は、厳密なHRD準拠のレート制御モードを使用します。
プロトコル
インターネットは保証された配信ネットワークではないことに注意することが重要です。インターネット接続は「良好」と見なされる場合もありますが、高品質で信頼性の高いライブ ビデオ ストリーミングには不十分な場合があります。ISPでのわずかな輻輳、ルーター間の予定外のフェイルオーバー、または同様の問題など、お客様のエンコーダーとBrightcoveトランスコーディング プラットフォーム間の経路におけるわずかな障害が、ビデオ出力の中断を引き起こす可能性があります。高度なライブ放送では、専用ファイバー、予約済み衛星帯域幅、または管理ネットワーク上のコミット済み帯域幅からなる複数の専用ネットワークを使用するのが一般的です。これにはかなりのコストがかかりますが、ほとんどの場合、インターネット上で十分な成果を上げることが可能です。障害のない伝送を維持することが重要な場合は、AWS DirectConnectまたはある程度の専用帯域幅を提供できるISPを検討してください。
一般的に、帯域幅に関連するネットワークの問題を完全に回避するには、エンコーダーの想定ストリームサイズの2倍の帯域幅を確保することをお勧めします。
推奨されるオプション(順に):
- SRT -トランスポート(UDP) のスピードと、ある程度の制御およびエラー回復力の適切な組み合わせを提供します。すべてのエンコーダー使用できるわけではありません。ただし、srt-transmit などのローカル RTP から変換できるツールもあります。
- RTMP --TCPベースであるため、優れたレベルのエラー回復力が提供されます。欠点は、これにはかなりのオーバーヘッドが伴うことです。複数のオーディオトラックなどのすべての機能がRTMPで使用できるわけではないことに注意してください。
- RTP-FEC -エラー回復力を備えた高速UDPベースのトランスポートを提供します。
- RTP -エラー回復力のない高速転送と高度な機能を提供します。
サポートされているエンコーダ
Liveで動作することが確認されているエンコーダーの一覧は、ライブイベントでサポートされているエンコーダー をご覧ください。他のエンコーダも動作する可能性がありますが、テストされていないことに注意してください。
サポートされている CDN
- Akamai
- Amazon CloudFront
再試行
エンコーダからの RTMP 接続の再試行を有効にすることをお勧めします。リトライ間隔を5 秒に設定し、リトライ回数を多くすると、エンコーダとエントリーポイント間の断続的な接続の問題を軽減することができます。
ジョブ設定(Live APIのみ)
推奨ジョブ設定
フィールド | 推奨値 |
---|---|
ad_audio_loudness_level |
-23 (EBU R.128規格) |
ライブ ストリームの開始に関する推奨事項
ジョブはエンコーダー接続前に起動する必要があります。また、エンコーダーからストリームを開始した後にジョブをアクティブにすることはサポートされていない手順であり、予期しない動作を引き起こす可能性があります。
プレーヤー バージョンの更新
Brightcove Player の最新バージョンを確実に使用することは、最適なパフォーマンス、セキュリティ、最新機能へのアクセスを維持する上で非常に重要です。 新しいリリースには、多くの場合、バグ修正、パフォーマンスの改善、ライブ ストリーミング体験を向上させる新機能が含まれています。
プレーヤー アップデートのベストプラクティス
- Brightcove Player リリース ノート を定期的に確認し、プレーヤーの最新バージョンに関する情報を入手してください。
- 現在のプレーヤー設定とコンフィギュレーションのバックアップがあることを確認してください。
- 新しいプレーヤーのバージョンをステージング環境に実装し、カスタマイズや統合を含むすべての機能をテストします。
- 本格的な展開の前に、いくつかのリスクの低いライブイベントから始めてパフォーマンスを監視します。
- 新しいプレーヤー バージョンに関するエンドユーザーや関係者からのフィードバックを収集します。
スレート ソースファイルの推奨事項
- 解像度:(エンコーディング ラダーで最高のもの)
- FPS : (ソースと同じ)
- ビットレート:(エンコーディングラダーで最高のもの)
- オーディオ:(最高レンディションと同じビットレート、チャンネル、サンプリング周波数、およびサンプルあたりのビット数、または入力と同じ)
出力に関する推奨事項
以下は推奨出力設定ですが、多くのエンコーダーでは、RTMP入力は20MBPS(ビデオ+オーディオ)、フレームレートは30fpsに制限されていることに注視して下さい。
項目 | 推奨事項 |
---|---|
ビデオ コーデック | h264 現在、唯一の選択肢です。 |
オーディオ コーデック | aac 現在、唯一の選択肢です。 |
幅 | width またはheight が指定されていない場合、ソースの寸法が使用されます。width またはheight のいずれかが指定されている場合、ソースのアスペクト比を維持するためにもう一方の寸法が計算されます。 |
高さ | width またはheight が指定されていない場合、ソースの寸法が使用されます。width またはheight のいずれかが指定されている場合、ソースのアスペクト比を維持するためにもう一方の寸法が計算されます。 |
ビットレート | 現在サポートされている最大出力ビットレートは20Mbpsです。 |
キーフレームレート | 2秒 |
よくある質問
- ライブジョブを作成してから、どのくらいでストリーミングを開始しなければならないでしょうか?
-
Brightcove Liveでは、
waiting
ステータスからfinishing
に移行する条件は次の 2 つになります。- ジョブが待機状態(まだ開始されていない)で、
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
(24 時間 365 日) ジョブの数は、リージョンごとに 0 または少ない数に制限されます (アカウントの種類によって異なります)。- 同時に実行できる
event
ジョブの数は、リージョンによって制限されており、通常は 100 になります。 - 同時接続待ちの
event
ジョブの数は 5 に制限されています。 - リージョンごとの SEP ジョブ数は 3 または 10 に制限されています(「サポートされている AWS リージョン」を参照)。
これらの制限は、サポートがアカウントレベルで調整できます。追加の容量が必要な場合は、アカウントマネージャーにお問い合わせください。
- 入力帯域幅が十分であれば、 Brightcove Liveは 1080p 品質をプッシュできますか?
- はい、1080p 入力はすべてのアカウントで有効です。
- DRMは利用可能ですか?
- はい!ライブアカウントに DRM サポートを追加する場合は、アカウントマネージャーにお問い合わせください。
さらにサポートが必要な場合
ライブイベントを機能させるためにさらにサポートが必要な場合は、弊社にお問い合わせください。可能な限り迅速に対応できるように、以下はブライトコーブサポートが問題解決に必要とするもののリストです。
- ストリームに発生している具体的な症状。例えば、全く再生されないのか、カクカクしているまたはフリーズするのか?
- このストリームが過去に正常に機能したかどうか。
- エンコーダで使用しているエントリポイント URL。
- 使用しているエンコーディングソフトウェアとハードウェア。
- ライブイベントを公開したプレイヤーの URL。
- Video Cloud Studio のライブアセットのビデオ ID。
- エンコーダから公開ポイントホストへのトレースルートの結果。