CloudflareでStream Liveの一般提供が開始されています!㊗️GA㊗️

CloudflareのStream Liveが(2022/09/21付で)GAとなっていました。改めてその特徴や料金体系などを振り返ります。また実際にライブストリーミングを行い、Stream Liveの使い方を確認してその手軽さを実感してみます。
2022.11.29

はじめに

清水です。Cloudflareの動画配信プラットフォームサービスCloudflare Streamについてのアップデート情報をお届けします。少し前のアップデートとなりますが、2022年9月21日付けでCloudflare Streamのライブ動画配信機能「Stream Live」がGenerally Availableとなりました!

本エントリではGAとなったStream Liveについて、改めてその特徴や使い方などをまとめてみたいと思います。

GAとなったStream Liveの特徴を改めて振り返る

まずは簡単に、GAとなったStream Liveの特徴を振り返っておきましょう。Cloudflareの動画配信プラットフォームサービスであるCloudflare Streamの機能の1つで、これまではVOD動画配信のみをサポートしていたCloudflare Streamにベータ版として加わったのが2021年9月の出来事となります。

Ingestやencodingに追加料金が発生せず、VOD動画と同じストリーミング時間とストレージ容量からなるシンプルな価格体系です。(料金については本エントリ後半に改めてまとめます。)また使い方として、ライブ入力(Live Input)というリソース1つを作成するだけ、あとはStreaming Softwareから映像を打ち上げ、動画Playerをサイトに埋め込むだけでライブストリーミング視聴環境ができあがります。(このあとに続くセクションで実際にライブストリーミングを試しています。その手軽さがわかるかと思います。)

シンプルさが売りとも捉えられそうですが、シンプルだけでなく様々な強力機能も付与されています。(これらはベータ版リリース時にはなく、後からアップデートされた機能でもありますね。)例えば映像の打ち上げプロトコルとして一般的なRTMP(RTMPS)のほか、次世代の映像伝送プロトコルと言われるSRTもサポートしています。また再生方式としても一般的なHTTPを用いたHLSやDASHのほか、映像伝送プロトコルであるRTMPSもしくはSRTを用いた低遅延ライブストリーミングもサポートしています。この低遅延ライブストリーミングでは1秒未満の遅延を謳っています。またCloudflare Streamに打ち上げた映像を、再生Playerで視聴するほかに別の動画プラットフォームに再ストリームすることも可能です。この機能はSimulcastingと呼ばれています。

これらはいずれもCloudflareのネットワークを用いて実現しているところがポイントです。例えばIngestならびにEgressの際にユーザ最寄りのCloudflareネットワークに接続するため、パケットのロスや動画のバッファリングが防げる、というメリットが享受できます。

GAとなったStream Liveで改めてライブ動画配信してみる

改めてやってみたいと思います。基本的な手順は以前オープンベータの際にまとめた以下のエントリと同様です。ただ細かなところでいくつか違いもありますので、その違いについても抑えていきましょう。

なお、CloudflareへのサインアップならびにCloudflareCloudflare Streamのサブスクリプションについて実施済みとして進めます。これらの手順詳細については上記のブログエントリを参照ください。

まずはライブ入力(Live Input)リソースを作成す。ライブ入力一覧画面から[+ライブ入力を作成する]ボタンで進みます。

ライブ入力作成画面、以前は「ベータ版」の表示があったのですが、GA後ということでこの表記がなくなっていますね。リソース名をつけて、[ライブ入力を作成する]ボタンでリソースを作成しましょう。

なお、以前の「ベータ版」の表記があったころのスクショが以下となります。

Cloudflareの動画配信プラットフォームサービスCloudflare Streamでライブ動画配信をしてみた | DevelopersIO

ライブ入力作成後の画面、「接続情報」の箇所でStreaming Softwareから映像を打ち上げるURL、RTMPSキーの情報が確認できます。

なお、今回はRTMPSを使用します。RTMPSの再生キーはStreaming Softwareから打ち上げた映像をRTMPS対応Playerで再生するなどの場合に使用するものです。映像の打ち上げ自体には使用しません。またCloudflare StreamではRTMPSのほかにもSRT、そして現在はベータ版となりますがWebRTC (WHIP)にも対応しています。

このRTMPSのURLならびにRTMPSキーをStreaming Softwareに設定します。Streaming Softwareとして、今回はOBS Studioを利用しました。

「設定」項目の「配信」にて、サービスの箇所は「カスタム」を選択、「サーバー」の箇所にRTMPS URLを、「ストリームキー」の箇所にRTMPSキーをそれぞれコピーします。

「設定」の「出力」についてはデフォルト設定のまま使用しました。

[配信開始]ボタンで映像の打ち上げを開始します。

ダッシュボードのライブ入力の画面を確認してみましょう。表示されるPlayerでライブストリーミングされていることが確認できるかと思います。

またStream Playerを用いた埋め込みコードについても提示されていますね。

以下のコードが取得できました。

<div style="position: relative; padding-top: 56.25%;"><iframe src="https://customer-0jyoxxxxxxxxxxxx.cloudflarestream.com/1434xxxxxxxxxxxxxxxxxxxxxxxxxxxx/iframe" style="border: none; position: absolute; top: 0; left: 0; height: 100%; width: 100%;" allow="accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div>

なお、iframeタグのsrtで指定しているURLのドメイン(ここの例ならcustomer-0jyoxxxxxxxxxxxx.cloudflarestream.com)については、アカウントごとに異なるサブドメインとなりますので注意しましょう。 (Cloudflare Streamでアカウント固有のサブドメインを利用するようになりました | DevelopersIO

簡単なHTMLファイルとして、独自ドメインでホスティングしてみました。(埋め込みコードについては整形しています。)

stream-player.html

<html>
  <head>
    <title>Stream Player</title>
  </head>
  <body>
    <div style="position: relative; padding-top: 56.25%;">
      <iframe
         src="https://customer-0jyoxxxxxxxxxxxx.cloudflarestream.com/1434xxxxxxxxxxxxxxxxxxxxxxxxxxxx/iframe"
         style="border: none; position: absolute; top: 0; left: 0; height: 100%; width: 100%;"
         allow="accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;"
         allowfullscreen="true">
      </iframe>
    </div>
  </body>
</html>

Streaming Softwareからの映像の打ち上げが終わったあと、「ビデオ」の項目を確認すると先ほどライブストリーミングしていた映像が自動的にVODコンテンツとしてまとめられ、アーカイブとして再生できるようになっています。このライブストリーミングアーカイブはMP4ファイルとしてもダウンロードできる点もうれしいポイントです。のでアーカイブとしても活用できますね。

GAとなったStream Liveの料金を改めて確認してみる

GAしたStream Liveでライブストリーミングを行ってみました。ここで改めて、Stream Live利用の際の価格設定についても確認しておきましょう。

価格体系はオープンベータの段階のものから変更はありません。IngestやEncode自体には料金は発生せず、(1) ストリーミング配信した時間(2) ストレージ容量の2点についてのみ、料金が発生する仕組みです。「(1) 配信した時間」については、一人の視聴者が100分みても、100人の視聴者がそれぞれ1分みても、どちらも合計100分の配信時間、という計算になります。「(2) ストレージ容量」については、Cloudflare Streamに保存されている動画の時間によって決まります。ビットレートが影響しない点、またAdaptive Bit Rate (ABR)用の複数ビットレートについてはカウントされない点を抑えておきましょう。(単純に、10分のライブストリーミングをしたら、10分ぶんのストレージ容量が使用される、と考えればOKです。

以下、冒頭のThe Cloudflare Blogエントリ内の表を引用します。

Stream Live is now Generally Available

実際の料金は「(1) ストリーミング配信した時間」と「(2) ストレージ容量」はそれぞれ1,000分あたりで計算されます。実際の料金は、「(1) ストリーミング配信した時間」については1,000分あたりUSD $1.00/月、「(2) ストレージ容量」については1,000分あたりUSD $5.00(事前請求)となります。(詳細はCloudflare Streamの請求 – Cloudflareヘルプセンターをご確認ください。またいずれも2022/11/29時点の価格となります。)

これらはライブストリーミングのほか、VOD(ビデオ)配信とも共有されます。(逆に言えば、ライブストリーミングをすることで特別な料金は発生しない、VOD配信と同等の料金が発生することだけ抑えておけばOK、ということになります。)

BusinessまたはProプランの場合は無料利用枠あり!

上記のようにストリーミング時間とストレージ容量で決まる(VOD配信含めた)Stream Liveの料金、(Cloudflare Streamを)サブスクリプションした段階で最低でも$5.00が発生、ストリーミングを行うと$6.00/月という料金になってきます。スモールスタートはできるのですが、無料で検証できないところが惜しいな、、などと思っている方に朗報です。2022年12月1日からCloudflareにてBusinessまたはProサブスクリプションを有しているカスタマーに対して、100分ぶんのストレージ容量ならびに10,000分ぶんのストリーミング時間が無料で割り当てられるようです!(VOD配信含めたCloudflare Stream全体での料金となります。)

すでにCloudflareをStream以外のサービスでガッツリと使っている場合、気軽にCloudflare Streamを試してみることができるかと思います!またもちろん、これでストレージ容量、ストリーミング時間が不足するようであれば有料サブスクリプションへのアップグレードが可能です。

まとめ

Cloudflare Streamのライブストリーミング機能であるStream LiveのGenerally Available(一般提供開始)についてまとめてみました。動画再生Player込みで、すぐにライブストリーミングが開始できます。料金についても非常にシンプルに設定されており、そして安価かと思います。HLSやDASHでの配信のほかにも、より遅延の少ないRTMPS/SRTで配信が可能だったり、Cloudflare Streamから別プラットフォームに再ストリーミングするSimulcasting機能など多様な機能もそろっています。また現在オープンベータ版となりますが、AV1コーデックWebRTCなどの機能アップデートも控えているようです。ますます目が離せませんね!