NextGen Live における RTMP

RTMP を使用して、NextGen Live チャンネルを Facebook や YouTube などの配信先へ同時配信する方法について学びます。

概要

一般的なブロック図
Block Diagram

RTMP(または RTMPS)出力を利用すると、Brightcove Live チャンネルをソーシャルプラットフォームに同時配信できます。 本ガイドでは、プログラムによる API アプローチと、Live モジュールでのポイント&クリックによるアプローチの両方を説明します。 注意事項:

新しいチャンネルへの RTMP 出力の追加

  1. 新しいチャンネルを作成する際に、作成後 Channel Settings > Advanced Settings > RTMP Output を開きます。
  2. Output URL を追加し、レンディションを選択します。
  3. Add RTMP をクリックします。

既存のチャンネルへの RTMP 出力の追加

NextGen Live では、既に作成されたチャンネルに RTMP 出力を追加できます。これを行うには、チャンネルの Control Room を開き、Channel Settings をクリックして Advanced Settings に移動し、RTMP Output セクションを展開します。

Facebook Live への配信

Facebook Live を使用すると、ページやプロフィールを通じてフォロワーに配信できます。 以下の手順は、Facebook アカウントがすでにライブ配信に対応していることを前提としています (詳細は Facebook のドキュメント をご覧ください)。

  1. Facebook にログイン  → 新しい投稿を作成  → Live Video をクリック。
  2. Go LiveCreate Live Video をクリック。「Video Producer」ダイアログが表示された場合は閉じます。
  3. Select a video sourceStreaming Software を選択。
  4. Facebook が Stream Key を表示します。Advanced Settings を展開すると Server URL が表示されます。
  5. Server URL をコピーします。
  6. 新しいチャンネルへの RTMP 出力の追加 または 既存のチャンネルへの RTMP 出力の追加 の手順に従います。
  7. Facebook に戻るとプレビューが表示されます ― 投稿内容を入力し、Go Live をクリック。
  8. 終了したら、Facebook で投稿を見つけ  → Edit Live Video  → End Live Videoエンコーダーも停止してください。

YouTube Live への配信

初めてライブ配信を行う前に、YouTube チャンネルでライブ配信を有効にしてください (最大で 24 時間かかる場合があります)。 詳細は YouTube のドキュメント をご覧ください。

  1. YouTube にログイン  → YouTube Studio を開きます。
  2. CREATE > Go Live をクリック。
  3. 左側のメニューで Stream を選択。
  4. YouTube が Stream KeyStream URL を表示します。
  5. Stream URL をクリップボードにコピーします。
  6. 新しいチャンネルへの RTMP 出力の追加 または 既存のチャンネルへの RTMP 出力の追加 の手順に従います。
  7. YouTube にプレビューが表示されます  → Go Live をクリック。
  8. 終了したら、YouTube Studio で END STREAM をクリック。 VOD コピーが自動で公開されます。エンコーダーを停止してください。

Live API での RTMP 出力の設定

Brightcove Live チャンネルに RTMP(または RTMPS)出力を追加するには、 Live API に送信するジョブ定義にそれらを含めます。

  • RTMP 出力付きのライブジョブを作成するには、次のエンドポイントに POST リクエストを送信します:

            
    https://api.live.brightcove.com/v2/accounts/{account_id}/jobs
            
          

    リクエスト ボディの例(必要に応じて調整してください):

            {
      "type": "channel",
      "name": "Live RTMP Output",
      "region": "us-east-1",
      "input": {
        "protocol": "srt",
        "fixed_ingest_ip": false
      },
      "outputs": {
        "video": [
          {
            "label": "hls270p",
            "height": 270,
            "width": 480,
            "bitrate": 450000,
            "codec": "h264",
            "codec_options": { "level": "3", "profile": "main" },
            "framerate": "30/1",
            "num_b_frames": 3,
            "num_reference_frames": 4,
            "keyframe_rate": 0.5,
            "sample_aspect_ratio": "1:1",
            "decoder_buffer_size": 675000,
            "max_bitrate": 540000
          },
          {
            "label": "hls360p",
            "height": 360,
            "width": 640,
            "bitrate": 780000,
            "codec": "h264",
            "codec_options": { "level": "3", "profile": "main" },
            "framerate": "30/1",
            "num_b_frames": 3,
            "num_reference_frames": 4,
            "keyframe_rate": 0.5,
            "sample_aspect_ratio": "1:1",
            "decoder_buffer_size": 1170000,
            "max_bitrate": 936000
          },
          {
            "label": "hls540p",
            "height": 540,
            "width": 960,
            "bitrate": 1500000,
            "codec": "h264",
            "codec_options": { "level": "3.2", "profile": "main" },
            "framerate": "30/1",
            "num_b_frames": 3,
            "num_reference_frames": 4,
            "keyframe_rate": 0.5,
            "sample_aspect_ratio": "1:1",
            "decoder_buffer_size": 2250000,
            "max_bitrate": 1800000
          },
          {
            "label": "hls720p",
            "height": 720,
            "width": 1280,
            "bitrate": 2400000,
            "codec": "h264",
            "codec_options": { "level": "4", "profile": "high" },
            "framerate": "30/1",
            "num_b_frames": 3,
            "num_reference_frames": 4,
            "keyframe_rate": 0.5,
            "sample_aspect_ratio": "1:1",
            "decoder_buffer_size": 3600000,
            "max_bitrate": 2880000
          },
          {
            "label": "hls1080p",
            "height": 1080,
            "width": 1920,
            "bitrate": 4500000,
            "codec": "h264",
            "codec_options": { "level": "4.2", "profile": "high" },
            "framerate": "30/1",
            "num_b_frames": 3,
            "num_reference_frames": 4,
            "keyframe_rate": 0.5,
            "sample_aspect_ratio": "1:1",
            "decoder_buffer_size": 6750000,
            "max_bitrate": 5400000
          }
        ],
        "audio": [
          {
            "label": "aac1",
            "input_selector_name": "default",
            "language_code": "eng",
            "codec": "aac",
            "bitrate": 128000,
            "sample_rate": 48000
          }
        ],
        "rtmp": [
          {
            "label": "primary_rtmp",
            "url": "rtmp://primary.example.com/live/stream_key_1",
            "video_label": "hls1080p",
            "audio_label": "aac1"
          },
          {
            "label": "backup_rtmp",
            "url": "rtmps://backup.example.com/live/stream_key_2",
            "video_label": "hls720p",
            "audio_label": "aac1"
          }
        ]
      },
      "manifest": {
        "name": "playlist",
        "segment_duration_seconds": 6,
        "playlist_window_seconds": 30,
        "hls": {}
      },
      "maintenance_preferences": {
        "day": "WEDNESDAY",
        "start_time": "02:00"
      },
      "playback_rights_id": "primary"
    }
          

Live API を使用した既存チャンネルへの RTMP 出力の追加

Live API を使用して、既存の Brightcove Live チャンネルに RTMP(または RTMPS)出力を追加することもできます。 これはチャンネルが OFF 状態のときのみ実行できます。

  • 既存のチャンネルに RTMP 出力を追加するには、outputs オブジェクトに rtmp 配列を追加し、次のエンドポイントに PUT リクエストを送信します:

            
    https://api.live.brightcove.com/v2/accounts/{account_id}/jobs/{job_id}
            
          

    rtmp 配列の例:

            "rtmp": [
      {
        "label": "primary_rtmp",
        "url": "rtmp://primary.example.com/live/stream_key_1",
        "video_label": "hls1080p",
        "audio_label": "aac1"
      },
      {
        "label": "backup_rtmp",
        "url": "rtmps://backup.example.com/live/stream_key_2",
        "video_label": "hls1080p",
        "audio_label": "aac1"
      }
    ]
          

    チャンネル作成時に使用した元のジョブ定義を取得するには、次のエンドポイントに GET リクエストを送信します:

            
    https://api.live.brightcove.com/v2/accounts/{account_id}/jobs/{job_id}
            
          

    これにより、既存の outputs オブジェクトを含む完全なジョブ設定が返されます。 ここに RTMP 出力を追加して PUT で再送信できます。

課金