Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

RTMP(アールティーエムピー)とは | 意味や読み方など丁寧でわかりやすい用語解説

RTMP(アールティーエムピー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

リアルタイムメッセージングプロトコル (リアルタイムメッセージングプロトコル)

英語表記

RTMP (アールティーエムピー)

用語解説

RTMPはReal-Time Messaging Protocolの略で、主にインターネット上で音声、動画、およびデータをリアルタイムでストリーミング配信するために設計されたプロトコルである。かつてはAdobe社が開発したFlash Playerと組み合わせて、多くのウェブサイトで動画コンテンツを配信するためのデファクトスタンダードとして広く利用されたが、Flash Playerの終焉とともにその役割は大きく変化した。現在では、エンドユーザーへの直接的な配信プロトコルとしての利用は減少したものの、ライブストリーミングにおいて、配信者がエンコーダからストリーミングサーバーへ映像・音声データを送信する際の「インジェスト(取り込み)」プロトコルとして、依然として重要な役割を担っている。

RTMPは2000年代初頭に登場し、Flash Playerの爆発的な普及とともにインターネット上の動画配信技術の主流となった。当時のウェブ動画サービスでは、低遅延で高品質なライブストリーミングやオンデマンド動画配信を実現する上で不可欠な技術であり、YouTubeをはじめとする多くのプラットフォームで利用された。このプロトコルは、Adobe Flash Media Server (AMS) や、オープンソースのnginx-rtmp-module、Wowza Media Serverといった様々なサーバーソフトウェアによってサポートされ、開発者やコンテンツプロバイダーに柔軟な配信環境を提供した。

技術的な側面から見ると、RTMPはTCP/IPプロトコルスタック上で動作する。TCP(Transmission Control Protocol)は信頼性の高いデータ転送を保証するため、RTMPはデータパケットの到達保証や順序保証といったTCPの特性を享受し、安定したストリーミング配信を可能にする。RTMPの大きな特徴の一つは、単一のTCP接続上で複数の独立したストリームを多重化して送受信できる点である。これにより、映像、音声、データメッセージといった異なる種類の情報を同時に、かつ同期を取りながら効率的に転送できる。

RTMPはメッセージ指向のプロトコルであり、すべてのデータは「メッセージ」として扱われる。各メッセージはヘッダーとペイロードから構成され、ヘッダーにはメッセージの種類(オーディオ、ビデオ、データ、コマンドなど)、ストリームID、タイムスタンプなどが含まれる。ペイロードには実際のデータが格納される。このメッセージはさらに「チャンク」と呼ばれる小さな単位に分割されて送信される。チャンキングの仕組みにより、大規模なデータを小さな断片に分けて送ることで、ネットワークの混雑状況に応じてデータ転送を調整し、リアルタイム性の高い通信を実現する。接続確立時には、クライアントとサーバー間で「ハンドシェイク」と呼ばれる一連の初期通信を行い、セッションを確立する。この後、ストリームの作成やデータの送受信といった具体的な操作が行われる。主にH.264形式の映像データとAAC形式の音声データをサポートし、これらの圧縮形式と組み合わせることで、効率的な配信が行われる。

RTMPにはいくつかのバリアントが存在した。標準的なRTMPはTCPのポート1935を使用する。これに加えて、ストリームを暗号化するRTMPE(Encrypted RTMP)、HTTPを介して通信をトンネリングするRTMPT(RTMP Tunneled over HTTP)、HTTPSを介して通信をトンネリングするRTMPS(RTMP Tunneled over HTTPS)などがある。RTMPTやRTMPSは、ファイアウォールによって標準のRTMPポートがブロックされる環境でも通信を可能にする目的で利用された。

しかし、RTMPはいくつかの課題も抱えていた。最大の制約は、Adobe Flash Playerへの依存であった。Flash Playerがサポートされていないデバイス、特にAppleのiOSデバイスがFlash非対応を決定したことは、モバイル環境でのRTMPの普及を大きく阻害した。さらに、HTML5の登場と、HTTPベースの適応型ストリーミング技術であるHLS(HTTP Live Streaming)やMPEG-DASH(Dynamic Adaptive Streaming over HTTP)の台頭により、エンドユーザーへの配信プロトコルの主流は大きく変化した。HTTPベースのプロトコルは、既存のウェブインフラ(CDN、プロキシサーバーなど)との親和性が高く、ファイアウォールを容易に通過できる利点があったため、大規模配信におけるスケーラビリティや信頼性の面でRTMPを凌駕した。

こうした背景から、現在、RTMPはエンドユーザーのウェブブラウザやモバイルアプリで直接コンテンツを再生する用途にはほとんど用いられない。しかし、RTMPは依然としてライブストリーミングの「インジェスト」段階で不可欠な役割を担っている。OBS Studio、XSplitといった主要なライブ配信ソフトウェアは、カメラやマイクから取り込んだ映像・音声データをエンコードし、RTMPプロトコルを使ってYouTube Live、Twitch、Facebook Liveなどのライブ配信プラットフォームへ送信する。これらのプラットフォームはRTMPで受け取ったストリームを、HLSやMPEG-DASHといったHTTPベースの形式にリアルタイムで変換し、多数のエンドユーザーへ配信する。このように、RTMPは配信ワークフローの初期段階で高品質かつ低遅延のデータをサーバーへプッシュするためのプロトコルとして、バックエンドの重要な技術として生き残り、その役割を特化させている。システムエンジニアを目指す者にとって、ストリーミング配信の全体像を理解する上で、RTMPが現在のシステムにおいてどのような位置づけで機能しているのかを知ることは非常に重要である。

関連コンテンツ