rtmpとは?
* 目的: RTMPはもともと、Adobe Systemsによって、サーバーとフラッシュプレーヤーの間のインターネット上でオーディオ、ビデオ、およびデータをストリーミングするために設計されていました。
* それがどのように機能するか: RTMPはTCPベースのプロトコルです。つまり、信頼できる順序付けられたデータの配信を提供します。永続的な接続を使用して、各リクエストの新しい接続を確立するプロトコルと比較してオーバーヘッドを減らします。
* 重要な機能:
* 低レイテンシ: RTMPは、インタラクティブなアプリケーションに重要な、低レイテンシストリーミング用に設計されています。
* 多重化: 単一の接続で複数のストリーム(オーディオ、ビデオ、データ)を多重化できます。
* ハンドシェイク: 信頼できる接続を確立するための握手プロセスがあります。
* 公開と再生: サーバーにストリームを公開するためのメカニズム(エンコーダーなど)とサーバーからストリームを再生する(たとえば、フラッシュプレーヤー)を定義します。
rtmpのライブストリーミングにおける役割
1。 Ingest(Publishing): RTMPは、エンコーダー(例:OBS Studio、WireCast、Hardware Encoders)からライブストリームを取得するための *支配的なプロトコルでした。 これは、「RTMP Ingest」または「RTMP Publishing」と呼ばれます。
2。分布(再生): 過去には、RTMPは、視聴者のフラッシュプレーヤーにストリームを *配信 *するための主要なプロトコルでもありました。 ただし、これは今では大部分が時代遅れです(以下の詳細)。
なぜRTMPが今日の再生ではあまり一般的ではないのか
* フラッシュプレーヤーの終mise: Adobe Flashプレーヤーの衰退と最終的な終末期が主な理由です。 RTMPはフラッシュとしっかりと結合されていました。 最新のブラウザとデバイスは、デフォルトではフラッシュをサポートしなくなりました(またはまったく)。
* より良い代替手段: HLS(HTTPライブストリーミング)やDASH(HTTPを介した動的適応ストリーミング)などのプロトコルは、再生によりはるかに人気が高まっています。 これらはHTTPベースで、よりファイアウォールに優しい、適応的なビットレートストリーミングを提供します(視聴者のインターネット接続に基づいてビデオ品質の調整)。
rtmpバリアント
* rtmp: 基本的なTCPベースのプロトコル。 デフォルトでポート1935を使用します。 ファイアウォールの問題が発生しやすい。
* rtmps: SSL/TLSを超えるRTMP。 RTMPの暗号化されたバージョンで、より安全になります。 多くの場合、ポート443を使用します。多くの場合、HTTPSで使用されているポートと同じポートが使用され、ファイアウォールトラバーサルに役立ちます。
* rtmpe: 暗号化付きRTMP(ただし、SSL/TLSではありません)。 rtmpsよりも一般的ではありません。
* rtmpt: rtmpはHTTPでトンネルしました。直接RTMP接続がファイアウォールによってブロックされるときに使用されます。 より重く、効率が低い。
rtmpの現在の使用法
* まだ関連性があります: 再生の減少にもかかわらず、RTMP(特にRTMP)は依然として *Ingest *に広く使用されています。 多くのストリーミングプラットフォームとサービスは、エンコーダーから初期のライブストリームを受信する方法としてRTMPを受け入れています。 確立された信頼できる方法です。
* トランスコーディングと分布: ストリーミングプラットフォームは、通常、RTMPがさまざまなデバイスやブラウザの視聴者に配布するために、RTMPが他の形式(HLS、DASHなど)にストリーミングする *トランスコード *を *トランスコード *します。
他の重要なライブストリーミングプロトコル
* HLS(HTTPライブストリーミング): Appleによって開発されました。 HTTPベースの適応ビットレートストリーミングプロトコル。 ストリームを小さなセグメントに分割します(通常は10秒)。 iOS、Android、デスクトップブラウザー、スマートテレビで非常に広くサポートされています。 再生の事実上の基準。他のオプションと比較して、より高い遅延(多くの場合15〜30秒)に苦しむことができますが、低遅延のバリアントが出現しています。
* dash(HTTP上の動的適応ストリーミング): HLSと同様のオープン標準。 また、HTTPベースの適応ビットレートストリーミングプロトコル。 広くサポートされていますが、HLSには一般的に市場シェアが大きくなります。
* webrtc(Webリアルタイム通信): Webブラウザーでのリアルタイムのピアツーピア通信のプロトコル。 非常に低いレイテンシストリーミング(サブ秒)をサポートします。 HLSやDASHよりもセットアップとスケーリングがより複雑です。インタラクティブなストリーム、ビデオ会議、リアルタイムアプリケーションに一般的に使用されます。マルチパーティストリームには、選択的転送ユニット(SFU)が必要です。
* srt(安全な信頼できる輸送): 予測不可能なネットワーク上のストリーミングパフォーマンスを最適化するオープンソーストランスポートプロトコル。 エラーの修正と信頼性に焦点を当てています。 INGESTのRTMPの代替として使用できます。その堅牢性でますます人気があります。
* ndi(ネットワークデバイスインターフェイス): NewTekが開発したビデオオーバーIPプロトコル。 主に、ローカルネットワーク(LAN)のプロのビデオ生産環境に使用されます。 同じネットワーク上のデバイス間の高品質で低遅延のビデオおよびオーディオ伝送を可能にします。 通常、インターネットベースのライブストリーミングに直接使用されていませんが、ビデオ信号をRTMPエンコーダーに取得するために使用できます。
* cmaf(一般的なメディアアプリケーション形式): HLSやDASHなどのさまざまなストリーミングプロトコルにわたって、ビデオとオーディオのエンコード、セグメンテーション、暗号化を標準化することにより、オンラインメディア配信の複雑さを軽減するように設計されたコンテナ形式。 これにより、HLSとDASHの両方にエンコードされたメディアファイルの単一セットを使用して、ワークフローを簡素化し、ストレージのニーズを削減できます。
プロトコルを選択する際の重要な考慮事項
* レイテンシ: ストリームはどのくらい早く視聴者に到達する必要がありますか? (webrtcは最も低く、次にSRT、次にrtmp、次にhls/dash)
* スケーラビリティ: 何人の視聴者がいますか? (HLS/ダッシュは大規模な聴衆に最適です)
* 互換性: どのデバイスとブラウザをサポートする必要がありますか? (HLS/ダッシュは非常に広くサポートされています)
* 信頼性: ストリームが低下したり、エラーがないことがどれほど重要ですか? (SRTは信頼できないネットワーク用に設計されています)
* セキュリティ: 暗号化は必要ですか? (RTMPSは暗号化を提供します)
* ファイアウォールの親しみやすさ: (HLSやDASHなどのHTTPベースのプロトコルは、一般的に最もファイアウォールに優しいものです)
* 複雑さ: プロトコルはセットアップと管理がどれくらい簡単ですか? (RTMPは摂取に比較的簡単で、HLS/ダッシュはより成熟した生態系を持っています)
* Bitrate: ストリーミングビデオビットレートは、ビデオ品質の鍵です。ビットレートが低いとピクセル化が生じ、ビデオの品質が低下します。より高いビットレートはレイテンシを増加させる可能性があり、ワイヤレス上でストリーミングするのがより困難です。
要約:
* rtmpは、 * gest *(サーバーにストリームを取得)に引き続き関連しています。
* HLSとDASHは、 *再生 *の支配的なプロトコルです(視聴者にストリームを配信します)。
* WeBRTCは、非常に低い遅延のインタラクティブなストリームに使用されます。
* SRTは、信頼性の低いネットワークよりも信頼性の高いストリーミングを提供します。
*特定のニーズに基づいて適切なプロトコルを選択します。
また、新しいプロトコルとテクノロジーが出現している状態で、景観が常に進化していることも注目に値します。情報に基づいた決定を下すために、ライブストリーミングの最新の開発を最新の状態に保ちます。