วิธีใช้งาน go2rtc สำหรับ Home Assistant

go2rtc คือ application ที่มีความสามารถในการ streaming กล้องเกือบทุกประเภท เช่น RTSP, RTMP, WebRTC, MJPEG, FFmpeg อื่นๆ อีกมากมาย โดยความสามารถของเขา จะสามารถ restream จาก protocol: A ไปเป็น protocol: B (อ่านเพิ่มเติม)
ตัวอย่าง RTSP -> RTSP, RTSP -> MJPEG, RTSP -> WebRTC, ONVIF -> MJPEG
กล้องที่ทำการ restream ผ่านทาง go2rtc จะมีการเพิ่ม codecs เพื่อให้ support WebRTC และ MSE โดยอัตโนมัติ (อ่านเพิ่มเติม)
สำหรับวิธีติดตั้งมีหลายวิธี แต่ในบทความนี้ขอแนะนำเป็น 2 แบบ ที่ผมลองใช้งานจริง และตัวบทความเขียนตอน go2rtc version: 1.5.0
วิธีติดตั้งแบบ Home Assistant Add-on
1. Settings -> Add-ons -> Add-on Store -> repositories > Add
https://github.com/AlexxIT/hassio-addons
2. go2rtc > Install > Start
3. เข้าใช้งาน OPEN WEB UI
วิธีติดตั้งแบบ Docker
1. สร้าง docker-compose หรือ stack portainer
services:
go2rtc:
image: alexxit/go2rtc:latest
container_name: go2rtc
network_mode: host
privileged: true
environment:
- TZ=Asia/Bangkok
volumes:
- /root/go2rtc:/config # folder for go2rtc.yaml file (edit from WebUI)
restart: unless-stopped
2. เข้าใช้งาน http://{{IP_HOST}}:1984
วิธีใช้งาน go2rtc
เมื่อเราเข้าไปที่ WebUI จะมีเมนูให้เราใช้งานหลักคือ Streams กับ Config

- Streams สำหรับทดสอบ stream
- Config สำหรับแก้ไข configuration
วิธีแก้ไข Configuration
สำหรับวิธีแก้ไขตัว Configuration ให้เข้าไปที่เมนู Config จะเป็นการเขียนรูปแบบ yaml เมื่อเขียนเสร็จสามารถกดปุ่ม Save & Restart และกลับมาทดสอบที่เมนู Streams (อ่านเพิ่มเติม)
ตัวอย่าง Source: RTSP -> To: RTSP
streams:
camera_a: rtsp://admin:[email protected]:554/stream1
streams:
camera_a:
- rtsp://admin:[email protected]:554/stream1
rtsp://127.0.0.1:8554/camera_a
rtsp://192.168.1.100:8554/camera_a
ตัวอย่าง Source: RTSP -> To: MJPEG
streams:
camera_a: ffmpeg:rtsp://admin:[email protected]:554/stream1#video=mjpeg
streams:
camera_a:
- rtsp://admin:12[email protected]:554/stream1
- ffmpeg:camera_a#video=mjpeg
http://127.0.0.1:1984/api/stream.mjpeg?src=camera_a
http://192.168.1.100:1984/api/stream.mjpeg?src=camera_a
ตัวอย่าง Source: ONVIF -> To: RTSP, To: MJPEG
streams:
camera_a: onvif://admin:[email protected]:8000
camera_b: onvif://admin:[email protected]:6688
streams:
camera_a:
- onvif://admin:[email protected]:8000
- ffmpeg:camera_a#video=mjpeg
camera_b:
- onvif://admin:[email protected]:6688
- ffmpeg:camera_b#video=mjpeg
ตัวอย่าง Source: RTSP ไม่มีเสียง OPUS, AAC
streams:
camera_a:
- rtsp://admin:[email protected]:554/stream1
- ffmpeg:camera_a#audio=opus#audio=aac
ตัวอย่าง JPEG snapshots (สามารถใช้งานได้เป็นค่าเริ่มต้น)
http://127.0.0.1:1984/api/frame.jpeg?src=camera_a
http://192.168.1.100:1984/api/frame.jpeg?src=camera_a
วิธีติดตั้ง WebRTC Camera

ผมเคยเขียนไว้ในบทความเก่าไว้แระ เป็นการติดตั้งผ่านทาง HACS ค้นหา "WebRTC Camera" แต่ขั้นตอนการ Add Integrations เข้าไปที่ Home Assistant จะเปลี่ยนแปลงไปนิดนึง ให้ทำการกรอก URL ของ go2rtc เข้าไปครับ

http://localhost:1984/
http://192.168.1.100:1984/