「クイックスタート:Brightcoveのライブ API を使用してライブストリームを作成する
必要なもの
このチュートリアルを完了するには、次のものが必要です。
- ライブ API 用にセットアップされたアカウント
- ライブ API の API キー (アカウントの設定時に提供されます)
- Video Cloud アカウント(ライブストリームジョブの作成には必要ありませんが、Brightcove Player での再生の設定には必要)
- CMS APIを使用して Studio ではなく Video Cloud ビデオを作成する場合は、ビデオ/読み取りおよびビデオ/書き込み権限を持つクライアント認証情報が必要です。クライアント認証情報の取得プロセスに慣れていない場合は、以下の認証セクション。
- cURLまたは Insomniaや Postman などの REST クライアントを介して REST API リクエストを行う機能。
お手伝いするために、エクササイズに使用できる不眠症と郵便配達の輸入品を用意しました(ブライトコーブラーニングサービスでは、不眠症を好み、使用していますが、それがあれば郵便配達も機能します)。
各zipファイルには、あなたを助けるためのreadmeページがあります。
- 実際のライブストリームを作成するには、ライブストリーミング用のソフトウェアまたはハードウェアエンコーダが必要です。以下の手順には、Wirecast(トライアルにサインアップ)を使用してライブ配信を設定する手順が含まれます。別のエンコーダを使用している場合、プロセスは異なりますが、Live API レスポンスから必要な情報の点で類似している必要があります。
CMS API の認証情報を取得する
ライブジョブの作成
まず、ライブジョブを作成します。
- このステップでは、
POST
リクエストを以下に送信します。https://api.bcovlive.io/v1/jobs
リクエスト本文として以下を使用します。
{ "live_stream": 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 } ] }
- Insomniaや Postman などの REST クライアントを使用している場合は、リクエストに次のヘッダーを追加する必要があります。
キー [値] X-API-KEY API キー コンテンツタイプ アプリケーション/json 上記の手順 1 で示したリクエスト本文を使用し、必ず POST メソッドを使用してリクエストを送信してください。
- API からの応答は、次のようになります。
{ "id": "15981d93877e490185e6ebc9af2c79a3", "outputs": [ { "id": "0-15981d93877e490185e6ebc9af2c79a3", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist_dvr.m3u8", "playback_url_vod": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist_vod.m3u8", "label": "hls720p" }, { "id": "1-15981d93877e490185e6ebc9af2c79a3", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist_dvr.m3u8", "playback_url_vod": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist_vod.m3u8", "label": "hls540p" }, { "id": "2-15981d93877e490185e6ebc9af2c79a3", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist_dvr.m3u8", "playback_url_vod": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist_vod.m3u8", "label": "hls360p" }, { "id": "3-15981d93877e490185e6ebc9af2c79a3", "playlist_type": "defaultS3", "type": "playlist", "filename": "playlist.m3u8", "dvr_filename": "playlist_dvr.m3u8", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist_dvr.m3u8", "ssai_playback_urls": { "685b239f582c42fca49da33be4f2328e": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Ads - a95ac581551b4478b27910e5675db1f8", "type": "ads" }, "c96e2d00d6744c65a3eddb15425e4a51": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Counter - a95ac581551b4478b27910e5675db1f8", "type": "counter" } } } ], "stream_url": "rtmp://ep1-apse2.bcovlive.io:1935/15981d93877e490185e6ebc9af2c79a3", "stream_name": "alive", "encryption": {}, "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist_dvr.m3u8", "ssai_playback_urls": { "685b239f582c42fca49da33be4f2328e": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Ads - a95ac581551b4478b27910e5675db1f8", "type": "ads" }, "c96e2d00d6744c65a3eddb15425e4a51": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Counter - a95ac581551b4478b27910e5675db1f8", "type": "counter" } } }
- 私たちの目的のために、応答の重要なフィールドは次のとおりです。
- stream_url (51 行目)
- ストリーム名 (52 行目)
- playback_url (54行目)
以下の手順では、ユーザー独自の応答から、これらのフィールドの値が必要になります。
Video Cloud ビデオを設定する
ライブストリーム情報を入手したので、Video Cloud にリモート動画を設定し、Brightcove Player で再生できるようにします。
Insomnia または Postman を使用している場合は、クライアントの資格情報を使用して OAuth2 認証を設定する必要があります。ヘルプが必要な場合は、次のいずれかのガイドを参照してください。
-
まず、
POST
以下をリクエストして、新しい動画を作成する必要があります。https://cms.api.brightcove.com/v1/accounts/account_id/videos
-
リクエストの本文には、いくつかのメタデータを含めることができます(を参照) APIリファレンス詳細については)が、必要なのは
name
:{ "name": "some name for your live stream" }
-
応答にはすべてのビデオメタデータが含まれますが
id
、重要なフィールドはです。リモートアセットを追加する必要があります。 -
HLS ストリームを追加するには、
POST
次のリクエストを別のリクエストします。https://cms.api.brightcove.com/v1/accounts/account_id/videos/video_id/assets/hls_manifest
-
今回は、リクエスト本文は次のようになります。
{ "remote_url": "playback_url for your live stream" }
プレーヤーにビデオを追加する
今度は、単純なHTMLページを作成し、作成したばかりのビデオでそれにプレーヤーを追加します。
- ライブストリームプレーヤーをテストするための単純な HTML ページを作成します。あなたが好きな他のコンテンツを含めることもできますし、まったく含まないこともできます。
- Studio Media モジュールで、前の手順で作成したビデオを選択し、[ パブリッシュと埋め込み] > [Web Player] をクリックします。
- [パブリッシュ] ダイアログで、プレーヤーを選択します (Brightcove のデフォルトプレーヤーは問題ありません)。
- 下にスクロールし、必要に応じてプレーヤーのサイズを設定し、コードブロックをクリックして標準プレーヤーコードを選択します。このコードをコピーして、htmlページの本文に貼り付けます。
- HTML ページをリモートまたはローカルの Web サーバに保存して、参照できるようにします。
- Web ブラウザでページを開きます。蒸しを開始していないので、メディアエラーが表示されます。
cURL コマンド
このセクションでは、Insomnia や Postman などの REST クライアントを使用しないユーザー向けの代替の cURL コマンドを提供します。
ライブジョブを作成するためのcURL
## Create Job - Simple
curl -X "POST" "https://api.bcovlive.io/v1/jobs" \
-H "X-API-KEY: YOUR_API_KEY_HERE" \
-H "Content-Type: application/json" \
-d $'{
"outputs": [
{
"height": 720,
"video_bitrate": 2100,
"segment_seconds": 4,
"keyframe_interval": 60,
"width": 1280,
"video_codec": "h264",
"label": "hls720p",
"h264_profile": "high",
"live_stream": true
},
{
"height": 540,
"video_bitrate": 1500,
"segment_seconds": 4,
"keyframe_interval": 60,
"width": 960,
"video_codec": "h264",
"label": "hls540p",
"h264_profile": "main",
"live_stream": true
},
{
"height": 360,
"video_bitrate": 800,
"segment_seconds": 4,
"keyframe_interval": 60,
"width": 640,
"video_codec": "h264",
"label": "hls360p",
"h264_profile": "main",
"live_stream": true
}
],
"region": "us-west-2",
"reconnect_time": 1800,
"live_stream": true
}'
このコードをテキストエディタにコピーし、独自の API YOUR_API_KEY_HERE
キーに置き換えます。次に、コードをコマンドラインにコピーして貼り付けて実行します。
Studio を使用してビデオを作成する
Studio でビデオを作成する別の手順を次に示します。
- ビデオクラウドスタジオにログインします。
- メディアモジュールに移動します。
- 左側のオプションで、[ リモートビデオを追加] をクリックします。
- [ リモートビデオの追加 ] ダイアログで、ビデオ名を追加し、Live API レスポンスの値をコピーして [URL] フィールドに貼り付けます。
playback_url
次に、[ レンディションを追加] をクリックし、[ 保存] をクリックします。
Wirecast を使用してイベントをストリーミングする
このセクションでは、ライブストリーミングイベントをサポートするために、Telestream Wirecast エンコーダを設定および使用します。Telestream Wirecast ソフトウェアは、カメラからの入力をキャプチャし、CDN によって配信できるストリームを生成するデスクトップアプリケーションです。ライブストリーミングイベントの配信に適したハードウェアやその他のソフトウェアベースのエンコーディングソリューションもあります。Telestream のウェブサイトから Wirecast ソフトウェアの試用版をダウンロードできます。
注:先に進む前に、Wirecast ソフトウェアをインストールし、カメラをコンピュータに接続しておく必要があります。
ライブイベントの Wirecast を構成するには、次の手順を実行します。
- Wirecastを開きます。
- + にカーソルを合わせ、 [ デバイスのキャプチャ] をクリックし、カメラを選択します。
- 矢印ボタンをクリックします( )カメラショットをライブショットにする。
- [ ストリーム ] ボタン ( )。出力設定を構成するように求められます。
- [ 送信先]を [ RTMP サーバー] に設定します。「OK」をクリックします。
- アドレスには、ライブ API から返された stream_url を使用します(ステップ 3)。
- ストリームの場合は、生きているを使用してください。
- (オプション)追加の出力ストリームを作成するには、[ 追加...] をクリックします。追加の出力ストリームを作成する場合、出力ビットレートを制御するために、独自のカスタムエンコーディングプロファイルを作成したい場合があります。ストリーム名に新しいビットレートが反映されていることを確認してください。
- [OK]をクリックし、出力設定を保存します。
- [ ストリーム ] ボタン ( )。ライブストリームが始まるはずです。
結論
これで、ライブストリーミングセッションを作成する準備ができました。エンコーダ設定に以下を追加する必要があります。
stream_url
:stream_url
ジョブから追加 (rtmp
住所)stream_name
: ストリーム名はalive
ライブストリームを開始すると、前の手順で作成した Brightcove プレーヤーにライブストリームが表示されます。