RTMP(Real-time messaging protocol)とは?仕組みや他配信方法との違いを解説
RTMPとは、Real-time messaging protocolの略で、Macromedia社(現Adobe社)によって開発されたリアルタイム通信プロトコルです。配信サーバーへ映像・音声データを送信する際の標準的なプロトコルとして広く利用されています。
RTMPとは?
RTMPとは、Real-Time Messaging Protocolの略で、動画・音声をストリーミング配信するためにMacromedia社(現Adobe社)が開発した規格です。当初はFlash Player向けの独自規格でしたが、Flash Playerのサポートが終了した現在でも、動画配信のインジェスト(Ingest、配信者と配信サーバー間のデータ転送)においては標準的に使用されています。
RTMPの仕組みと特徴
RTMPは、ほかの動画配信規格同様、動画や音声、制御データを小さなチャンク(部品)に分割して送受信します。
チャンク転送にあたってTCPベースで接続の安定・信頼性を確保している点、AMF(Action Message Format)と呼ばれる独自のデータ形式を採用している点が特徴です。
RTMPの用途
2026年現在においては、主に動画配信のインジェストに用いられています。主要な動画配信機材・ソフトウェアがこれに対応していること、接続方式やこれまでの実績から信頼性が高いことが、このシェアを支えています。動画配信のインジェスト規格における、事実上の「デファクトスタンダード」です。
WebRTC・HLSとの違い
Flash Playerに非対応であるスマートフォンの普及と、Flash Playerそれ自体のサポート終了が続き、次世代規格として普及してきたのがWebRTCとHLSです。
WebRTC(Web Real-Time Communication)はブラウザ間でリアルタイムの音声、映像、データ通信を可能にするオープンソースの技術です。超低遅延で配信が可能であること、Webブラウザだけで完結できることが特徴です。
HLS(HTTP Live Streaming)は動画をストリーミング配信するためにApple社が開発した規格です。その高い互換性と帯域の柔軟性が評価されています。データ形式の都合上、WebRTCに比べ遅延が発生しやすいですが、大規模配信にも対応できます。RTMPで配信サーバーに送信された映像は、HLSに変換されて視聴されることが多いです。
RTMPのメリット・デメリット
RTMPには、伝統的な規格であるがゆえのメリット、デメリットが存在します。
RTMPのメリット
その圧倒的なシェア、安定性に加え、比較的低遅延であることが挙げられます。
圧倒的なシェア
- インターネット動画配信の黎明期から長く使われてきた規格であるため、大半の配信機材およびソフトウェアがRTMPによる入力に対応しています。
- 長期の実用実績を持つ、良い意味で「枯れた技術」であるため、文献が多く、トラブルシューティングがしやすいです。
安定性
- 後述するTCPベースでの信頼性・安定性の高い接続が担保されています。
低遅延
- データをセグメント化(ファイル分割)せずにストリーミングするため、HLSに比べてやや低遅延な傾向があります。ただし、WebRTCには若干劣後します。
RTMPのデメリット
視聴用配信規格としては使えないほか、データや処理の様式には旧規格特有の限界があります。
視聴用に使えない
- モバイル再生ができず、Flash Playerのサポートも終了したため、現状ほとんどの端末で視聴に用いることはできません。
暗号化が必須ではない
- 暗号化が必須の規格ではないため、セキュリティ上の懸念が残ります。
AMFという独自形式
- 配信制御にあたって、RTMPではAMFと呼ばれる独自のシリアライズされたデータ形式を採用しています。XMLやJSONが標準となった今日では馴染みのないものであり、汎用性に欠けています。
RTMPの種類
RTMPの弱点を克服・修正するために、長い歴史のなかでさまざまな派生形が生まれてきました。その一部を簡単にご紹介します。
RTMPT
RTMPはHTTPベースの規格ではありません。そのため、ファイアウォールの設定によっては遮断されてしまう場合がありました。これを回避するため、HTTP形式でラップして通信するように設計された規格がRTMPTです。そのトンネリングメカニズムから、頭文字の「T」が付いています。
RTMPS
暗号化が必須でないRTMPに、TLSによる暗号化を適用したものです。TLSは現代Webでも標準的に使われている暗号化方式であるため、セキュリティ面も担保できる規格です。
RTMPE
RTMPSとは別に開発された暗号化付きRTMPですが、脆弱性が発見されたため、現在は非推奨となっています。
pRTMP(Protected RTMP)
Adobeによりコンテンツ保護がなされたRTMPですが、こちらもFlash Playerのサポートが終了した現在では使われていません。
RTMP配信の基本構成パターンと設計の考え方
上述のように、RTMPはほとんどの場合視聴用には用いることができません。そのため、採用する場合はRTMPで配信し、中継サーバーで別形式に変換後、視聴者に渡す方式を採用します。
RTMPをサーバーで処理する際には、サーバーにモジュールをダウンロードする必要があります。著名なものにはnginx-rtmp-moduleがあります。
変換に用いるエンコーダとしては、FFmpegがよく知られています。
RTMPインジェストの仕組み
映像・音声・データを送受信する「ストリーム」を形成するためには、RTMPのバージョンやメディアファイルのエンコード形式等を双方で揃える必要があります。どのように形成するのかについて、簡単に解説します。
RTMPはTCPベースの規格であるため、送受信前にはTCP接続が行われます。
その上で、ハンドシェイクと呼ばれる、規格・通信の確定作業が行われます。具体的にはRTMPのバージョン、タイムスタンプなどを交信します。
ハンドシェイクが確立すると、次にチャンク(通信にあたって分割されるデータの部品)のサイズや疎通確認の頻度、帯域情報を確定する「制御メッセージ」をやりとりします。
ここまできてようやく、メインの「RTMP Message」のやりとりが始まります。RTMP Messageには、実際の音声・映像のほかに、ストリーム制御のためのコマンドメッセージ、メタデータをやりとりするためのデータメッセージなどが含まれます。
簡単に解説してきましたが、いかがでしたか? 伝統的な規格ですが、実際に配信基盤を組む際には、大きな工数がかかります。
ImageFlux Live Streamingでは、ライブ配信基盤とそのAPIでこの工数を削減し、お客様が配信に集中できるサービスを提供しています。
ImageFluxを使ったRTMPライブ配信の実装イメージ
高いシェアを有するRTMPによる配信と、次世代規格による視聴環境確保を両立して配信できるよう、ImageFlux Live StreamingではRTMP to HLSの配信に近日対応予定です。
WebRTC to HLSで長年積み上げてきた実績を元に、安定し、かつ使いやすい配信・変換基盤をお客様に提供いたします。
RTMP → ImageFlux Live Streaming → HLS
近日リリース予定のImageFlux Live Streaming RTMP to HLSでは、API経由で気軽にRTMP用の配信チャンネルを作成し、同チャンネルに紐づいたプレイリストのURLからHLS形式で視聴できる仕組みを提供します。
サーバー側での配信・変換基盤は、すべてImageFlux Live Streamingに一任、お客様側は配信・視聴向けのUI構築や配信そのものにリソースを集中できます。基盤は高い可用性と運用実績のある国産クラウド基盤上に確保されておりますので、安心してご利用いただけます。ぜひ前向きにご検討ください。
ImageFluxチーム
さくらインターネットとピクシブで共同開発・提供している、クラウド画像変換サービス・ライブ配信エンジンサービス「ImageFlux」のチームです。