概要:ブライトコーブのライブ API
はじめに
ライブ APIは、ライブストリーミングイベントを作成および管理できる REST ベースの API です。オプション機能は次のとおりです。
- サーバーサイド広告挿入 ( SSAI )
- AES-128暗号化
- ライブストリームから取得したクリップからビデオオンデマンドアセットを作成する
- DVR機能
- 複数のCDN
ベース URL
ライブ API のベース URLは次のとおりです。
https://api.bcovlive.io
ヘッダー
すべてのリクエストは、アカウントのセットアップ時に提供される API キーを使用して認証されます。X-API-KEY
キーはヘッダーに渡されます。Content-Type
ヘッダーも必要です。
X-API-KEY : YOUR_APIKey
Content-Type: application/json
サポートされている AWS リージョン
次の AWS リージョンがサポートされています。
所在地 | AWS 名 | SSAI サポート |
---|---|---|
オレゴン | アメリカ西-2 | |
ヴァージニア | us-east-1 | |
東京 | ap-northeast-1 | |
シンガポール | ap-southeast-1 | |
シドニー | ap-southeast-2 | |
ムンバイ | ap-south-1 | |
フランクフルト | eu-central-1 | |
アイルランド | eu-west-1 |
SEP ジョブは、標準制限が 3 のアカウントによって制限されます。ただし、 us-west-2の制限が最大 10 です。すべての制限は、地域ごとではなく、アカウントによって設定されます。
サポートされている CDN
ライブストリーミングでは、次の CDN がサポートされています。
- アカマイ
- クラウドフロント
他のファイルベースの CDN は機能するはずですが、テストされておらず、アクティブにはサポートされていません。
チャンネルとイベント時間
Live には次の 2 つの購入オプションがあります。
- ストリーミング時間のイベント時間を購入する
- ストリーミングチャンネルの購入
また、イベントのストリーミング時間とチャンネルの両方を購入することもできます。オファリングの詳細については、担当のアカウントマネージャにお問い合わせください。
トークン認証
ブライトコーブでは、ライブ動画ストリームの再生 URL にトークン認証を追加するオプションを提供しています。トークン認証を追加する場合は、ブライトコーブのサポートにお問い合わせください。トークン認証がセットアップされるまでに最大 3 日かかる場合があります。
トークンのTTL(有効期間)は、1 時間から 365 日の任意の値に設定できます。TTL を設定する期間は、デプロイするライブストリームの種類によって異なります。ただし、TTL はアカウント全体の設定であり、すべてのライブストリームに適用されます。
DVR機能
ブライトコーブのライブストリームには DVR機能があります。この機能を使用するには、次のことが必要です。
playback_url_dvr
再生にURLを使う- 持っているプレーヤーを使用してくださいDVR容量
DVR 機能は 86,400 秒に制限されています。
DVRストリームは、ライブストリームが完了してから 7 日間引き続き利用できます。
エンドポイントとオペレーション
ライブ APIの主な操作は、ライブストリームの作成と管理と、ライブストリームから VOD クリップを生成することです。これらの操作は、ドキュメントの残りの部分で詳しく説明されている次のエンドポイントへの要求を介して実行されます。
ジョブの作成と管理
クリップを作成する
SSAIを管理する
ジョブの作成と管理
これらの操作では、ライブジョブを作成し、その詳細を取得し、停止することができます。また、広告休憩のキューポイントを作成するエンドポイントもあります。
ライブジョブの作成
POST https://api.bcovlive.io/v1/jobs
このエンドポイントは、POST
リクエストを介してライブストリームを作成するために使用されます。リクエストは、ライブストリーム自体のプロパティを指定するだけでなく、ライブストリームから生成する VOD クリップを指定することもできます(これは後でエンドポイント経由でも実行できます)。リクエスト本文に含めることができるフィールドの詳細は、 API リファレンスに記載されています。
入力プロトコル
Brightcove Liveは、複数の入力プロトコルをサポートしています。ジョブを作成するときに、protocol
リクエスト本文内のフィールドを使用して、使用するジョブを指定します。サポートされている値は、次のとおりです。
rtmp
(デフォルト)rtp
rtp-fec
srt
RTMP プロトコルは、FLV 形式でストリームを配信するためのプロトコルです。その他のプロトコルは、MPEG2-TS を配信するためのプロトコルです。
使用する場合rtp
、rtp-fec
またsrt
、も指定する必要がありますcidr_whitelist
(見るクラスレスドメイン間ルーティング)。
を使用する場合はrtmp
、ip_whitelist
代わりに入力にを指定できますが、これは必須ではありません。
RTP+FEC ジョブのリクエストボディの例:
{
"live_stream":true,
"region":"us-west-2",
"reconnect_time":300,
"outputs":[
{
"label": "hls720p",
"live_stream": true,
"height": 720,
"video_bitrate": 800,
"segment_seconds": 6,
"keyframe_interval": 90
}
],
"protocol": "rtp-fec",
"cidr_whitelist": ["127.0.0.1/32"]
}
ライブ APIクイックスタートでは、ライブストリームジョブの作成と Brightcove Playerのセットアップを順を追って説明します。
ライブジョブの一覧表示
GET https://api.bcovlive.io/v1/jobs
このエンドポイントは、GET
リクエストを介してライブストリームを一覧表示するために使用されます。エンドポイントは、ページネーション、ソート、検索フィルタリングをサポートしています。リクエスト本文に含めることができるフィールドの詳細は APIリファレンスに記載されており、その他の情報については「ライブジョブまたは VOD ジョブのリストを取得する」を参照してください。
ライブジョブの詳細を取得
GET https://api.bcovlive.io/v1/jobs/:jobId
このエンドポイントを使用すると、ライブストリームに関する詳細情報を取得できます。ライブストリームは、ジョブを最初に作成したときにも返されます。を参照してくださいAPIリファレンス応答フィールドの詳細については。
広告キューポイントの手動挿入
POST https://api.bcovlive.io/v1/jobs/:jobId/cuepoint
通常、エンコーダーは広告ブレイク用のキューポイントを送信しますが、このエンドポイントにリクエストを送信することで、すぐに広告ブレイクを作成することもできます。詳細については、 APIリファレンスを参照してください。
timecode
DD:HH:MM:SS
キューポイントにはフォーム内のaが必要であることに注意してください。
ライブジョブの停止
PUT https://api.bcovlive.io/v1/jobs/:jobId/cancel
このエンドポイントを使用して、ライブストリームを直ちに停止します。一度キャンセルすると、ライブストリームを再開できなくなります。詳細については、 APIリファレンスを参照してください。
クリップを作成する
ライブストリームからビデオオンデマンドクリップを作成し、Video Cloud アカウントに保存したり、S3 バケットまたは FTP アドレスに送信したりできます。ライブストリームの作成時にクリップを定義することも、後述するエンドポイントを使用して後で作成することもできます。『クリップの作成』マニュアルも参照してください。
VOD クリップの作成
POST https://api.bcovlive.io/v1/vods
クリップの開始点と終了点は、ストリームの開始点または UNIX タイムスタンプからのオフセットで定義できます。リクエスト本文のフィールドの詳細は、 API リファレンスに記載されています。
VOD(クリップ)ジョブのリストを取得する
クリップの VOD ジョブの一覧を取得するには、ライブジョブまたは VOD ジョブのリストの取得および API リファレンスを参照してください。
SSAIを管理する
サーバーサイド広告挿入(SSAI)を使用すると、ライブストリームに広告ブレークを好きなだけ挿入できます。また、スレートアセット(VOD クリップ)を取り込んで未使用の広告時間に、右バックメッセージや好きなものを埋め込むこともできます。
設定の詳細SSAIで見つけることができますBrightcoveを使用したサーバー側の広告挿入Live APIそしてそのAPIリファレンス。
アカウント広告設定の取得
GET https://api.bcovlive.io/v1/ssai/applications/:account_id
このエンドポイントでは、アカウントに設定されているすべての広告設定を取得できます。レスポンスフィールドの詳細は、 API リファレンスに記載されています。
広告設定の作成
POST https://api.bcovlive.io/v1/ssai/application
SSAI の広告の取得方法を定義する広告設定を作成します。リクエスト本文のフィールドの詳細は、 API リファレンスに記載されています。
広告設定の取得
GET https://api.bcovlive.io/v1/ssai/application/:application_id
このエンドポイントを使用して、作成した広告設定の詳細を取得します。レスポンスフィールドの詳細は、 API リファレンスに記載されています。
広告設定の更新
PUT https://api.bcovlive.io/v1/ssai/application/account/:application_id
広告設定の詳細を更新します。リクエスト本文のフィールドの詳細は、 API リファレンスに記載されています。
スレートメディアソースアセットを入手する
GET https://api.bcovlive.io/v1/ssai/slates/:ACCOUNT_ID
アカウントに対して定義されたスレートメディアアセットを取得します。スレートメディアアセットは、広告によって埋められない広告休憩時間を埋めるために使用されます。レスポンスフィールドの詳細は、 API リファレンスに記載されています。
スレートメディアソースアセットを取り込み
POST https://api.bcovlive.io/v1/ssai/slates
スラートのメディアアセットを追加して、広告休憩時間を埋めます。リクエスト本文のフィールドの詳細は、 API リファレンスに記載されています。
スレートメディアソースアセットを削除
DELETE https://api.bcovlive.io/v1/ssai/slates/:SLATE_MSA_ID
スレートメディアアセットを削除します。
静的エントリポイント
静的エントリポイント (SEP) 機能を使用すると、エントリポイント URL と再生 URL を静的に保ち、再利用可能な状態で、長時間実行されるライブジョブをアクティブ化および非アクティブ化できます。この機能により、お客様は施設または現場でエンコーダを設定し、ライブチャネルまたはプログラム用に独自のスケジューリングロジックを作成できます。詳細については、静的エントリポイントを参照してください。
キャプション
キャプションが h264 入力信号 (user_data パケットで正しくシグナル) 内にある場合、これらのキャプションは h264 出力に渡されます。
ブロードキャストElemental ライブエンコーダーを使用している場合は、SDI (EIA-608/CEA-608) またはその他のソース (SCTE-20、SCC、文字放送、DVB-Sub、付属、ARB、TTML、SCTE-27、STL、SRT、SMI) からキャプションを取得して、送信する h264 ストリームに入れることができます。他の放送グレードのエンコーダでも同じことができるかもしれませんが、正式にテストされていません。
ID3 時限メタデータの挿入
この情報は、ID3 時限メタデータの挿入に移動されました。
制限事項
-
API を使用して作成されたライブジョブが表示され、ライブモジュールで使用できないようにするには、
videocloud
ジョブの作成時にリクエスト本文にオブジェクトを含める必要があります。例:
{ "live_stream": true, "region": "eu-central-1", "reconnect_time": 1800, "live_sliding_window_duration_ms": 0, "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 event UI", "description": "live event UI", "long_description": "", "tags": [], "reference_id": "", "state": "ACTIVE" } } }
- エンコーダからの最初の接続は、ライブプレイリストを使用して作成される帯域幅情報を提供します。最初の接続が低い場合、ジョブ構成に高い出力があった場合でも、次の処理が行われるまで、プレイリストは同じ情報を再生リスト上で維持します。
- エンコーダが再起動される
- CDNキャッシュもクリアする必要があるかもしれません
- 現在、入力ストリームのフレームレートは 30 FPS に制限されています。より高いフレームレートの使用に興味がある場合は、サポートにお問い合わせください。
- デフォルトでは、入力ストリームの分解能は1080pに制限されています。
- 切断して再接続するときは、ストリーム設定は同じままにする必要があります。音声チャンネル数、解像度またはコーデック設定などを変更すると、予測できない動作の原因となります。
- Video Cloud ビデオのリモートソースに DASH と MP4 を追加できますが、Live は現在 HLSのみをサポートしています。
- 入力ストリームでは AAC オーディオのみがサポートされます。
- アクティブな待機中、開始されていないジョブはいつでも最大 5 つまで許可されます。
同時ジョブの追加制限:
channel
(24 時間 365 日) ジョブの数は、リージョンごとに 0 または少ない数に制限されます (アカウントの種類によって異なります)。event
同時に実行されるジョブの数は、リージョンによって制限され、通常は 100 になります。event
ジョブの同時接続待ちの数は 5 に制限されています。- リージョンごとの SEP ジョブ数は 3 または 10 に制限されています(「サポートされている AWS リージョン」を参照)。
これらの制限は、サポートがアカウントレベルで調整できます。追加の容量が必要な場合は、アカウントマネージャーにお問い合わせください。
stream_url
ライブジョブ用にとして返される「RTMP」アドレスは Akamai HD ライブストリームであり、レガシー FMS RTMP ストリームではありません。古いバージョンの Internet Explorer ではサポートされていません。- ライブストリームは HTTPS 経由で配信されます。ブライトコーブアカウントで HTTPS が有効になっていない場合、ブライトコーブプレーヤーはライブストリームの読み込みに失敗します。アカウントでオリジンサービスのHTTPSサポートが有効になっていない場合は、 Brightcoveサポートに連絡する再生の問題を防ぐために、オリジンサービングのHTTPSサポートを有効にします。
- マルチビットレートのHLS出力内でトランスマクスレンディションを使用する場合、
segment_size
トランスマルチクシング時に含めることができるが、その倍数になるように設定する必要があるGOP
入力ストリームのサイズ。したがって、60 フレームごとにキーフレームを使用する入力が 30 fps の場合、GOP
サイズは 2 秒で、セグメントサイズは 2 の倍数になります。これを行わないと、ストリームセグメントのサイズは変化します。また、
keyframe_interval
どの出力にも指定しないでください。 - 独自の FTP または S3 オリジンロケーションを使用する場合は、オリジンロケーションにフォールバックするように CDN を設定する必要があります。Brightcove Live システムは、ジョブリクエストで指定された CDN のオリジンロケーションを検証しません。