RTSP(Real Time Streaming Protocol)とは:定義・仕組みと主な用途
RTSPの定義・仕組み・主要用途を分かりやすく解説。RFC2326由来の動作原理やRTP連携、導入例と運用ポイントを詳述。
IETFが開発し、1998年にRFC2326として作成されたRTSP(Real Time Streaming Protocol)は、ストリーミングメディアシステムで使用するためのプロトコルであり、クライアントがストリーミングメディアサーバーを遠隔操作し、「再生」「一時停止」などのVTR的コマンドを発行したり、サーバー上のファイルに時間的にアクセスできるようにするためのものです。
ストリーミングデータの送信そのものは、RTSPプロトコルの一部ではありません。ほとんどのRTSPサーバーは、実際のオーディオ/ビデオデータのトランスポートプロトコルとして、標準ベースのRTPを使用しています。また、RealNetworks社のRTSPサーバーは、トランスポートプロトコルとしてRealNetworks社独自のRDTを採用しています。
RTSPの役割と特徴
- 制御プロトコル:RTSPはメディアの「再生」「一時停止」「停止」「シーク(位置指定)」といった制御(リモートコントロール)を行うためのプロトコルで、実際のメディアデータ転送(ペイロード)は通常RTP/RTCPなどが担います。
- ステートフル:HTTPと似たメッセージ形式(リクエスト/レスポンス)を使いますが、セッション管理(Sessionヘッダなど)を行うためステートフルに動作します。
- 時刻/位置指定:クライアントは時間ベースやバイトオフセットでのシーク、再生速度変更(トリックプレイ)などを指示できます。
- 拡張性:DESCRIBEでセッション記述(通常はSDP=Session Description Protocol)を受け取り、使用するメディア形式やトランスポートの情報を取得します。
主なRTSPメソッド(代表例)
- OPTIONS:サーバーがサポートするメソッドを問い合わせる。
- DESCRIBE:メディアの記述(SDP)を要求して、どのコーデックやストリームが利用可能かを取得する。
- SETUP:メディアストリームごとにトランスポート(RTP/UDP、RTP/TCPのインターリーブ、マルチキャストなど)を確立する。
- PLAY:指定した位置から再生を開始する。
- PAUSE:再生を一時停止する(ストリームの配信を停止するが、セッションは維持する)。
- TEARDOWN:セッションを終了してリソースを解放する。
- GET_PARAMETER/SET_PARAMETER:状態取得やパラメータ変更に使用する。
メッセージ形式とヘッダ
- RTSPはHTTPに類似したテキストベースのリクエスト/レスポンス形式を用います。各リクエストには順序を示すCSeqヘッダが付き、レスポンスはステータスコードで返されます。
- Sessionヘッダでセッション識別子を管理し、TransportヘッダでRTPの送受信方法(ポート番号、プロトコル、インターリーブの有無など)を指定します。
トランスポート(RTP/RTCPとの関係)
- RTSP自体は制御用であり、メディアのペイロードは主にRTP(Real-time Transport Protocol)が運ぶのが一般的です。RTPと対応する制御チャネルとしてRTCPが使われます。
- トランスポート方式の例:
- RTP over UDP(通常の方式、低レイテンシ)
- RTP over UDP マルチキャスト(大量配信に有利)
- RTP over TCP(NAT/ファイアウォール越えや信頼性を重視する場合。RTSP接続内にRTPをインターリーブして同じTCP接続で送る)
- 既定のRTSPポートは554です。RTP/RTCPは個別のUDPポート(またはTCPのインターリーブ)を使用します。
セッション記述(SDP)
DESCRIBEレスポンスなどで返されるSDP (Session Description Protocol) は、利用可能なメディアストリーム(音声、映像)、各ストリームのコーデック、サンプルレート、ポート情報などを記述します。クライアントはこれを基にSETUPで具体的なトランスポートを交渉します。
セキュリティと運用上の注意
- 認証:BasicやDigest認証が用いられることが多いです。
- 暗号化:RTSP自体をTLSで保護する(しばしば「RTSPS」と呼ばれる)方法や、メディアをSRTPで暗号化する方法があります。またHTTPトンネリングやTLSでの保護がファイアウォール対策で用いられます。
- NAT/ファイアウォール:UDPベースのRTPはNAT越え問題を起こしやすいため、TCPインターリーブやHTTPトンネリング、STUN/TURN等の技術と組み合わせることがあります。
典型的な利用ケース
- 監視カメラ(IPカメラ):リアルタイム監視・録画制御に広く利用されます。
- ビデオオンデマンド(VOD):サーバー側のファイルをクライアントがシーク/再生制御する用途。
- ライブストリーミングや会議システム:低遅延での配信制御や複数視聴者への配信。
- セットトップボックス/IPTV:放送系サービスでのチャネル選択や時刻移動再生など。
標準と実装例
- 初期仕様はRFC 2326(RTSP 1.0)。その後の改善を含むRTSP 2.0はRFC 7826(2016年)で定義されています。
- 代表的なサーバー・クライアント:VLC、FFmpeg/Libav、GStreamer、Wowza、Darwin/Appleのサーバーや多くのIPカメラベンダーの実装など。
短い操作シーケンス例
典型的な接続の流れは以下のようになります(簡略):
- OPTIONS(サーバーの機能確認)
- DESCRIBE(SDPを取得)
- SETUP(RTP/RTCPのポートやトランスポートを確立)
- PLAY(再生開始)
- PAUSE / TEARDOWN(停止または終了)
RTSPの位置づけと最近の動向
RTSPはリアルタイムに近い配信制御に適しており、特に監視カメラやVODで今も使われていますが、HTTPベースのHLSやDASHのような適応ビットレート配信方式が広がった結果、Web配信(ブラウザ中心)の分野ではそれらに置き換わることも多くなっています。用途やネットワーク環境に応じてRTSPとHTTPベースの配信方式を使い分けるのが現実的です。
クライアント
- Gストリーマ
- メディアプレーヤークラシック
- エムペグフォイップ
- エムピーレイヤー
- クイックタイム
- アヴィ・プレーヤー
- リアルプレイヤー
- スカイプ
- VLCメディアプレーヤー
- ウィンアンプ
- Windows Media Player
- ザイン
- MythTV via Freebox
- ゴムプレーヤー
サーバーソフトウェア
- QuickTime Streaming Server(クイックタイム・ストリーミング・サーバー)。Mac OS X Serverに同梱されているAppleのクローズドソース・ストリーミングサーバー
- Darwin Streaming Server(ダーウィン・ストリーミング・サーバー)。AppleがメンテナンスしているQuicktime Streaming Serverのオープンソース版
- pvServerです。以前はPacketVideo Streaming Serverと呼ばれていた、アルカテル・ルーセントのストリーミングサーバー製品です。
- Helix DNAサーバー。RealNetworksのストリーミングサーバー。オープンソースとプロプライエタリの両方があります。
- Live555です。VLC や mplayer などの有名なクライアントで使用されているオープンソースの C++ サーバおよびクライアントライブラリです。
- VideoLAN: オープンソースのメディアプレーヤーとストリーミングサーバー
- Windows Media Servicesの略。Windows Serverに含まれるマイクロソフトのストリーミングサーバー。
- VX30: Maui X-Streamのストリーミングビデオサーバーと組み込みJAVAクライアント。
関連ページ
- リアルタイム・トランスポート・プロトコル(RTP)
- IPTV、インターネットTV、モバイルインターネットデバイスなどの組み込みシステム向けのFusion RTSPソリューションです。
百科事典を検索する