サポートに連絡する| システムステータス
ページコンテンツ

    ライブSSAIのプレーヤー拡張機能の実装

    このトピックでは、Live SSAI のプレーヤー機能強化を利用してユーザーエクスペリエンスを向上させるサーバーサイド広告でライブストリームを作成する方法を学習します。

    はじめに

    ライブSSAI でのブライトコーブのプレーヤー機能強化では、広告数、広告カウントダウンタイマー、クリックスルー広告、コンパニオン広告など、ライブストリームの広告ブレイクを向上させることができます。

    広告情報は、VAST レスポンスを取得し、表示する広告を識別する広告構成を使用して指定します。VAST ファイルには、コンパニオン広告とビーコン URL に関する情報も含まれています。

    ワークフロー

    SSAI とプレーヤーの機能強化でライブストリームを作成するには、次の手順に従います。

    1. アカウントマネージャーに、ライブストリーム、サーバーサイド広告挿入 (SSAI)、およびライブ SSAI のプレーヤー機能強化を有効にするようアカウント管理者に依頼してください。
    2. 広告設定を作成する
    3. オプション:スレートアセットを作成して未使用の広告時間を埋める
    4. ライブジョブを作成する
    5. プレイバックトークンを作成する
    6. プレイヤーを構成する
    7. ストリーミングを開始する
    8. キューポイントを使用して広告をトリガーします(これはライブイベントの前または中に実行できます)
    9. クリーンアップ

    広告設定を作成する

    広告設定では、サーバーサイド広告をライブストリームに含めるために必要な情報を定義します。これには、広告プロバイダーの URL、予想される広告レスポンスタイプ、ビーコンを送信するかどうかが含まれます。

    新しい広告構成を作成するには、POST次のようにリクエストを送信します。

    方法 POST
    URL https://api.bcovlive.io/v1/ssai/applications
    ヘッダー X-API-KEY: your API KEY
    コンテンツタイプ:アプリケーション/json

    すべてのリクエストは、アカウントのセットアップ時に提供される API キーを使用して認証されます。X-API-KEYキーはヘッダーに渡されます。

    リクエスト本文

    リクエスト本文フィールドの詳細については、 Live APIリファレンスのドキュメントを参照してください。

    Live SSAI のプレーヤーの拡張機能を使用すると、application_ad_configurationハイライト表示されたフィールドをオブジェクト内に設定できます。

    リクエスト本文の例:

    {
      "application_ad_configuration": {
    	"ad_configuration_description": "your ad config description",
        "ad_configuration_expected_response_type": "Vast",
    	"ad_configuration_headers_for_impressions": false,
    	"ad_configuration_strategy": "SingleAdResponse",
    	"ad_configuration_transforms": [],
    	"ad_configuration_url_format": "your ad server",
        "ad_configuration_client_sdk_enabled": true,
        "client_options": {
          "show_ad_break_remaining_time": true / false,
          "show_ad_remaining_time": true / false,
          "show_number_of_remaining_ads": true / false,
          "client_only_tracking": true / false
        }
      },
      "application_description": "your application description"
    }

    Live SSAI でのプレーヤーの機能強化に関連する広告設定フィールドは次のとおりです。

    フィールド タイプ 必須 説明
    ad_configuration_expected_response_type ストリング はい この機能では、広告構成の値はである必要があります。Vast
    ad_configuration_client_sdk_enabled ブール値 はい この機能を有効にするには、このフィールドの値がtrue
    client_options オブジェクト プレイヤーエンハンスメントに関連するフィールドのオブジェクト
    client_options.
    show_ad_break_remaining_time
    ブール値 広告休憩の残り時間を表示する
    値: true / false
    client_options.
    show_ad_remaining_time
    ブール値 広告の残り時間を表示する
    値: true / false
    client_options.
    show_number_of_remaining_ads
    ブール値 広告休憩に残っている広告の数を表示する
    値: true / false
    client_options.
    client_only_tracking
    ブール値 サーバー側の追跡イベント(インプレッション/四分位数)を無効にする
    値: true / false
    デフォルト: false


    応答

    レスポンスの例:

    {
      "application": {
        "application_description": "Test ad configuration",
        "application_ad_configuration": {
        "ad_configuration_description": "Ad config description",
        "ad_configuration_expected_response_type": "Vast",
        "ad_configuration_strategy": "SingleAdResponse",
        "ad_configuration_transforms": [],
        "ad_configuration_url_format": "https://solutions.brightcove.com/bcls/ads/simple-vast.xml",
        "ad_configuration_headers_for_impressions": false,
        "ad_configuration_client_sdk_enabled": true,
        "client_options": {
          "show_ad_break_remaining_time": true,
          "show_ad_remaining_time": true,
          "show_number_of_remaining_ads": true,
          "client_only_tracking": true
        }
        },
        "application_id": "1234567890abcdefghijkl",
        "application_type": "ads",
        "account_id": "001122334455aabbccddee"
      },
      "action": "inserted"
    }

    広告構成を正常に作成したら、生成されたapplication_id(広告構成 ID)をコピーします。これは、後でSSAI再生 URL を見つけるために必要です。

    広告構成の一覧表示、更新、削除については、「広告設定の管理」ドキュメントを参照してください。

    ライブジョブを作成する

    ライブジョブを作成するには、POST次のようにリクエストを送信します。

    方法 POST
    URL https://api.bcovlive.io/v1/jobs
    ヘッダー X-API-KEY: your API KEY
    コンテンツタイプ:アプリケーション/json

    リクエスト本文

    リクエスト本文フィールドの詳細については、 Live APIリファレンスのドキュメントを参照してください。

    SSAI が有効なライブジョブの場合は、HTTP リクエスト本文に設定しますad_insertion: true

    サンプルリクエスト(Video Cloud 動画)

    ライブストリームに使用する Video Cloud ビデオを作成し、ライブストリームから VOD クリップを作成するには、videocloudオブジェクトをリクエスト本文に含めます。詳細については、ライブ API を参照してください。VODクリップドキュメントを作成する。

    以下の強調表示されたフィールドは、サーバーサイド広告挿入(SSAI)に必要です。

    {
      "live_stream": true,
      "ad_insertion": true,
      "region": "us-west-2",
      "reconnect_time": 1800,
      "outputs": [{
          "label": "hls720p",
          "live_stream": true,
          "width": 1280,
          "height": 720,
          "video_codec": "h264",
          "h264_profile": "high",
          "video_bitrate": 2100,
          "segment_seconds": 4,
          "keyframe_interval": 60
        },
        {
          "label": "hls540p",
          "live_stream": true,
          "width": 960,
          "height": 540,
          "video_codec": "h264",
          "h264_profile": "main",
          "video_bitrate": 1500,
          "segment_seconds": 4,
          "keyframe_interval": 60
        },
        {
          "label": "hls360p",
          "live_stream": true,
          "width": 640,
          "height": 360,
          "video_codec": "h264",
          "h264_profile": "main",
          "video_bitrate": 800,
          "segment_seconds": 4,
          "keyframe_interval": 60
        }
      ],
      "videocloud": {
        "video": {
          "name": "Live SSAI VideoCloud Asset",
          "description": "",
          "long_description": "",
          "tags": [],
          "reference_id": "live_ssai_vc_asset",
          "link": {
          "url": "",
          "text": ""
        },
        "schedule": {
          "starts_at": null,
          "ends_at": null
        },
        "custom_fields": {}
        }
      }
    }

    サンプルリクエスト(リモートビデオ)

    ライブストリームでリモートビデオを使用するには、リクエスト本文がこれに似ているはずです。

    以下の強調表示されたフィールドは、サーバーサイド広告挿入(SSAI)に必要です。

    {
      "live_stream":true,
      "ad_insertion":true,
      "region":"us-west-2",
      "reconnect_time":1800,
      "outputs":[
        {
          "label": "hls720p",
          "live_stream": true,
          "width": 1280,
          "height": 720,
          "video_codec": "h264",
          "h264_profile": "high",
          "video_bitrate": 2100,
          "segment_seconds": 4,
          "keyframe_interval": 60
        },
        {
          "label": "hls540p",
          "live_stream": true,
          "width": 960,
          "height": 540,
          "video_codec": "h264",
          "h264_profile": "main",
          "video_bitrate": 1500,
          "segment_seconds": 4,
          "keyframe_interval": 60
        },
        {
          "label": "hls360p",
          "live_stream": true,
          "width": 640,
          "height": 360,
          "video_codec": "h264",
          "h264_profile": "main",
          "video_bitrate": 800,
          "segment_seconds": 4,
          "keyframe_interval": 60
        }
      ]
    }

    その他の役立つリソース:

    応答

    レスポンスの例(ビデオクラウド動画)
    {
     "id": "227356abcdefghijklmno12345",
     "outputs": [
      {
       "id": "0-2273561a201ec18",
       "playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_0/chunklist.m3u8",
       "playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_0/chunklist_dvr.m3u8",
       "playback_url_vod": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_0/chunklist_vod.m3u8",
       "playback_added_cdns": [],
       "label": "hls720p"
      },
      {
       "id": "1-2273561a201e8c18",
       "playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_1/chunklist.m3u8",
       "playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_1/chunklist_dvr.m3u8",
       "playback_url_vod": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_1/chunklist_vod.m3u8",
       "playback_added_cdns": [],
       "label": "hls540p"
      },
      {
       "id": "2-2273561a201ec18",
       "playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_2/chunklist.m3u8",
       "playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_2/chunklist_dvr.m3u8",
       "playback_url_vod": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_2/chunklist_vod.m3u8",
       "playback_added_cdns": [],
       "label": "hls360p"
      },
      {
       "id": "3-2273561a201ec18",
       "playlist_type": "defaultS3",
       "type": "playlist",
       "filename": "playlist.m3u8",
       "dvr_filename": "playlist_dvr.m3u8",
       "playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/playlist.m3u8",
       "playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/playlist_dvr.m3u8",
       "ssai_playback_urls": {
        "b907ac7935e2": {
         "playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/b907ac7935e2/playlist_ssaiM.m3u8",
         "playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/b907ac7935e2/playlist_dvr_ssaiM.m3u8",
         "playback_added_cdns": [],
         "description": "Test ad configuration for SLS",
         "type": "ads"
        },
        "dc9aa8ee3520f2": {
         "playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/dc9aa8ee3520f2/playlist_ssaiM.m3u8",
         "playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/dc9aa8ee3520f2/playlist_dvr_ssaiM.m3u8",
         "playback_added_cdns": [],
         "description": "Test live ad config for SLS",
         "type": "ads"
        }
       },
       "playback_added_cdns": []
      }
     ],
     "stream_url": "rtmp://ec2-54-184-149-60.us-west-2.compute.amazonaws.com:1935/2273561a201ec18",
     "stream_name": "alive",
     "static": false,
     "job_videocloud_asset_id": "6227380655001",
     "encryption": {},
     "playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/playlist.m3u8",
     "playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/playlist_dvr.m3u8",
     "ssai_playback_urls": {
      "b907ac7935e2": {
       "playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/b907ac7935e2/playlist_ssaiM.m3u8",
       "playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/b907ac7935e2/playlist_dvr_ssaiM.m3u8",
       "playback_added_cdns": [],
       "description": "Test ad configuration for SLS",
       "type": "ads"
      },
      "dc9aa8ee3520f2": {
       "playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/dc9aa8ee3520f2/playlist_ssaiM.m3u8",
       "playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/dc9aa8ee3520f2/playlist_dvr_ssaiM.m3u8",
       "playback_added_cdns": [],
       "description": "Test live ad config for SLS",
       "type": "ads"
      }
     },
     "playback_added_cdns": []
    }

    サンプル応答(リモートビデオ)
    {
     "id": "bbccddeeffgghhiijjkk0011223344",
     "outputs": [
      {
       "id": "0-bbccddeeffgghhiijjkk0011223344",
       "playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_0/chunklist.m3u8",
       "playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_0/chunklist_dvr.m3u8",
       "playback_url_vod": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_0/chunklist_vod.m3u8",
       "playback_added_cdns": [],
       "label": "hls720p"
      },
      {
       "id": "1-bbccddeeffgghhiijjkk0011223344",
       "playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_1/chunklist.m3u8",
       "playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_1/chunklist_dvr.m3u8",
       "playback_url_vod": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_1/chunklist_vod.m3u8",
       "playback_added_cdns": [],
       "label": "hls540p"
      },
      {
       "id": "2-bbccddeeffgghhiijjkk0011223344",
       "playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_2/chunklist.m3u8",
       "playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_2/chunklist_dvr.m3u8",
       "playback_url_vod": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_2/chunklist_vod.m3u8",
       "playback_added_cdns": [],
       "label": "hls360p"
      },
      {
       "id": "3-bbccddeeffgghhiijjkk0011223344",
       "playlist_type": "defaultS3",
       "type": "playlist",
       "filename": "playlist.m3u8",
       "dvr_filename": "playlist_dvr.m3u8",
       "playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/playlist.m3u8",
       "playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/playlist_dvr.m3u8",
       "ssai_playback_urls": {
        "91bc2d5ff4a4441db34c2457c751c3ca": {
         "playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/91bc2d5ff4a4441db34c2457c751c3ca/playlist_ssaiM.m3u8",
         "playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/91bc2d5ff4a4441db34c2457c751c3ca/playlist_dvr_ssaiM.m3u8",
         "playback_added_cdns": [],
         "description": "Test ad configuration",
         "type": "ads"
        },
        "e7f6e9a3022a45e1b0b322ba57399150": {
         "playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/e7f6e9a3022a45e1b0b322ba57399150/playlist_ssaiM.m3u8",
         "playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/e7f6e9a3022a45e1b0b322ba57399150/playlist_dvr_ssaiM.m3u8",
         "playback_added_cdns": [],
         "description": "House Ads - 0077db20eb444b5daa7487438c90a271",
         "type": "ads"
        }
       }
      }
     ],
     "stream_url": "rtmp://ep4-usw2.bcovlive.io:1935/bbccddeeffgghhiijjkk0011223344",
     "stream_name": "alive",
     "static": false,
     "encryption": {},
     "playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/playlist.m3u8",
     "playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/playlist_dvr.m3u8",
     "ssai_playback_urls": {
      "91bc2d5ff4a4441db34c2457c751c3ca": {
       "playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/91bc2d5ff4a4441db34c2457c751c3ca/playlist_ssaiM.m3u8",
       "playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/91bc2d5ff4a4441db34c2457c751c3ca/playlist_dvr_ssaiM.m3u8",
       "playback_added_cdns": [],
       "description": "Test ad configuration",
       "type": "ads"
      }
     }
    }

    API応答から、次のステップのために次のフィールド値をメモします。

    • id -あなたのライブジョブ ID
    • stream_url , stream_name -ライブストリームエンコーダの入力
    • job_videocloud_asset_id -ビデオクラウドビデオ ID

    再生トークンを作成する

    プレーヤーと一緒に再生トークンが必要になります。

    再生トークンを作成するには、POST次のようにリクエストを送信します。

    方法 POST
    URL https://api.bcovlive.io/v1/jobs/your live job id/playback-token
    ヘッダー X-API-KEY: your API KEY
    コンテンツタイプ:アプリケーション/json

    リクエスト本文

    リクエスト本文の例:

    {
       "dvr":true / false,
       "application_id":"your ad config id"
    }

    応答

    レスポンスの例:

    {
     "playback_token": "live.JhQabcdefghijkl000000000abcdefghi"
    }

    レスポンス本文には、生成された再生トークンが含まれます。プレーヤーで Playback API 呼び出しを行うときに使用します。

    プレーヤーを設定する

    再生 API からライブストリームを再生するプロセスは、通常の Video Cloud ビデオの再生方法とは少し異なります。動画 ID(参照 ID)だけでなく、使用する広告設定を識別する再生トークンを含める必要があります。また、DVR 再生を行うかどうかも指定する必要があります。

    ウェブプレーヤー

    Brightcove Player の設定の詳細については、『Brightcove Player での Live SSAI でのプレーヤーの拡張の使用』ドキュメントを参照してください。

    ネイティブAndroidプレーヤー

    Android 用ネイティブ Player の設定の詳細については、ネイティブ SDK での Live SSAI でのプレーヤーの拡張機能の使用」を参照してください。

    ネイティブ iOS プレーヤー

    iOS 用ネイティブ Player の設定の詳細については、ネイティブ SDK での Live SSAI でのプレーヤーの拡張機能の使用」を参照してください。

    ストリーミングを開始

    ライブストリーミングイベントを作成するツールはたくさんあります。CDN によって配信されるライブストリームを生成するために使用できるエンコーダーを次に示します。

    クリーンアップ

    ライブ配信が完了したら、ストリームのアーティファクトを次のようにクリーンアップできます。

    1. ストリーミングエンコーダを停止する
    2. ライブジョブをキャンセルします。

      ライブジョブをキャンセルするには、PUT次のようにリクエストを送信します。

      方法 PUT
      URL https://api.bcovlive.io/v1/jobs/your live job id/cancel
      ヘッダー X-API-KEY: your API KEY
      コンテンツタイプ:アプリケーション/json

      詳細については、『 Live API リファレンス』ドキュメントを参照してください。

    3. 広告設定を削除する

      広告構成を削除するには、DELETE次のようにリクエストを送信します。

      方法 PUT
      URL https://api.bcovlive.io/v1/ssai/applications/application/your ad config id
      ヘッダー X-API-KEY: your API KEY
      コンテンツタイプ:アプリケーション/json

      詳細については、『 Live API リファレンス』ドキュメントを参照してください。


    ページの最終更新日05 Oct 2021