ต่อจากบล็อกก่อนหน้า วิธีติดตั้ง 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 URL
  • back_house → กล้อง Tapo C200 สตรีมมักมีปัญหา จึงต้องใช้ ffmpeg: เพื่อ copy video และ audio ให้เสถียร
  • webrtc → กำหนดการเชื่อมต่อ WebRTC ให้ไหลลื่น
    • 192.168.1.100 → IP ของ server Frigate
    • stun: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 สำหรับรับสตรีม RTSP
  • record: 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 มาจาก go2rtc
  • roles:- 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