
リアルタイム メッセージング プロトコル (RTMP) は、広く使用されているストリーミング形式です。これは長年にわたって使用されており、放送局、ネットワーク オペレーター、その他多くの業界にとって不可欠なツールに成長しました。ただし、RTMP に関するいくつかの誤解により、RTMP の人気は予想以上に下がっています。
しかし、RTMP とは正確には何でしょうか?どのように機能するのでしょうか?そして、次のライブ ストリームにそれを使用する必要がありますか?
この点と詳細については、以下をご覧ください。
RTMP とは
RTMP は、伝送制御プロトコル (TCP) テクノロジーに基づいて、インターネット上でメディア コンテンツをストリーミングするために使用されるネットワーク プロトコルまたはシステムです。
TCP は、インターネット プロトコル スイートを構成するコンポーネントの 1 つです。もう 1 つの重要なコンポーネントは、IP とも呼ばれるインターネット プロトコルです。
RTMP は、インターネット上でメディア コンテンツをストリーミングするために使用されるネットワーク プロトコルまたはシステムです。
TCP と IP は共に、アプリケーション層とネットワーク層の間の通信ブリッジとして機能します。このように考えてください。アプリケーション層には、Mozilla Firefox ブラウザーやその他のユーザー アプリケーションなど、通常操作するものが含まれます。
Firefox ブラウザが Web ページを読み込むには、Web サイトのサーバーにリクエストを送信する必要があります。リクエストを受信すると、サーバーはリクエストされたリソース (つまり、ビデオ ストリーム、YouTube の事前録画ビデオ、またはウェブページの HTML コード) を送信します。
効果的な通信を維持するには (つまり、通信の欠落や遅延を回避するには)、メッセージをパケットとして知られる小さな部分に分解する必要があります。これは送信者側で行われ、メッセージが受信されると、ユーザーのために再組み立てされます。
TCP は、効果的かつ効率的に送信できるように、メッセージをパケットまたは小さな部分に分割するコンポーネントです。
IP 層は、インターネット上でパケットを送信するための最適なルートを決定する転送エージェントとして機能します。
RTMP プロトコルは、Adobe Flash Player、VLC Media Player、QuickTime Player、Windows Media Player などの多くの一般的なメディア プレーヤーで使用されています。 RTMP は、Google Chrome や Mozilla Firefox などの一部の Web ブラウザでもサポートされています。
ストリーミング ソリューションを使用するほとんどのユーザーにとっての主な関心事は、コンテンツをどのように配信するかです。ストリーミング解像度の品質が低い場合、ほとんどの消費者にとって問題となります。同様に、レイテンシが高く、コンテンツを再生する前にバッファリングやロードが長すぎるストリーミング ソリューションもうまく機能しません。
ここで RTMP が威力を発揮します。 RTMP は開発以来、ネットワーク接続が強力で十分に速い場合に限り、低遅延、最小限のバッファリング、および最高のストリーミング解像度品質の 1 つを保証してきました。
RTMP のもう 1 つの利点は、大きな問題なく大量のストリーミングを同時にサポートできることです。
しかし、RTMP は長年にわたって存在してきたにもかかわらず、ユーザーにとってシステムが安全ではないため、最近厳しい監視の対象となっています。
セキュリティ脆弱性がどのように発生するかは次のとおりです。
まず、RTMP プロトコルには暗号化が組み込まれていません。したがって、RTMP が使用されている間の通信やパケット転送は、無許可のグループや中間者攻撃によって盗聴される可能性があります。
RTMP のセキュリティ脆弱性の一因となったもう 1 つの要因は、そのソース コードが長い間独占的であったことです。プロプライエタリなソフトウェア(つまり、所有権と管理権がその開発者または購入者に限定されているソフトウェア)は通常、定期的にセキュリティ パッチを受け取りますが、それだけでは十分ではありません。
新しい脆弱性は頻繁に発生し、オープンソース ソフトウェアを中心に構築されたコミュニティは、比較的頻繁に、より優れたセキュリティ パッチを保証します。これは、RTMP がセキュリティ体制を強化するために見逃していたものです。
RTMP のバリエーション
RTMP のバリエーションには次のものがあります。
- リアルタイム メッセージング プロトコル サーバー (RTMPS) – 暗号化、つまりセキュア ソケット レイヤ (SSL) とトランスポート層セキュリティ (TLS) が有効になっている点と、Flash プレーヤーが有効になっているすべてのプレーヤーをサポートする点だけが RTMP とよく似ています。転送中のデータの改ざんや不正アクセスを防ぐことが重要なシナリオで使用されます。
- 暗号化されたリアルタイム メッセージング プロトコル (RTMPE) – これは、トランスポート コントロール プロトコル (TCP) とユーザー データグラム プロトコル (UDP) の両方を利用してデータを送信する、非常に多用途のストリーミング プロトコルです。また、RTMPE は、アドビ独自の暗号化を使用してすべてのデータ送信を暗号化し、不正アクセスや改ざんを回避します。
- リアルタイム メッセージング プロトコル トンネル (RTMPT) – RTMPT は、通常すべての RTMP トラフィックをブロックするファイアウォールをバイパスするトンネリング メカニズムを採用します。実際には、RTMPT では、クライアントが変更された HTTP リクエストをサーバーに送信する必要があり、サーバーはほぼ同様の HTTP 送信で応答します。クライアントとサーバーはセッション ID を使用します。接続が確立されると、両者の間でデータ送信が開始されます。
- リアルタイム メディア フロー プロトコル (RTMFP) – RTMFP は、異なるエンコード形式 UDP を採用して高パフォーマンスのメディア ストリーミングを実現するという点で、RTMP のステップアップ バージョンです。
RTMP ストリーミングの歴史
リアルタイム メッセージング プロトコル (RTMP) は、当初、インターネットを介して Flash プレーヤーとサーバーの間でオーディオ、ビデオ、データをストリーミングするために Macromedia によって開発された独自のプロトコルでした。
RTMP は現在、Facebook、Twitch、Twitter などの多数の人気オンライン サービスでライブ ビデオ ストリーミングに使用されています。
RTMP の最初の公開リリースは 2002 年でした。2009 年に、Adobe は OpenRTMP として知られる RTMP のオープン仕様バージョンをリリースしました。 RTMP と OpenRTMP の主な違いは、OpenRTMP では、Flash Media Server (FMS) だけでなく、任意のメディア サーバーを使用できることです。
また、開発者がピアツーピア機能を保護または構成する方法に関して、オープン RTMP 仕様により柔軟性が向上しました。これは、理想的な RTMP ソリューションを開発するために、開発者間の競争とオープン アクセスを通じてイノベーションとコラボレーションを促進することを目的としています。
主な原則
RTMP は「ストリーミング」と呼ばれる技術を使用してコンテンツを配信します。つまり、データは「チャンク」と呼ばれる小さな単位で転送されます。チャンクは相手側で再組み立てされるため、ユーザーは完全にダウンロードされるまで待たずにコンテンツを見たり聞いたりすることができます。
RTMP の動作には、ファーストマイル配信とラストマイル配信の 2 つの部分があります。
ファーストマイル配信には通常、RTMP を使用してエンコーダーからサーバーにメディアを送信することが含まれます。ラストマイル配信とは、サーバーからユーザーのデバイスにメディアを送信することを指します。この 2 番目のパートでは、Flash プレーヤーまたは同等の機能を備えたツールが使用されます。 Adobe が Flash のサポートをすべて終了するとの報告があります。したがって、これはラストマイル配送の終焉を意味します。
これに応えて、業界はより効率的なストリーミング ソリューションであるハイパーテキスト転送プロトコル (HTTP) を採用しました。
RTMPT などの RTMP バリエーションは現在、HTTP を使用してメディアをカプセル化して送信します。
RTMP 取り込みの仕組み
これはおそらく RTMP がこれほど長く続いてきた救いの 1 つです。世界がコンピュータでのメディア視聴からモバイル視聴へと移行するにつれ、RTMP は課題に直面しました。
1 つは、RTMP は Adobe Flash Player に依存してシームレスなストリーミング エクスペリエンスを提供していましたが、わずかな問題がありました。モバイル デバイスは Adobe Flash Player をサポートしていませんでした。本質的に、モバイル デバイスで同じストリーミング サービスを必要とするユーザーにとって、RTMP は役に立たなくなりました。
それに応えて、Apple はモバイル デバイス上のストリーミング機能をサポートする HLS プロトコルを開発しました。
RTMP が廃止されると予想するのは当然のことでした。幸いなことに、RTMP 取り込みは存続し、エンコーダーからサーバーにメディアを転送するための理想的なプロトコルとしてそのニッチな分野を生み出しました。
RTMP 取り込みは、低コストのエンコーダを優先して機能させ、通常は低遅延のストリーミングをユーザーに提供します。
これには、次の 3 つの主要なコンポーネントが含まれます。
1.握手
クライアントが RTMP サーバーに接続する場合は、まずハンドシェイクを確立する必要があります。このプロセスは、クライアントがサーバーに「接続」リクエストを送信することから始まります。これには、クライアントに関する情報と、確立しようとしている接続の種類が含まれます。
その後、サーバーは「接続済み」メッセージで応答します。これには、サーバーに関する情報と、確立された接続の種類が含まれます。
最後に、クライアントとサーバーはメッセージを交換して、両方がまだ接続されていることを確認し、接続に必要なパラメータをネゴシエートします。
2.つながり
RTMP 取り込み接続の主な目的は、ソースから宛先にメディア コンテンツをストリーミングする手段を提供することです。
メディア ソースは、ライブ カメラ フィード、事前に記録されたビデオ、オーディオ、またはその他のメディアです。宛先は通常、コンテンツを視聴者に配信するストリーミング メディア サーバーです。
RTMP 取り込み接続には 3 つのコンポーネントがあります。
- エンコーダーは、ビデオ信号とオーディオ信号を、インターネット経由で転送できるデジタル形式に変換します。
- トランスポート:これは、エンコードされた信号がエンコーダーからサーバーに送信される媒体です。通常、これは UDP または TCP 経由で行われます。
- サーバーはエンコードされた信号を受信し、視聴者が利用できるようにします (通常は、Flash などの形式にパッケージ化します)。
3.ストリーミング
ユーザーがコンテンツをメディア サーバーにストリーミングする場合、サーバーは、接続されているすべてのクライアントに送信する前に、受信したビデオとオーディオ フィードをまずエンコードする必要があります。
ビデオとオーディオを標準ファイル形式にエンコードおよび再フォーマットするプロセスは、トランスコーディングと呼ばれます。これには、入力信号をさまざまなデバイスで再生できる形式に変換することが含まれます。
ストリーミングの詳細 ストリーミングには、ライブとオンデマンドの 2 種類があります。ライブ ストリーミングはリアルタイムでのブロードキャストを指しますが、オンデマンド ストリーミングはユーザーがコンテンツを便利に視聴できる場合のことです。
ライブ ストリーミングではクライアントとサーバー間の常時接続が必要ですが、オンデマンド ストリーミングではその必要はありません。
RTMP は TCP を使用してクライアントとサーバー間の永続的な接続を維持し、低遅延のストリーミングを可能にします。ただし、RTMP はオンデマンド ストリーミングにはあまり適していません。
取り込み用の RTMP 代替手段
SRT と WebRTC は、RTMP 機能と同等かそれを超える可能性がある主要な候補です。以下に 2 つの選択肢の簡単なプレビューを示します。
セキュアで信頼性の高いトランスポート (SRT)
SRT は、ユーザーが比較的信頼性の低いネットワークに接続している場合でも低遅延ストリーミングを維持するなど、RTMP が管理できなかったギャップを埋めます。これは、ライブ ストリーミングとオンデマンド ストリーミングの両方に優れた選択肢であることを示しています。
オープンソースであるため、機能の制限は無限であり、開発サポートが打ち切られる心配はありません。
Web リアルタイム通信 (WebRTC)
WebRTC はブラウザベースのパブリッシングで勝利を収めています。 WebRTC HTTP Ingest Protocol (WHIP) も開発中です。これがユーザーにとって意味することは、RTMP のようにエンコーダを気にすることなく、Web ブラウザだけでストリーミングできるようになるということです。
下り用の RTMP 代替手段
RTMP 下りの代替手段リストのトップは、HTTP ライブ ストリーミング (HLS)、MPEG-DASH、WebRTC です。
以下に代替案の簡単なプレビューを示します。
HLS と MPEG-DASH
これら 2 つは実質的に同じですが、HLS が独自仕様であるのに対し、MPEG-DASH はオープンソースであるという点が異なります。
この 2 つの優れた点は、低遅延で最適なメディア品質を提供し、信頼性の低いネットワーク接続でも動作するように設計されていることです。
WebRTC は、RTMP 下りソリューションの注目すべき代替手段でもあります。
RTMP と Flash は消滅するのでしょうか?
簡単に言うと、おそらくそうではありません。長い答えはもう少し複雑です。
HTML5 の人気が着実に高まり、Flash の有能な代替手段が急増しているため、RTMP と Flash は消滅しつつあるように思われるかもしれません。しかし、そうではありません。
Flash はここしばらく衰退しており、近年 HTML5 に大幅な市場シェアを奪われており、ビデオの世界でかつては支配的であった Flash の地位は現在、常に脅威にさらされています。
それにもかかわらず、Web 上では依然として重要な存在感を示しており、YouTube や Facebook などの多くの人気サイトで使用されています。
RTMP に関しては、オーディオおよびビデオ コンテンツのストリーミングに今でも広く使用されています。ただし、その将来は Flash よりも不確実です。
Adobe は 2020 年に RTMP のサポートを終了すると発表しました。これにより、このプロトコルは終了する可能性があります。それにもかかわらず、RTMP に基づく代替手段は数多くあるため、今後何年にもわたって何らかの形で使用され続ける可能性があります。
それでは、RTMP を使用してストリーミングする必要がありますか?
それは状況によります。 RTMP を使用するメリットとデメリットをいくつか見てみましょう。
長所
- とても安定しています。市場の他の代替手段と比較して、RTMP 対応サービスの使用中に中断やダウンタイムが発生する可能性はほとんどありません。
- 低レイテンシーと最小限のバッファリング。この点で RTMP は独特です。つまり、ユーザーはより高い解像度で動画を視聴でき、メディアの読み込みにかかる時間が大幅に短縮されます。
- 互換性。 RTMPS の堅牢で信頼性の高い性質により、より多くのメーカーが RTMP と簡単に統合できるように製品を設計するようになりました
短所
- RTMP ではクライアントとサーバー間の永続的な接続が必要ですが、ネットワークが中断された場合に問題が発生する可能性があります
- 独自のソフトウェアであるため、パワーユーザーにとっては柔軟性がほとんどありません。
よくある質問
RTMP 経由のストリーミングに Wave.video を使用するにはどうすればよいですか?
RTMP 経由でビデオをストリーミングしたい場合は、Wave.video が最適なオプションです。使用方法は次のとおりです。
<オル>

手順はこれだけです。すばやく簡単です。
RTMP をサポートするエンコーダはどれですか?
RTMP をサポートするエンコーダ ハードウェアとソフトウェアは数多くあります。そのうちのいくつかは次のとおりです。
- Adobe メディア エンコーダー
- OBS スタジオ
- エレメンタルサーバー
- トライキャスター
- ワイヤーキャスト
- vミックス
- テラデク
- Wowza ストリーミング エンジン
- ナイアガラのビデオ
RTMP と RTSP – どちらが優れていますか?
RTMP と RTSP は、インターネット上でオーディオ、ビデオ、データをストリーミングするためのプロトコルです。これらは多くの点で似ていますが、いくつかの重要な違いにより、さまざまな状況や好みに最適です。
以下に、この 2 つの主な違いを簡単にまとめます。
- RTMP はライブ ストリーミングに適しており、RTSP はオンデマンド ストリーミングに適しています。
- RTMP はレイテンシが低く、RTSP は高品質のビデオを提供できます。
- RTMP には Flash メディア サーバーが必要ですが、RTSP は任意のメディア サーバーで動作します。
それでは、どのプロトコルが優れているのでしょうか?すべてはお客様の具体的なニーズに応じて決まります。
低遅延が必要で、Flash の使用を気にしない場合は、RTMP が良い選択です。 RTSP は、高品質のビデオが必要な場合、または非 Flash メディア サーバーを使用したい場合に最適です。
アクション メッセージ フォーマット (AMF) とは何ですか?
AMF は、インターネット上でデータをエンコードして送信するためのバイナリ形式であり、RTMP と組み合わせて使用されることがよくあります。
AMF を使用すると、ActionScript オブジェクトなど、RTMP と互換性のないデータを送信できます。また、Flash アプリケーションとサーバーの間でデータを効率的に交換できるようになります。
RTMP URL とは何ですか?また、Facebook や YouTube からそれを取得する方法は何ですか?
RTMP URL は、ライブ ビデオ コンテンツをさまざまなプラットフォームにストリーミングするために使用される一意の識別子です。
通常、これには IP アドレス、ドメイン名、ポート番号が含まれます。
YouTube または Facebook からライブ ストリーミング イベントを取得するには、いずれかのプラットフォームでライブ ストリーミング イベントを作成する必要があります。これを完了すると、イベントの設定で RTMP URL を見つけることができるようになります。
最終的な考え
RTMP は間違いなく世界にその名を残しています。出発途中ですか?出力ソリューションとしては、おそらくまったく取り込まないでください!
同等またはそれ以上の機能を備えた代替手段が登場しても、RTMP はメディア送信やストリーミングにおいて今後も重要な役割を果たし続けるでしょう。
ニュースレターにご参加ください – 無料です!
良いものだけを投稿します