Cloud Service
Cloudflare Stream
動画のアップロード・エンコード・配信・簡易ライブ配信までを一つのAPIで完結できるマネージド動画基盤。自前でのトランスコード基盤構築が不要になる。
- 1.動画ファイルをアップロードするだけで、複数画質へのエンコードと世界規模での配信を自動で行う。
- 2.録画済み動画の配信に加えて、簡易的なライブ配信の取り込み・視聴にも対応する。
- 3.保存した動画分数と配信した分数に応じた従量課金で、独自のエンコードパイプラインを持つ必要がない。
解決する課題
- 動画配信のためにトランスコードサーバーやCDNを自前で組み合わせる手間を避けたい
- 視聴者の回線や端末に応じた**画質の自動切り替え(アダプティブ配信)**を、動画ごとに個別実装したくない
- 録画動画の配信だけでなく、簡易なライブ配信も同じ基盤で扱いたい
- 動画の埋め込みや再生画面の作り込みにかかる工数を減らし、プレイヤーの実装を任せたい
自前でエンコード・保存・配信網を構築する代わりに、動画ファイルのアップロードとプレイヤーの埋め込みだけで配信を始められる点が中心的な価値です。
主要概念と用語
- 動画(Video): アップロードした動画の実体。一意のIDが割り当てられ、以後はこのIDで参照する
- アップロード方式: 直接アップロードのほか、URLを指定して取り込む方式やTUS(再開可能アップロード)に対応する
- エンコード(トランスコード): アップロードされた動画を複数の画質・ビットレートに自動変換する処理
- アダプティブ配信(HLS/DASH): 視聴者の回線状況に応じて画質を自動的に切り替えながら配信する方式
- Stream Player: 埋め込み用の公式プレイヤー。アダプティブ配信への対応や再生UIを標準で備える
- Signed URL / 署名付きトークン: 動画への再生アクセスを制限し、有効期限付きで視聴を許可する仕組み
- ライブ入力(Live Input): ライブ配信を取り込むための接続先。配信ソフトからここへ映像を送る
- サムネイル: 動画の任意の時点から自動生成できる静止画
- Webhook通知: アップロード完了やエンコード完了などの状態変化を外部に通知する仕組み
仕様・制限・クォータ
- 動画の最大長・ファイルサイズには上限があり、大容量の動画は再開可能アップロード方式を使うことが推奨される
- 保存された動画は自動的に複数の画質へエンコードされ、視聴側では回線に応じて画質が切り替わる
- ライブ入力は一般的な配信プロトコルでの取り込みに対応し、視聴側はアダプティブ配信で受け取る
- アカウント単位で同時アップロード数や保存動画数などにクォータがあり、必要に応じて引き上げ申請が可能
- 動画の公開範囲(誰でも視聴可能か、署名付きURLが必須か)を動画ごとに設定できる
具体的な上限値・対応フォーマットは変更されることがあるため、最新の情報は公式ドキュメントで確認してください。
内部の仕組み
利用者からは、動画をアップロードするとURLが払い出され、そのURLをプレイヤーに渡すだけで再生できるように見えます。裏側では次のような処理が行われます。
- アップロードされた動画をCloudflareの基盤で受け取り、複数の画質・ビットレートへエンコードする
- エンコード済みの動画をCloudflareのグローバルネットワークにキャッシュし、視聴者に近い拠点から配信する
- 視聴時はプレイヤーが回線状況を見ながら、アダプティブ配信の仕組みで適切な画質のセグメントを選び続ける
- ライブ配信では、取り込んだ映像をリアルタイムにエンコードしながら同時に配信し、必要に応じて録画としても保存できる
エンコードパイプラインや配信網の運用はすべてCloudflare側が担うため、利用者は動画IDとプレイヤーの組み込みだけを意識すれば済みます。
設計パターン / ベストプラクティス
- 公式プレイヤーを使う: 自作プレイヤーでも再生できるが、アダプティブ配信を活かすには公式のStream Playerを使うのが基本
- 署名付きトークンで限定公開にする: 会員限定コンテンツなどは、動画を非公開設定にして署名付きURLで視聴者を絞る
- Webhookで後続処理を自動化する: アップロード完了やエンコード完了のイベントを受け取り、公開処理やサムネイル反映を自動化する
- 大容量動画は再開可能アップロードを使う: ネットワーク切断があっても途中から再開できる方式を選び、アップロード失敗を減らす
- ライブとオンデマンドを使い分ける: 生配信はライブ入力、事前収録済みの動画は通常のアップロードで扱う
画質の切り替えやバッファリング制御を自前で作り込まず、公式プレイヤーに任せることで実装量を大きく減らせます。
運用・監視
- 動画ごとの再生状況や視聴数はダッシュボードやAPIで確認できる
- アップロード完了・エンコード完了・ライブ配信の開始や終了などの状態変化はWebhook通知で受け取れる
- 再生できない場合は、動画のエンコード状態(処理中かどうか)と公開設定(非公開か署名必須か)をまず確認する
- ライブ配信が乱れる場合は、配信ソフト側のビットレートや取り込み経路の安定性を確認する
アップロード直後はエンコードが完了しておらず、対応画質が揃っていないことがあります。公開前にエンコード完了のステータスを確認する運用にすると事故を防げます。
コスト
- 課金の基本的な考え方は、**保存している動画の時間(分)**と、**配信された動画の時間(分)**に応じた従量制
- ライブ配信は取り込みと配信のそれぞれに対応する費用が発生する傾向がある
- サーバーの常時起動費用やエンコード専用インスタンスの管理費用は発生しない
具体的な単価や無料枠は変動するため、最新の料金は公式の料金ページで確認してください。視聴数の多いコンテンツほど配信分の費用が支配的になりやすいため、想定視聴時間をもとに見積もるのが安全です。
セキュリティ
- アクセス制御はAPIトークンのスコープで管理し、動画の管理権限を必要な範囲に絞る
- 限定公開が必要な動画は、署名付きURLやトークンで視聴者を制限する
- 動画の埋め込み先ドメインを制限する設定を使うと、想定外のサイトへの埋め込みを防げる
- アップロード・配信経路はいずれも暗号化された通信で保護される
公開範囲の設定を誤ると、意図しない相手に動画が視聴されてしまいます。会員限定・社内限定の動画は必ず非公開設定にし、署名付きURLで配布してください。
関連サービス・比較
同じくCloudflare上で映像を扱う仕組みとして、リアルタイム性を重視するCloudflare Calls(WebRTCベース)と比べると、Streamは録画・オンデマンド配信を中心とした用途に向いています。
| 観点 | Cloudflare Stream | Cloudflare Calls |
|---|---|---|
| 主な用途 | 録画動画の配信と簡易ライブ配信 | リアルタイムの双方向通話・配信 |
| 遅延特性 | 数秒程度のアダプティブ配信 | ミリ秒級の低遅延 |
| 典型的な利用例 | 動画コンテンツサイト、社内動画 | ビデオ会議、対戦ゲームの音声 |
| エンコード | 自動で複数画質へ変換 | リアルタイム伝送が中心 |
ハンズオン / CLI例
# 動画をアップロードするための直接アップロードURLを発行
npx wrangler stream upload-url
# ローカルの動画ファイルを直接アップロード
npx wrangler stream upload ./sample.mp4
# アップロード済み動画の一覧を確認
npx wrangler stream list
# 動画の詳細情報(エンコード状態や再生URLなど)を取得
npx wrangler stream get <video-id>
Cloudflare Service
Cloudflare Streamを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
メディア
比較で見る軸
クラウド: Cloudflare / カテゴリ: メディア / 難易度: basic
導入後に効く点
録画済み動画の配信に加えて、簡易的なライブ配信の取り込み・視聴にも対応する。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Cloudflare
- カテゴリ
- メディア
- 難易度
- basic
- 関連資格
- —
- 設計柱
- cost / performance / operational
判断チェックリスト
- 自社の用途が「メディア / cost」に近いか確認する。
- 強みである「動画ファイルをアップロードするだけで、複数画質へのエンコードと世界規模での配信を自動で行う。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。