Stream を契約したら、ダッシュボードまたは API でライブ入力(Live Input)を作成できます。新しいライブ入力へは RTMPS または SRT で配信します。SRT は新しい動画コーデックに対応し、キャプションや複数音声トラックなどのアクセシビリティ機能も使いやすくなります。
初めてライブストリーミングする場合 は、動画を Cloudflare に送るソフトウェアが必要です。OBS Studio で Stream のライブ配信を始める方法 を参照してください。
手順 1: Cloudflare ダッシュボードで Live inputs ページを開き、ライブ入力を作成します。
Live inputs を開く ↗
手順 2: RTMPS の URL とキーをコピーし、ライブ配信アプリケーションで使います。始めるには Open Broadcaster Software (OBS) ↗ を推奨します。
手順 3: 配信を開始し、Stream ダッシュボードでライブストリームをプレビューします。
Stream ダッシュボードでは、配信開始から数秒で、視聴者に見える内容のプレビューが表示されます。ウェブサイトやアプリにライブ再生を追加するには 動画を再生する を参照してください。
プログラムからライブストリームを開始するには、/live_inputs エンドポイントに POST リクエストを送ります。
curl -X POST \
--header "Authorization: Bearer <API_TOKEN>" \
--data '{"meta": {"name":"test stream"},"recording": { "mode": "automatic" }}' \
https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/live_inputs{
"uid": "f256e6ea9341d51eea64c9454659e576",
"rtmps": {
"url": "rtmps://live.cloudflare.com:443/live/",
"streamKey": "MTQ0MTcjM3MjI1NDE3ODIyNTI1MjYyMjE4NTI2ODI1NDcxMzUyMzcf256e6ea9351d51eea64c9454659e576"
},
"created": "2021-09-23T05:05:53.451415Z",
"modified": "2021-09-23T05:05:53.451415Z",
"meta": {
"name": "test stream"
},
"status": null,
"recording": {
"mode": "automatic",
"requireSignedURLs": false,
"allowedOrigins": null,
"hideLiveViewerCount": false
},
"enabled": true,
"deleteRecordingAfterDays": null,
"preferLowLatency": false
}-
enabledboolean default:true- ライブ入力が着信配信を受け付けるかどうかを制御します。
falseにすると、着信する RTMPS または SRT 接続を拒否します。特定の入力で配信者の放送をプログラムから終了したり、新しい配信の開始を防いだりするときに使います。
- ライブ入力が着信配信を受け付けるかどうかを制御します。
-
preferLowLatencyboolean default:falseベータtrueにすると、このライブ入力でベータ版の低遅延 HLS(LL-HLS)パイプラインが有効になります。Stream 組み込みプレーヤーは、可能な場合に自動で LL-HLS を使います。(録画のmodeもautomaticにする必要があります。)
-
deleteRecordingAfterDaysinteger default:null(any)-
入力ではなく、録画を削除する日時を指定します。このプロパティは、録画が利用可能になり再生できるようになった時点から適用されます。録画を削除すると、再生できなくなり、課金上のストレージにも計上されなくなります。最小値は
30、最大値は1096です。ストリームが終了すると、
deleteRecordingAfterDaysがある場合、その値を使ってscheduledDeletionのタイムスタンプが計算されます。ライブ配信中にライブ入力へこの値を追加した場合、プロパティは今後のストリームにだけ適用されます。
-
-
timeoutSecondsinteger default:0timeoutSecondsは、ライブフィードが切断されてから、新しい動画が作成されるまでの許容時間を指定します。
次の 4 つのプロパティは、recording オブジェクトの配下にあります。
-
modestring default:offmodeをautomaticにすると、ライブストリームは HLS/DASH で自動的に視聴可能になります。あわせて、あとから再生できるように自動録画されます。デフォルトの録画モードはoffで、入力は録画されず、再生もできません。
-
requireSignedURLsboolean default:falserequireSignedURLsは、動画の視聴に署名付き URL が必要かどうかを示します。この設定は、その入力から録画したすべての動画にデフォルトで適用されます。さらに、ライブ入力 ID 経由で動画を視聴する場合、このフィールドは動画単位の設定より優先されます。
-
allowedOriginsinteger default:null(any)allowedOriginsは、許可するオリジンの一覧を任意で指定できます。この設定は、その入力から録画したすべての動画にデフォルトで適用されます。さらに、ライブ入力 ID 経由で動画を視聴する場合、このフィールドは動画単位の設定より優先されます。
-
hideLiveViewerCountboolean default:false- ライブ視聴者数へのアクセスを制限し、プレーヤーからその値を取り除きます。
PUT リクエストでライブ入力を更新します。
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/live_inputs/{input_id} \
--header "Authorization: Bearer <API_TOKEN>" \
--data '{"meta": {"name":"test stream 1"},"recording": { "mode": "automatic", "timeoutSeconds": 10 }}'ライブ入力はデフォルトで有効です。無効にすると、着信する RTMPS および SRT 接続を拒否します。削除せずに一時停止したり、進行中の配信を終了したり、特定の入力で新しい配信が始まらないようにしたりするときに使います。
ライブ入力を無効にするには、enabled を false にします。
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/live_inputs/{input_id} \
--header "Authorization: Bearer <API_TOKEN>" \
--data '{"enabled": false}'再度有効にするには、enabled を true にします。
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/live_inputs/{input_id} \
--header "Authorization: Bearer <API_TOKEN>" \
--data '{"enabled": true}'誤った相手に認証情報が渡った場合、クライアントコードや画面共有で露出した場合、セキュリティ手順の一環で更新が必要な場合は、ライブ入力の配信認証情報をローテーションします。キーをローテーションしても、ライブ入力 ID とその他の設定は変わりません。
キーをローテーションすると、古い認証情報は無効になり、古い認証情報を使う配信は切断され、新しい認証情報が API レスポンスで返されます。
curl --request POST \
https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/live_inputs/{input_id}/rotate_keys \
--header "Authorization: Bearer <API_TOKEN>"ライブ入力のレスポンスには keysRotatedAt が含まれ、最後にキーをローテーションした日時を示します。一度もローテーションしていないライブ入力では、このフィールドは省略されます。
DELETE リクエストでライブ入力を削除します。
curl --request DELETE \
https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/live_inputs/{input_id} \
--header "Authorization: Bearer <API_TOKEN>"バッファリング、フリーズ、遅延、その他の類似の問題が起きる場合は ライブストリームのトラブルシューティング を参照してください。
- 配信者は、ライブストリームに適したビットレートを使ってください。通常は 12 Mbps(12000 Kbps)を十分下回る値です。動きが多くフレームレートが高いコンテンツは高めのビットレート、スライド発表のような動きの少ないコンテンツは低めのビットレートを使います。
- 配信者は、GOP 長 ↗(キーフレーム間隔)を 2〜8 秒にしてください。Open Broadcaster Software (OBS) を含む、ほとんどのエンコードソフトウェアとハードウェアのデフォルトはこの範囲です。GOP 長を短くすると視聴者の遅延は減りますが、エンコード効率も下がります。GOP 長を長くするとエンコード効率は上がりますが、視聴者の遅延は増えます。これは動画エンコード固有のトレードオフであり、Cloudflare Stream の制限ではありません。
- 可能な場合は VBR(可変ビットレート)ではなく CBR(固定ビットレート)を選んでください。CBR は安定した配信を保ち、バッファリングや途切れを防ぎやすくします。
- B フレームをオフにするか、0 にします。B フレームは LL-HLS と互換性がなく、ジッターや散発的なバッファ遅延の原因になります。
- 最も低い遅延にするには、GOP サイズ(または「キーフレーム間隔」)を 2〜4 秒にします。
- 可能な場合は RTMP エンドポイントへ配信し、そうでなければ SRT を使います。
- OBS を使う場合は、「ultra low」レイテンシプロファイルを選びます。
- Closed GOP が必要です。動画に B フレームがある場合、それらは常に同じ GOP 内のフレームを参照する必要があります。この設定は、OBS Studio ↗ を含むほとんどのエンコードソフトウェアとハードウェアのデフォルトです。
- Stream Live の入力コーデックは、H.264 動画と AAC 音声だけです。この要件は、Stream Connect の出力へ中継する入力には適用されません。Stream Live は ADTS に対応しますが、現時点では LATM には対応していません。
- クライアントは、切断時に再接続するように設定してください。Stream Live は再接続を適切に扱い、ライブストリームを継続します。
- ライブ動画では、ウォーターマークはまだ使えません。
- ライブ動画が 7 日を超えると、録画は 7 日に切り詰められます。録画されるのは、ライブ動画の最初の 7 日分だけです。