Real Time Streaming Protocol

Real Time Streaming Protocolは IETF において標準化されたリアルタイム性のあるデータの配布  を制御するためのプロトコルである。ストリーミングデータ自体の配信を行なうためのプロトコルではない。1998年4月にその最初の版が[1]として標準化されたが、様々な問題点があることが指摘され、改訂が続けられている。2016年にReal-Time Streaming Protocolバージョン2.0が[2]として標準化された。

1. 概要
-----

RTSP は音声 、映像  などのマルチメディア・データを含むサーバを遠隔操作するためのプロトコルであり、テープレコーダのように再生、停止、記録  などの操作ができる 。SIP  とは違って RTSP においてはサーバとクライアントとが明確に区別され、データの流れは基本的にサーバからクライアントへの一方向であるが、サーバからクライアントに送付する要求も定義されている。すなわち、要求-応答モデルとしてみると、サーバとクライアントの役割が逆転することもある。

サーバからクライアントへのデータ転送  には通常Real-time Transport Protocol  が使用されるが、それに限定されてはいない。RTSP によって制御されるデータの流れに関しては "RTSP セッション" が存在するが、RTSP 自体には、SIP と同様にセッションの概念はない。SIP と同様、RTSP も HTTP  に似せてある。RTSP の下位のプロトコルとしては、SIP とは違って、TCP  のように高信頼なプロトコルの使用が前提とされている。ただし、RTSP の改訂にあたっては低信頼なプロトコルを使用できるようにする方向性が示されている。

RTSP がサポートする操作は次の3つである。

1. メディアサーバからのメディアの取り出しRTSP を使用してメディア・データを取り出すことができる。そのきっかけとしてよくあるのは WWW においてメディアへのリンクをクリックすることであり、この場合プレゼンテーションの記述は HTTP によってメディアサーバに与えられる。

2. メディアサーバをセッションに参加させることマルチメディアセッションにおいてメディアを再生したり、セッションを記録したりするために RTSP を使用してメディアサーバをセッションに参加させることができる。セッション自体の制御はたとえば SIP によって行なわれる。

3. メディアをプレゼンテーションに加えることRTSP を使用して、特にライブ・プレゼンテーションにおいて、メディアをプレゼンテーションに参加させることができる。 RTSP を扱うメディアサーバは RTSP セッションの状態を管理する必要がある。

2326}} にはセキュリティに関する記述がわずかしかないが、改訂中の仕様date=2021-03}}においてはセキュリティやプライバシーを守るための機構についても記述されている。

2. RTSP における標準的なシーケンス
---------------------

以下の例は改訂中の仕様date=2021-03}}から引用したものであり、クライアント C がメディアサーバ V  および A  から映画を受け取るときのシーケンスである。メディア記述は Web サーバ W に格納されている。

C-W: GET /twister.sdp HTTP/1.1 Host: www.example.com Accept: application/sdp

W-C: HTTP/1.0 200 OK Date: 23 Jan 1997 15:35:06 GMT Content-Type: application/sdp

v=0 o=- 2890844526 2890842807 IN IP4 192.16.24.202 s=RTSP Session e=adm@example.com m=audio 0 RTP/AVP 0 a=control:rtsp://audio.example.com/twister/audio.en m=video 0 RTP/AVP 31 a=control:rtsp://video.example.com/twister/video

C-A: SETUP rtsp://audio.example.com/twister/audio.en RTSP/1.0 CSeq: 1 User-Agent: PhonyClient/1.2 Transport: RTP/AVP/UDP;unicast;client_port=3056-3057

A-C: RTSP/1.0 200 OK CSeq: 1 Session: 12345678 Transport: RTP/AVP/UDP;unicast;client_port=3056-3057; server_port=5000-5001

C-V: SETUP rtsp://video.example.com/twister/video RTSP/1.0 CSeq: 1 User-Agent: PhonyClient/1.2 Transport: RTP/AVP/UDP;unicast;client_port=3058-3059

V-C: RTSP/1.0 200 OK CSeq: 1 Session: 23456789 Transport: RTP/AVP/UDP;unicast;client_port=3058-3059; server_port=5002-5003

C-V: PLAY rtsp://video.example.com/twister/video RTSP/1.0 CSeq: 2 User-Agent: PhonyClient/1.2 Session: 23456789 Range: smpte=0:10:00-

V-C: RTSP/1.0 200 OK CSeq: 2 Session: 23456789 Range: smpte=0:10:00-0:20:00 RTP-Info: url=rtsp://video.example.com/twister/video; seq=12312232;rtptime=78712811

C-A: PLAY rtsp://audio.example.com/twister/audio.en RTSP/1.0 CSeq: 2 User-Agent: PhonyClient/1.2 Session: 12345678 Range: smpte=0:10:00-

A-C: RTSP/1.0 200 OK CSeq: 2 User-Agent: PhonyClient/1.2 Session: 12345678 Range: smpte=0:10:00-0:20:00 RTP-Info: url=rtsp://audio.example.com/twister/audio.en; seq=876655;rtptime=1032181

C-A: TEARDOWN rtsp://audio.example.com/twister/audio.en RTSP/1.0 CSeq: 3 User-Agent: PhonyClient/1.2 Session: 12345678

A-C: RTSP/1.0 200 OK CSeq: 3

C-V: TEARDOWN rtsp://video.example.com/twister/video RTSP/1.0 CSeq: 3 User-Agent: PhonyClient/1.2 Session: 23456789

V-C: RTSP/1.0 200 OK CSeq: 3

3. 外部リンク
--------

2326}} - Real-Time Streaming Protocol
4566}} - Session Description Protocol