入門
NS ライブAPIは、ライブストリーミングイベントを作成および管理できるRESTベースのAPIです。オプション機能は次のとおりです。
- サーバー側の広告挿入( SSAI)
- AES-128暗号化
- ライブストリームから取得したクリップからビデオオンデマンドアセットを作成する
- DVR容量
- 多数CDN
「 API リファレンス」も参照してください。
ベース URL
のベースURL ライブAPIは:
https://api.bcovlive.io
ヘッダー
すべてのリクエストは、アカウントのセットアップ時に提供される API キーを使用して認証されます。X-API-KEY
キーはヘッダーで渡されます。Content-Type
ヘッダーも必要です。
X-API-KEY : YOUR_APIKey
Content-Type: application/json
サポートされている AWS リージョン
次の AWS リージョンがサポートされています。
場所 | AWS 名 | SSAI サポート |
---|---|---|
オレゴン | us-west-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 がサポートされています。
- アカマイ
- Cloudfront
他のファイルベースの CDN は機能するはずですが、テストされておらず、アクティブにはサポートされていません。
チャンネルとイベント時間
ライブ購入には、次の 2 つのオプションがあります。
- ストリーミング時間のイベント時間を購入する
- ストリーミングチャンネルの購入
また、イベントのストリーミング時間とチャンネルの両方を購入することもできます。オファリングの詳細については、担当のアカウントマネージャにお問い合わせください。
トークン認証
Brightcoveでは、ライブ動画ストリームの再生 URL にトークン認証を追加するオプションを提供しています。トークン認証を追加する場合は、Brightcoveサポートにお問い合わせください。トークン認証の設定には、最大 3 日かかる場合があります。
トークンの TTL (存続可能時間) は、1 時間から 365 日の任意の値に設定できます。TTL を設定する期間は、デプロイするライブストリームの種類によって異なります。ただし、TTL はアカウント全体の設定であり、すべてのライブストリームに適用されます。
DVR容量
ブライトコーブのライブストリームにはDVR容量。この機能を使用するには、次のことが必要です。
- 再生に
playback_url_dvr
URL を使用する - 持っているプレーヤーを使用してくださいDVR容量
DVR 機能は 86,400 秒に制限されています。
NS DVRストリームは、ライブストリームが完了してから7日間利用できます。
エンドポイントとオペレーション
の主な操作ライブAPIライブストリームを作成および管理し、ライブストリームからVODクリップを生成しています。これらの操作は、ドキュメントの残りの部分で詳しく説明されている次のエンドポイントへの要求を介して実行されます。
ジョブの作成と管理
クリップを作成する
SSAIの管理
ジョブの作成と管理
これらの操作では、ライブジョブを作成し、その詳細を取得し、停止することができます。また、広告休憩のキューポイントを作成するエンドポイントもあります。
ライブジョブの作成
POST https://api.bcovlive.io/v1/jobs
このエンドポイントは、POST
リクエストを介してライブストリームを作成するために使用されます。リクエストは、ライブストリーム自体のプロパティを指定するだけでなく、ライブストリームから生成する VOD クリップを指定することもできます(これは後でエンドポイント経由でも実行できます)。リクエスト本文に含めることができるフィールドの詳細は、 API リファレンスに記載されています。
入力プロトコル
Brightcoveライブは、複数の入力プロトコルをサポートしています。ジョブを作成するときに、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"]
}
NS ライブAPIクイックスタートライブストリームジョブの作成と、それを再生するためのBrightcoveプレーヤーの設定について説明します。
ライブジョブの一覧表示
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
、フォームの「」が必要です。
ライブジョブの停止
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を使用したサーバー側の広告挿入ライブ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
(24x7)ジョブの数は、リージョンごとに0または低い数に制限されます(アカウントの種類によって異なります)。- 同時に「実行中」
event
ジョブの数は、地域によって制限されており、通常は100に制限されています。 event
同時に接続するジョブの数は5に制限されています 。- リージョンごとの SEP ジョブ数は 3 または 10 に制限されています(「サポートされている AWS リージョン」を参照)。
これらの制限は、サポートがアカウントレベルで調整できます。追加の容量が必要な場合は、アカウントマネージャーにお問い合わせください。
stream_url
ライブジョブ用にとして返される「RTMP」アドレスは Akamai HD ライブストリームであり、レガシー FMS RTMP ストリームではありません。Internet Explorer の古いバージョンではサポートされていません。- ライブストリームは HTTPS 経由で配信されます。Brightcoveアカウントで HTTPS が有効になっていない場合、Brightcoveプレーヤーはライブストリームの読み込みに失敗します。アカウントでオリジンサービスの HTTPS サポートが有効になっていない場合は、Brightcoveサポートに連絡して、オリジンサービスの HTTPS サポートを有効にして、再生の問題を回避してください。
- マルチビットレート HLS 出力内で変換されたレンディションを使用する場合、
segment_size
変換時にを含めることができますが、GOP
入力ストリームのサイズの倍数になるように設定する必要があります。したがって、入力が 30 fps で 60 フレームごとにキーフレームが設定されている場合、GOP
サイズは 2 秒で、セグメントサイズは 2 の倍数にする必要があります。これを行わないと、ストリームセグメントのサイズは変化します。また、
keyframe_interval
はどの出力にも指定しないでください。 - 独自の FTP または S3 オリジンロケーションを使用する場合は、オリジンロケーションにフォールバックするように CDN を設定する必要があります。Brightcove Live システムは、ジョブリクエストで指定された CDN のオリジンロケーションを検証しません。