RTSPを少し深掘り
ネットワークカメラを使ったサービスに関わったこと際にRTSPについて気になって調査した内容のまとめ。
映像送信までのざっくりとしたステップは以下。
-
接続(RTSP)
- クライアントに映像を送る前の準備段階
-
映像などのデータ送信(RTP)
- 送りたいデータを実際に送る段階
1 接続(RTSP)
シーケンス
キャプチャ (クライアントはffmpeg、サーバはネットワークカメラ)
-
RTSP Option
サーバ側に対してリクエストする。
https://www.rfc-editor.org/rfc/rfc7826#section-13.1
キャプチャの結果だと2回送っているのは、1回目で認証されなかったため、2回目でパスワードを付けてリトライしているためと思われる。
サーバは利用可能なメソッドの情報をレスポンスとして返す。
-
RTSP Describe
サーバ側に対してリクエストする。
サーバはサーバが送信するメディアおよびプレゼンテーション層情報を返す。
https://www.rfc-editor.org/rfc/rfc7826#section-13.2
以下のキャプチャではクライアントがAccept: application/sdp
で返信のフォーマットをsdpで指定している。
サーバは以下のようなメディアの情報をクライアントに返すことでクライアントはサーバが対応しているメディアを知ることができる。
-
RTSP SetUp
メディアを送信する際に使用するプロトコルやクライアントが使用するポートを指定する。
基本的にはDescribe
でゲットした情報を元にサーバが対応しているプロトコルを選んで指定すると思われる。
https://www.rfc-editor.org/rfc/rfc7826#section-13.3
以下のキャプチャではDescribe RTP/AVP/UDP
サーバはサーバが使用するポートなどの情報を返す。
-
RTSP Play
SetUp
で設定したプロトコルでメディアの送信をスタートするように連絡。
https://www.rfc-editor.org/rfc/rfc7826#section-13.4
2 データ送信(RTP)
シーケンス
調べきれてないのでいつか続きまとめる。
Discussion