ต่อจากบล็อกก่อนหน้า
วิธีติดตั้ง Frigate NVR v0.16.0
หลังจากติดตั้งเสร็จ ขั้นตอนสำคัญต่อมาคือการทำความเข้าใจไฟล์ config.yaml ซึ่งเป็นหัวใจหลักของการใช้งาน Frigate NVR
ในบล็อกนี้ เราจะโฟกัสที่การ ตั้งค่า Frigate ให้ทำงานเฉพาะโหมด Record 24/7 โดยไม่เปิดการตรวจจับวัตถุ (Object Detection) เหมาะสำหรับใครที่ต้องการใช้งาน Frigate เป็น NVR บันทึกวิดีโออย่างเดียว
วิธี Configuration Frigate NVR
หมายเหตุ: สำหรับ Frigate v0.16.0
หน้าตั้งค่า: Settings → Configuration Editor
ไฟล์: config/config.yaml
อ้างอิง: Full configuration
1. go2rtc
อ้างอิง: go2rtc v1.9.9
go2rtc ใช้สำหรับ Re-stream กล้องเพื่อนำไปใช้งานกับ Frigate NVR และจัดการเรื่อง protocols ต่าง ๆ ทำให้ Frigate สามารถดึงสตรีมได้อย่างราบรื่น
แก้ไขไฟล์ docker-compose.yml เพื่อให้ WebRTC ทำงานได้ เปิดพอร์ต 8555 ทั้ง TCP และ UDP
services:
frigate:
ports:
- "8555:8555/tcp" # WebRTC over tcp
- "8555:8555/udp" # WebRTC over udp
- เพิ่ม
ports 8555เพื่อให้ Frigate สามารถเชื่อมต่อ WebRTC กับ go2rtc ได้อย่างราบรื่น
go2rtc:
streams:
front_house:
- rtsp://admin:[email protected]:554/stream1
living_room:
- rtsp://192.168.1.3:554/h264_stream
back_house:
- ffmpeg:rtsp://admin:[email protected]:554/stream2#video=h264#audio=copy
webrtc:
candidates:
- 192.168.1.100:8555
- stun:8555
front_house,living_room→ ใช้วิธี re-stream จากกล้องปกติ ผ่าน RTSP URLback_house→ กล้อง Tapo C200 สตรีมมักมีปัญหา จึงต้องใช้ ffmpeg: เพื่อ copy video และ audio ให้เสถียรwebrtc→ กำหนดการเชื่อมต่อ WebRTC ให้ไหลลื่น192.168.1.100→ IP ของ server Frigatestun:8555→ ใช้สำหรับ NAT traversal
2. mqtt
หากไม่ได้เชื่อมต่อกับ Home Assistant สามารถตั้งค่าให้ปิดได้
mqtt:
enabled: false
3. ffmpeg
อ้างอิง: FFmpeg presets
ffmpeg:
hwaccel_args: auto
input_args: preset-rtsp-restream
output_args:
record: preset-record-generic-audio-aac
input_args: preset-rtsp-restream→ ใช้เมื่อเชื่อมกับ go2rtc สำหรับรับสตรีม RTSPrecord: preset-record-generic-audio-aac→ บันทึกวิดีโอพร้อมเสียง AAC
4. detect
detect:
enabled: false
enabled: false→ ปิดการทำงานของ Object Detection บนกล้อง
5. cameras
อ้างอิง: Camera Configuration
cameras:
front_house:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/front_house
roles:
- record
living_room:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/living_room
roles:
- record
back_house:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/back_house
roles:
- record
inputs:path:→ URL ของกล้องที่ re-stream มาจาก go2rtcroles:- record→ ตั้งค่าสำหรับ บันทึกวิดีโอ
6. record
อ้างอิง: Recording
record:
enabled: true
retain:
days: 30
mode: all
retain: days: 30→ เก็บวิดีโอ 30 วัน ตลอด 24 ชั่วโมง
Full Configuration
หลังจากที่เราอธิบายทีละส่วนของ config.yaml แล้ว ต่อไปนี้เป็น full config ที่รวมทุกส่วนเข้าด้วยกัน สามารถนำไป copy & paste ใช้งานได้เลย
หมายเหตุ: ค่าที่ใช้เป็นตัวอย่าง สามารถปรับตาม IP กล้อง, รหัสผ่าน, หรือระยะเวลาเก็บวิดีโอของคุณได้
go2rtc:
streams:
front_house:
- rtsp://admin:[email protected]:554/stream1
living_room:
- rtsp://192.168.1.3:554/h264_stream
back_house:
- ffmpeg:rtsp://admin:[email protected]:554/stream2#video=h264#audio=copy
webrtc:
candidates:
- 192.168.1.100:8555
- stun:8555
mqtt:
enabled: false
ffmpeg:
hwaccel_args: auto
input_args: preset-rtsp-restream
output_args:
record: preset-record-generic-audio-aac
detect:
enabled: false
cameras:
front_house:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/front_house
roles:
- record
living_room:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/living_room
roles:
- record
back_house:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/back_house
roles:
- record
record:
enabled: true
retain:
days: 30
mode: all
