ライブ配信の遅延を削減する

このトピックでは、Brightcove Live ストリームの遅延を削減する方法について説明します。

はじめに

遅延とは、現実の出来事が録画されてからビデオプレーヤーで視聴者に表示されるまでの時間差のことです。信号をソースからインターネットを通じて視聴者のプレーヤーに送信するには、当然ながら一定の時間が必要です。遅延は、オンライン動画が「セグメント」と呼ばれる分割されたチャンクで送信されることでさらに悪化します。

遅延は動画セグメントの長さを短くすることで削減できます。以下のセクションでは、その具体的な方法について詳しく説明します。

ただし、注意点として、再生が途切れないように、プレーヤーは現在の再生位置よりも先のいくつかのセグメントを事前にダウンロード(これをバッファリングと呼びます)しておく必要があります。

セグメントの長さを短くする場合は、以下の点に注意してください:

  • プレーヤーが事前に取得する動画データが少なくなり、プレーヤーが追加のセグメントをバッファリングする間に再生が一時停止する可能性が高くなります。
  • 顧客の CDN に対するリクエスト トラフィックが増加します。
  • Apple の推奨する標準的なライブ配信の HLS セグメント長は 6秒 です。セグメントを短くすると、ネットワーク状況が最適でない場合にストリームの安定性が低下する可能性があります。低遅延ライブ を使用する方が、最小限の遅延を必要とする場合には適しているかもしれません。

低遅延ライブプロファイルの作成

遅延を削減するには、カスタムのライブプロファイルを作成する必要があります。以下の手順に従ってください:

  1. Studio にログインします。
  2. 管理者 メニューを開きます。
  3. 左側のナビゲーションから トランスコードプロファイル をクリックします。
  4. Live トランスコードプロファイルの中から、4つ以下のレンディション を含むものを選択します。
    Select a Live Profile
  5. リンクをクリックしてプロファイルを開きます。
  6. 複製 をクリックして、選択したプロファイルを元に新しいプロファイルを作成します。
  7. 新しいプロファイルの name を "Low Latency Profile"(または意味のある名前)に変更します。
  8. renditionssegment_seconds2 に変更し、セグメントの長さを 2秒 にします。
  9. プロファイルは以下のようになります:
          {
            "model_version": 1,
            "name": "Low Latency Profile",
            "description": "Deliver high-quality renditions to maximize quality for desktop and OTT.",
            "account_id": "57838016001",
            "renditions": [
              {
                "media_type": "video",
                "format": "ts",
                "segment_seconds": 2,
                "label": "hls1080p",
                "live_stream": true,
                "video_codec": "h264",
                "video_bitrate": 4000,
                "keyframe_interval": 60,
                "width": 1920,
                "height": 1080,
                "h264_profile": "high"
              },
              {
                "media_type": "video",
                "format": "ts",
                "segment_seconds": 2,
                "label": "hls720p",
                "live_stream": true,
                "video_codec": "h264",
                "video_bitrate": 2400,
                "keyframe_interval": 60,
                "width": 1280,
                "height": 720,
                "h264_profile": "high"
              },
              {
                "media_type": "video",
                "format": "ts",
                "segment_seconds": 2,
                "label": "hls540p",
                "live_stream": true,
                "video_codec": "h264",
                "video_bitrate": 1700,
                "keyframe_interval": 60,
                "width": 960,
                "height": 540,
                "h264_profile": "main"
              },
              {
                "media_type": "video",
                "format": "ts",
                "segment_seconds": 2,
                "label": "hls360p",
                "live_stream": true,
                "video_codec": "h264",
                "video_bitrate": 900,
                "keyframe_interval": 60,
                "width": 640,
                "height": 360,
                "h264_profile": "main"
              }
            ],
            "packages": []
          }
  10. このプロファイルを使用するには、Live モジュールで新しいライブイベントを作成する際に選択してください。
    Create Live Event

Live API の使用

遅延を削減したい場合で、Live API を使用してライブジョブを作成する場合は、通常通りジョブを作成しますが、4つ以下のレンディション を含め、各レンディションの segment_seconds2 に設定してください。この機能の 制限事項 にも注意してください。

制限事項

2秒 セグメントの使用は、冗長性を持つライブジョブには対応していません。