Tapo C200をスマホアプリ以外から見たい人や、go2rtcを使ってWi-Fiカメラ映像をブラウザで確認したい人向けの実例記事です。

・WebRTC(Web Real-Time Communication)の1つ、「go2rtc」をDockerでUbuntuにインストールし、web上からWi-Fiカメラの映像を視聴できることを確認した。
・Tapoのスマホアプリを利用しなくても、カメラ映像を見れるようになった。
・2台以上の端末から同時にカメラ映像を見てもカメラが安定動作するようになった。
・何はともあれ、Wi-Fiカメラの使い勝手がよくなった!

Wi-Fiカメラの映像をなんとかアプリ経由以外で見れるようにしたいなと思い、調べてみました!
「go2rtc」というソフト、WebRTC(Web Real-Time Communication)を使って、ブラウザで映像を低遅延で見ることができるものがあるみたいなので、さっそく試してみました。
2端末から同時にみてもカメラに負荷をかけないといことで、安定的に視聴できるのではと期待しています。

Tapo C200(Wi-Fi)
Ubuntu 22.04.5 LTS
Docker version 29.3.1

①Tapoのアプリから、該当するカメラを選択し、高度な設定から「カメラのアカウント」を有効にし、ユーザ名とパスワードを設定しました。
②カメラのURLを直接入力して、映像が出ることを確認しました。

Dockerでgo2rtcを入れていきましょう。
過去の記事でDockerはインストール済みということで作業を進めていきます。
音楽ストリーミングサービス『Navidrome』をDockerで導入した話

①プロジェクトディレクトリの作成
go2rtcの設定ファイルを管理するフォルダを作成し、そこへ移動します。

mkdir -p ~/go2rtc
cd ~/go2rtc

②go2rtc.yamlファイルで、どのカメラの映像を取り込むかを指定します。

vi go2rtc.yaml

streams:
# 「tapo_camera」は好きな名前に変えられます
# [user] [pass] [ip] を自分の環境に書き換えてください
tapo_camera:
- rtsp://user:pass@192.168.1.50:554/stream1

③docker-compose.yml の作成

services:
go2rtc:
image: alexxit/go2rtc
container_name: go2rtc
network_mode: host # ポート開放の手間を省くためホストモードを推奨
restart: always
volumes:
- ./go2rtc.yaml:/config/go2rtc.yaml # 設定ファイルの紐付け

④go2rtcの起動

sudo docker compose up -d

⑤動作確認

起動後、ブラウザで以下のURLを開いてダッシュボードを確認します。
http://[サーバーのIPアドレス]:1984

先ほど設定したtapo_cameraという名前がリストにあります。
「stream」を押して、Wi-Fiカメラから映像が確認できたら完了です。

②の項目であった、「stream1」と「stream2」の違いについて。
Tapo C200の場合、URLの末尾を
stream1にすると高画質
stream2にすると低画質
になるようです。
外出先から見るときはstream2、家で高画質で見るときにはstream1、という風に使い分けるといいですね。
もし映像が出ない場合は、カメラのアカウント設定が間違っていないか、カメラのIPアドレスが固定されているかを確認してみてください。

普段から感じていたアプリの不便さを「go2rtc」を使うことで解消することができました。
導入後、Wi-Fiカメラの不安定も感じるが無くなったので、もしかすると家族と同時に視聴するタイミングがあったからかもしれません。
複数から同時にカメラ映像を視聴しても、Wi-Fiカメラに負荷をかけなくてすむのは、とてもいいです。
監視カメラのように24時間録画もできると楽しそうですね。
現在はローカルネットワーク内での運用に限定し、利便性重視にしています。
もし外部公開するようであれば、セキュリティ対策をする必要がありますね。

WebRTCとしては、もっと他に楽しい使い方がありそうなので、試してみたらまた報告しますね。