RTSP(Real Time Streaming Protocol)とは?ネットワークカメラに関する知識
こんにちは!
株式会社システム・ケイ新人のクッキーです。
ネットワークカメラについて調べると、
「RTSPプロトコル」「RTSP配信」などといった言葉を目にすることがあると思います。
今回は、RTSPとは何か、ネットワークカメラにどうしてこれが必要なのか、といったお話です。
RTSP (Real Time Streaming Protocol)とは?
RTSPは、リアルタイムに映像・音声を配信する為の通信ルール
RTSPとは何でしょうか?
以前、「HTTP(Hyper Text Transfer Protocol)とは、ネットワークカメラとの関係」の記事で、
コンピューター同士の通信は、必ず何らかのルール(プロトコル)に則って行われるというお話をしました。
RTSPもそのルール(プロトコル)一つで、映像・音声の配信を行う為のルールになります。
より正確には、「映像・音声のリアルタイムなストリーミング配信を制御する為のプロトコル」です。
「Real Time」の名前の通り、映像をリアルタイムに遅延なく配信することを得意としている為、
ほとんどのネットワークカメラがこの方式で映像をNVRやVMSに配信しています。
つまりRTSPとは、
カメラ(サーバー)が、NVRやVMS(クライアント)に対して映像を配信する際に使われるルールのことを言います。
また、RTSPによって映像を配信するコンピューターのことを、
「RTSPサーバー」という呼び方をすることもあります。
RTSPサーバーとは?
よく、「Webサーバー」や「ファイルサーバー」など、
「○○サーバー」という言葉を耳にすることがあります。
そもそもサーバーとは、
何らかのサービスを外部に提供するコンピューターのことを指す名称で、
提供するサービスの種類が「○○サーバー」の「○○」の部分に当たります。
「RTSPサーバー」もその一つで、意味としては
「RTSPプロトコルを使った映像・音声の配信を行うコンピューター」という意味になります。
ネットワークカメラもコンピューターの一種なので、
RTSPによって映像配信を行うネットワークカメラは、RTSPサーバーとしての機能を持っていると言えるのです。
RTPとは?RTSPとどう違う?
ネットワークカメラの映像配信についてもう少し詳しく説明します。
ザックリとではありますが、「RTSPとは何か?」という本題は既に終わってしまいました。この時点で提出したら内容が薄いとボツを頂いたので、もう少しネットワークカメラの映像配信について掘り下げて文量を稼ごうかと思います。
先ほどは、「ネットワークカメラはRTSPを使って映像を配信している」と説明しました。
ザックリ理解ならそれで問題はないのですが、正確には少し違っています。
RTSPとよく似た名前のプロトコルにRTP(Real-time Transport Protocol)というプロトコルがあります。
このRTPがネットワークカメラの映像配信に関わってきます。
(余談:RTSPが「Real Time Streaming Protocol」なんだから、
RTPは「Real Time Transport Protocol」でRTTPじゃないのか、とよく思います。)
RTSPとRTP、「制御」と「配信」の組み合わせ
先ほどお話したように、RTSPは映像・音声の配信を「制御」する為のルールです。
「制御」とは、例えば映像・音声の配信をスタートしたりストップしたり、
録画(録音)したりなどのことです。DVDレコーダーのリモコンみたいなイメージですね。
しかし、リモコンだけがあってもDVDを見ることはできませんよね。
そこで、DVDを再生するレコーダー本体が必要になるわけですが、それにあたるのがRTPプロトコルになります。
RTPは、ネットワーク経由で映像・音声をリアルタイムに「配信」する為のルール(プロトコル)です。
ネットワークカメラでは、この2つのプロトコルの組み合わせることで、リアルタイムな映像配信を行っています。
なぜ「制御」と「配信」で分ける必要があるのでしょうか?
それは、この2つのプロトコルがTCPとUDP、どちらのプロトコルに属しているかが関係しています。
TCPとUDP
TCP、UDPとは?
完全に話が脇道にそれてきて、本題が何かを忘れ始めてきました。
「TCP」と「UDP」、この2つもインターネット関係の用語として目にする機会が多いと思います。
せっかくなので、これについても話そうと思います。
TCPとUDPもプロトコルの一種です。
ただし、RTSPやRTPが、映像・音声の「制御」「配信」に使用する、という限定的なプロトコルであるのに対して、TCPやUDPはそれらの細かいプロトコルが、「どういった性質の通信をするのか」を決める大きな括りのプロトコルになります。
RTSPやRTPが「小分類」で、TCPやUDPが「大分類」といったイメージですね。
TCP、UDPの違い
TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)は、どちらもネットワークを介したデータのやり取りをする為のルール(プロトコル)です。
特徴として、TCPは信頼性が高いが速度が遅い、UDPは高速だがデータに欠損が起きやすい、というように分類できます。
ネットワークを介したデータのやり取りには、ネットワークの遅延やノイズによるデータの欠損がつきものです。
TCP
TCPは、それを解決するために通信内容を逐一確認し、データの欠損が起きるたび、送信元にもう一度データを送り直すように要求します。
メールのやり取りで文字が所々途切れていたり、Webページを見るときに画像が途中までしか表示されていなかったりすると困りますよね。
そういった、多少遅くてもきちんとデータを送って欲しい場合は、TCPプロトコルの通信を利用します。
UDP
対してUDPはTCPと違い、相手がきちんと受け取れたかに関係なく、次々とデータを送り続けます。データを送ったら送りっぱなしの通信の為、よくデータの欠損が発生しますが、その分高速に通信を行うことができます。
動画や音声は、UDPによる通信が最も適したデータの一つです。
動画は、1秒に何十コマも画像を送り続ける為、途中の一コマが抜けていても全体に対した影響はありません。むしろ、たった一コマの為に通信をやり直し、そのたびに動画の再生が止まってしまう方がユーザーとしては困ってしまいます。
このような、完璧なデータを送ることよりも、素早く次のデータを送ることの方を重視する場合は、UDPプロトコルの通信を利用します。
RTSPはTCPプロトコル、RTPはUDPプロトコル
ようやく話がRTSPとRTPに戻ってきました。
ネットワークカメラの映像配信が、RTSP(制御)とRTP(配信)に分かれている理由です。それは、RTSPとRTPが、それぞれTCPとUDPのプロトコルに分類される為です。
配信を始めたり止めたりする制御の部分は適当ではいけないので、信頼性の高いTCP通信を使用し、速度重視の配信部分はUDP通信を使用する為に、RTSPとRTPという2つのプロトコルの組み合わせでネットワークカメラは映像を配信しているのです。
まとめ
話が脱線に脱線を重ね、本題よりも余談が長くなってしまいました。
でも、脱線したおかげで内容に深みが出たかなと自画自賛しています。
まとめると、今回のお話で重要な部分は以下の3つになります。
・ネットワークカメラは、このルールを使って映像を配信している
・実際に映像を配信する部分のルールには、RTPという別のルールが使われている
最後まで読んで頂きありがとうございました。