メインコンテンツまでスキップ

Appendix D: Minimal RTSP implementation (最小 RTSP 実装)

Appendix D: Minimal RTSP implementation (最小 RTSP 実装)

D.1 Client (クライアント)

クライアント実装は次ができなければならない (MUST):

  • 次のリクエストを生成: SETUP, TEARDOWN, および PLAY (最小再生クライアント) または RECORD (最小録画クライアント) のいずれか。RECORD を実装する場合 ANNOUNCE も実装しなければならない。
  • リクエストに次のヘッダーを含める: CSeq, Connection, Session, Transport。ANNOUNCE を実装する場合 Content-Language, Content-Encoding, Content-Length, Content-Type も含められること。
  • 応答の次のヘッダーを解析し理解する: CSeq, Connection, Session, Transport, Content-Language, Content-Encoding, Content-Length, Content-Type。RECORD を実装する場合 Location も理解しなければならない。RTP 準拠実装は RTP-Info も実装すべき。
  • 受信したエラーコードのクラスを理解し, end-user (エンドユーザ) がいれば 4xx と 5xx を通知する。ユーザが明示的に不要としたステータスでは通知要件を緩めてよい。
  • ANNOUNCE などサーバーからの非同期リクエストに備え応答する。ANNOUNCE メソッドを実装する必要は必ずしもないが, サーバーから受け取ったリクエストには肯定または否定で応答しなければならない (MUST)。

必須ではないが, 公開時点で初期実装との実用相互運用および「良き市民」のために強く推奨:

  • RTP/AVP/UDP を有効トランスポートとして実装。
  • User-Agent ヘッダーを含める。
  • 付録 C に従い SDP セッション記述を理解。
  • 標準入力, コマンドライン等から媒体初期化形式 (SDP 等) を受け付け, 他アプリケーション (Web ブラウザ等) のヘルパとして動作。

RTSP 仕様作成者が当初想定したものと異なるアプリケーションもあり, 上記は厳密要件ではなく指針にすぎない。

D.1.1 Basic Playback (基本再生)

オンデマンドストリーム再生をサポートするには, さらに MUST:

  • PAUSE リクエストを生成;
  • REDIRECT メソッドと Location ヘッダーを実装。

D.1.2 Authentication-enabled (認証対応)

認証を要するサーバー上のプレゼンテーションにアクセスするには, さらに MUST:

  • 401 ステータスを認識;
  • WWW-Authenticate を解析し含める;
  • Basic Authentication と Digest Authentication を実装。

D.2 Server (サーバー)

最小サーバー実装は次ができなければならない (MUST):

  • 次のメソッドを実装: SETUP, TEARDOWN, OPTIONS, および PLAY (最小再生サーバー) または RECORD (最小録画サーバー) のいずれか。RECORD を実装する場合 ANNOUNCE も実装すべき。
  • 応答に次を含める: Connection, Content-Length, Content-Type, Content-Language, Content-Encoding, Transport, Public。RECORD なら Location を含められること。RTP 準拠なら RTP-Info。
  • リクエストの Connection, Session, Transport, Require を解析し適切に応答。

推奨: RTP/AVP/UDP, Server ヘッダー, DESCRIBE, 付録 C に従う SDP 生成。応用が異なれば指針にとどまる。

D.2.1 Basic Playback

オンデマンドにはさらに MUST: Range を認識しシーク非対応ならエラー; PAUSE を実装。推奨: NPT の Range (SMPTE 推奨), 媒体初期化に長さ, データタイムスタンプから NPT への写像 (RTP では RTP-Info の rtptime)。クライアントは長さでシーク可否を判断しスライダーを実装しうる。

D.2.2 Authentication-enabled

クライアント認証にはさらに MUST: 必要時 401, WWW-Authenticate の解析と含める, Basic と Digest 認証の実装。