Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

ライブストリームを開始する

最終更新 Markdown で表示Agent セットアップ

Stream を契約したら、ダッシュボードまたは API でライブ入力(Live Input)を作成できます。新しいライブ入力へは RTMPS または SRT で配信します。SRT は新しい動画コーデックに対応し、キャプションや複数音声トラックなどのアクセシビリティ機能も使いやすくなります。

初めてライブストリーミングする場合 は、動画を Cloudflare に送るソフトウェアが必要です。OBS Studio で Stream のライブ配信を始める方法 を参照してください。

ダッシュボードを使う

手順 1: Cloudflare ダッシュボードで Live inputs ページを開き、ライブ入力を作成します。

Live inputs を開く ↗ ダッシュボードのライブ入力作成欄

手順 2: RTMPS の URL とキーをコピーし、ライブ配信アプリケーションで使います。始めるには Open Broadcaster Software (OBS) を推奨します。

RTMPS URL 欄の例

手順 3: 配信を開始し、Stream ダッシュボードでライブストリームをプレビューします。

Stream ダッシュボードでは、配信開始から数秒で、視聴者に見える内容のプレビューが表示されます。ウェブサイトやアプリにライブ再生を追加するには 動画を再生する を参照してください。

API を使う

プログラムからライブストリームを開始するには、/live_inputs エンドポイントに POST リクエストを送ります。

リクエストbash
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
レスポンスjson
{
	"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
}

任意の API パラメーター

/live_inputs の API リファレンス

  • enabled boolean default: true

    • ライブ入力が着信配信を受け付けるかどうかを制御します。false にすると、着信する RTMPS または SRT 接続を拒否します。特定の入力で配信者の放送をプログラムから終了したり、新しい配信の開始を防いだりするときに使います。
  • preferLowLatency boolean default: false ベータ

    • true にすると、このライブ入力でベータ版の低遅延 HLS(LL-HLS)パイプラインが有効になります。Stream 組み込みプレーヤーは、可能な場合に自動で LL-HLS を使います。(録画の modeautomatic にする必要があります。)
  • deleteRecordingAfterDays integer default: null (any)

    • 入力ではなく、録画を削除する日時を指定します。このプロパティは、録画が利用可能になり再生できるようになった時点から適用されます。録画を削除すると、再生できなくなり、課金上のストレージにも計上されなくなります。最小値は 30、最大値は 1096 です。

      ストリームが終了すると、deleteRecordingAfterDays がある場合、その値を使って scheduledDeletion のタイムスタンプが計算されます。

      ライブ配信中にライブ入力へこの値を追加した場合、プロパティは今後のストリームにだけ適用されます。

  • timeoutSeconds integer default: 0

    • timeoutSeconds は、ライブフィードが切断されてから、新しい動画が作成されるまでの許容時間を指定します。

次の 4 つのプロパティは、recording オブジェクトの配下にあります。

  • mode string default: off

    • modeautomatic にすると、ライブストリームは HLS/DASH で自動的に視聴可能になります。あわせて、あとから再生できるように自動録画されます。デフォルトの録画モードは off で、入力は録画されず、再生もできません。
  • requireSignedURLs boolean default: false

    • requireSignedURLs は、動画の視聴に署名付き URL が必要かどうかを示します。この設定は、その入力から録画したすべての動画にデフォルトで適用されます。さらに、ライブ入力 ID 経由で動画を視聴する場合、このフィールドは動画単位の設定より優先されます。
  • allowedOrigins integer default: null (any)

    • allowedOrigins は、許可するオリジンの一覧を任意で指定できます。この設定は、その入力から録画したすべての動画にデフォルトで適用されます。さらに、ライブ入力 ID 経由で動画を視聴する場合、このフィールドは動画単位の設定より優先されます。
  • hideLiveViewerCount boolean default: false

    • ライブ視聴者数へのアクセスを制限し、プレーヤーからその値を取り除きます。

ライブ入力を管理する

ライブ入力を更新する

PUT リクエストでライブ入力を更新します。

リクエストbash
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 接続を拒否します。削除せずに一時停止したり、進行中の配信を終了したり、特定の入力で新しい配信が始まらないようにしたりするときに使います。

ライブ入力を無効にするには、enabledfalse にします。

リクエストbash
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}'

再度有効にするには、enabledtrue にします。

リクエストbash
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 レスポンスで返されます。

リクエストbash
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 リクエストでライブ入力を削除します。

リクエストbash
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 は安定した配信を保ち、バッファリングや途切れを防ぎやすくします。

低遅延 HLS 配信の推奨事項 ベータ

  • 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 日分だけです。

役に立ちましたか?