Live Input が配信の受信を始めると、入力の mode が automatic の場合、新しい動画が自動で作成されます。
視聴するには、Stream 組み込みの Player を使うか、HLS / DASH マニフェストを使ったカスタムプレーヤーを使います。
Stream Player を使う場合も、マニフェスト付きのカスタムプレーヤーを使う場合も、Live Input ID または特定の Video ID を参照できます。主な違いは、配信が終了したあとの動きです。
プレーヤーに、配信中ならその配信を常に表示し、入力がアイドルなら 「Stream has not started」 メッセージを出したい場合は、Live Input ID を使います。クリエイター、チャンネル、定期番組向けのページに向いています。Live Input ID は入力作成時に払い出され、変わりません。
1 回の配信、または終了後の録画だけを表示したい場合は、Video ID を使います。単発イベント、特定の回、特定の日付向けのページに向いています。配信が 開始するたび に 新しい Video ID が生成されます。
後述の DVR モードを使う場合は、追加の考慮点があります。
Stream の URL は、生成しやすいようにテンプレート化されています。
Stream 組み込み Player の URL 形式:
https://customer-<CODE>.cloudflarestream.com/<INPUT_ID|VIDEO_ID>/iframe埋め込みコード一式は、ダッシュボードまたは API で生成できます。
HLS マニフェストの URL 形式:
https://customer-<CODE>.cloudflarestream.com/<INPUT_ID|VIDEO_ID>/manifest/video.m3u8埋め込みコードやマニフェスト URL は、ダッシュボードまたは API からも取得できます。
Stream 組み込みプレーヤーの埋め込みコード、またはカスタムプレーヤー向けの HLS マニフェスト URL を取得するには、次の手順を実行します。
-
Cloudflare ダッシュボードで Live inputs ページを開きます。
Live inputs を開く ↗ -
一覧からライブ入力を選びます。
-
動画の下にある Embed と HLS Manifest URL を確認します。
-
使う方を決め、その下の Click to copy を選びます。
ダッシュボードで取得した埋め込みコードまたはマニフェスト URL は、Live Input ID を参照します。
プレーヤーコードまたはマニフェスト URL を API で取得するには、Live Input に紐づく動画一覧を取得します。
curl -X GET \
-H "Authorization: Bearer <API_TOKEN>" \
https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/live_inputs/<LIVE_INPUT_UID>/videos1 つのライブ入力には、配信ごとに複数の動画が紐づきます。配信中なら、レスポンスの先頭の動画のステータスは live-inprogress です。それ以外の動画は、オンデマンド再生できる録画です。
配信中の動画を含め、レスポンス内の各動画には HLS / DASH の URL と Stream Player へのリンクがあります。主なプロパティは次のとおりです。
preview-- Stream Player で視聴するリンクplayback.hls-- HLS マニフェストplayback.dash-- DASH マニフェスト
次の例では、ライブ配信中の動画の state は live-inprogress、以前に録画した動画の state は ready です。
{
"result": [
{
"uid": "6b9e68b07dfee8cc2d116e4c51d6a957",
"thumbnail": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/thumbnails/thumbnail.jpg",
"status": {
"state": "live-inprogress",
"errorReasonCode": "",
"errorReasonText": ""
},
"meta": {
"name": "Stream Live Test 23 Sep 21 05:44 UTC"
},
"created": "2021-09-23T05:44:30.453838Z",
"modified": "2021-09-23T05:44:30.453838Z",
"size": 0,
"preview": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/watch",
...
"playback": {
"hls": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/manifest/video.m3u8",
"dash": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/manifest/video.mpd"
},
...
},
{
"uid": "6b9e68b07dfee8cc2d116e4c51d6a957",
"thumbnail": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/thumbnails/thumbnail.jpg",
"thumbnailTimestampPct": 0,
"readyToStream": true,
"status": {
"state": "ready",
"pctComplete": "100.000000",
"errorReasonCode": "",
"errorReasonText": ""
},
"meta": {
"name": "CFTV Staging 22 Sep 21 22:12 UTC"
},
"created": "2021-09-22T22:12:53.587306Z",
"modified": "2021-09-23T00:14:05.591333Z",
"size": 0,
"preview": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/watch",
...
"playback": {
"hls": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/manifest/video.m3u8",
"dash": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/manifest/video.mpd"
},
}
],
}これらは Video ID を参照します。
ライブ入力が配信中かどうかと、アクティブな動画 ID は、lifecycle エンドポイントへリクエストして確認できます。Stream Player は、入力がアイドルのときに注記を出すために、この確認を自動で行います。カスタムプレーヤーでは追加の対応が必要になることがあります。
curl -X GET \
-H "Authorization: Bearer <API_TOKEN>" \
https://customer-<CODE>.cloudflarestream.com/<INPUT_ID>/lifecycle次の例では、レスポンスは ID が入力であり、アクティブな videoUID があることを示しています。live の値が、入力が配信中であることを示します。
{
"isInput": true,
"videoUID": "55b9b5ce48c3968c6b514c458959d6a",
"live": true
}{
"isInput": true,
"videoUID": null,
"live": false
}ライブ入力 ID 経由でライブストリームを視聴する場合、ライブ入力の録画設定にある requireSignedURLs と allowedOrigins が使われます。これらの設定は、動画レベルの設定とは独立しています。
ライブストリームが終了すると、録画が自動で生成され、60 秒以内に利用できます。視聴と再生を確実にするため、次の点に注意してください。
- 視聴中にライブストリームが終了した場合、Stream Player の視聴者は 60 秒待ってからプレーヤーを再読み込みし、ライブストリームの録画を視聴します。
- ライブストリーム終了後、録画のステータスは API で確認できます。動画の state が
readyになったら、いずれかのマニフェスト URL で録画をストリーミングできます。
ライブストリームの録画を生成しているあいだ、動画は not-found または not-started と報告されることがあります。
ライブストリーム録画に Stream Player を使っていない場合は、録画の再生方法について ライブストリームの録画とリプレイ を参照してください。