🏝️

RTSPを少し深掘り

2023/08/27に公開

ネットワークカメラを使ったサービスに関わったこと際にRTSPについて気になって調査した内容のまとめ。

映像送信までのざっくりとしたステップは以下。

  1. 接続(RTSP)

    • クライアントに映像を送る前の準備段階
  2. 映像などのデータ送信(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