Việc chạy Frigate trên phần cứng chuyên dụng có thể đơn giản hơn bạn nghĩ. Bản thân phần mềm này không quá nặng, nhưng chính các tác vụ xử lý video từ camera IP và chạy thuật toán phát hiện đối tượng mới là lúc CPU của bạn phải làm việc hết công suất. May mắn thay, hầu hết các mẫu mini PC hiện đại và có cấu hình tương đối mạnh đều có thể đáp ứng được. Nhưng nếu bạn đang xây dựng một “trung tâm dữ liệu” tại gia thì sao?
Đây chính là lúc phần cứng doanh nghiệp đã qua sử dụng phát huy tác dụng, và đó cũng chính là giải pháp mà tôi đã dùng để tạo ra hệ thống đầu ghi hình mạng (NVR) tối ưu của riêng mình. Tôi đã tìm thấy một chiếc Dell PowerEdge R210 II với giá cực kỳ phải chăng trên một trang rao vặt và quyết định sở hữu nó. Với Frigate NVR tự làm này, bạn hoàn toàn có thể thiết lập một hệ thống giám sát an ninh hiệu quả cho ngôi nhà của mình.
Giao diện cài đặt theo dõi đối tượng trên hệ thống Frigate NVR
Tại sao Dell PowerEdge R210 II là lựa chọn lý tưởng cho Frigate NVR?
Chi phí tối ưu, hiệu năng bất ngờ
Dell PowerEdge R210 II không được thiết kế để trở thành máy chủ mạnh mẽ nhất thế giới. Thực tế, nó đã gần hai thập kỷ tuổi, nhưng bộ vi xử lý Intel Xeon bên trong vẫn là một “con quái vật” đáng gờm để chạy các container Docker, đặc biệt là Frigate. Tôi may mắn có sẵn một GPU Nvidia T1000 để xử lý các tác vụ phát hiện đối tượng, vốn có thể làm chậm đáng kể ngay cả những bộ xử lý mạnh mẽ và mới hơn từ AMD hay Intel. Dưới đây là cái nhìn nhanh về thông số kỹ thuật của máy chủ này:
Tính năng | PowerEdge R210 II |
---|---|
CPU | Intel Xeon E3-1245 V2 |
GPU | Nvidia T1000 |
RAM | 32 GB DDR3 ECC |
Lưu trữ | – 256 GB SATA SSD (cho Proxmox và Frigate) – 2 TB SATA HDD (lưu trữ video đã ghi) |
Ban đầu, trái tim của chiếc PowerEdge R210 II này là Intel Xeon E-1220 V2. Đây là một CPU bốn nhân có khả năng với tốc độ tăng cường tối đa 3.5 GHz. Nó rất phù hợp để chạy một vài container Docker và máy ảo, nhưng con chip này sẽ gặp khó khăn với mục đích tôi muốn sử dụng Frigate. Đừng hiểu lầm, bạn hoàn toàn có thể ghép nối nó với T1000 và sử dụng, nhưng tôi muốn stream video với độ phân giải cao hơn, đó là lý do tôi quyết định nâng cấp lên Intel Xeon E3-1245 V2 với chi phí chỉ 20 đô la.
E3-1245 V2 là một nâng cấp đáng giá, đặc biệt là việc hỗ trợ Hyperthreading, cho phép chạy đồng thời tám luồng và đạt tốc độ lên tới 3.8 GHz. Mặc dù tiêu thụ điện năng nhiều hơn một chút, nhưng với sự hỗ trợ của T1000, nó sẽ không bị quá tải và có đủ sức mạnh để chạy Frigate mượt mà. Việc này cũng cho tôi một lý do bổ sung để tháo tản nhiệt CPU và bôi keo tản nhiệt mới — đây là điều tôi khuyên bạn nên làm với bất kỳ hệ thống cũ nào mua lại.
Với việc tôi đã có sẵn một vài bộ chuyển mạch (switch) và một máy chủ khác trong tủ rack, R210 II là một lựa chọn hoàn hảo cho hệ thống giám sát Frigate của tôi. 32 GB RAM DDR3 là quá đủ cho thiết lập tại nhà, bao gồm một vài camera Reolink. Đây cũng là RAM ECC, một điểm cộng tiện lợi nếu sử dụng thiết bị doanh nghiệp cũ. Bạn sẽ nhận được các tính năng và hiệu suất chuẩn server. Một ổ SSD SATA 256 GB chạy Proxmox và máy ảo Frigate. Tôi ưu tiên cách này để có thể cài đặt thêm các gói phần mềm khác trên máy chủ trong tương lai. Sau đó là một ổ HDD SATA 2 TB để lưu trữ cảnh quay đã ghi, dung lượng này rất tốt cho bốn luồng camera.
Mặc dù không phải là cách hiệu quả nhất về mặt năng lượng hay hiệu suất trên mỗi watt, nhưng việc chạy Proxmox trên hệ thống này rất dễ dàng và hầu như không có chi phí bổ sung. Nó mang lại một cách gọn gàng để thiết lập hệ thống an ninh gia đình của bạn.
Camera an ninh IP Reolink, một lựa chọn phổ biến cho Frigate NVR
Hướng dẫn cài đặt camera Reolink với Frigate
Cấu hình đơn giản qua file YAML
Reolink là một trong những nhà sản xuất lớn trong lĩnh vực camera IP và an ninh gia đình, nổi tiếng với các sản phẩm chất lượng. Tôi đang sử dụng một vài camera của họ cho hệ thống an ninh của mình, và Frigate đóng vai trò là cầu nối liên kết mọi thứ lại với nhau. Việc đăng ký và kết nối tất cả camera với phần mềm dễ dàng như chỉnh sửa một file cấu hình YAML. Đây là một kỹ năng dễ học và bạn có thể trở thành chuyên gia không chỉ với Frigate mà còn với cả hệ sinh thái Docker rộng lớn hơn.
Dưới đây là một bản sao file cấu hình Frigate của tôi, nếu bạn quan tâm. Bạn có thể thoải mái chỉnh sửa các phần camera và các phần khác để phù hợp hơn với thiết lập của mình. Lưu ý rằng file cấu hình này đang sử dụng GPU Nvidia, vì vậy hãy đảm bảo chỉnh sửa cho phù hợp, trừ khi bạn cũng có một card đồ họa mạnh sẵn sàng. Thay thế USERNAME
và PASSWORD
bằng thông tin đăng nhập của từng camera và kiểm tra bộ định tuyến hoặc ứng dụng đi kèm để xác định địa chỉ IP được gán.
mqtt:
host: mqtt.example.local
user: frigate
password: PASSWORD
detectors:
coral:
type: edgetpu
device: usb
gpu:
type: tensorflow
model:
path: /models/coco_ssd_mobilenet_v2_coco_2018_03_29/frozen_inference_graph.pb
device: 0 # GPU device index
database:
path: /media/frigate/frigate.db
record:
enabled: True
retain:
days: 3
events:
retain:
default: 7
snapshots:
enabled: True
timestamp: True
bounding_box: True
retain:
default: 7
objects:
track:
- person
- car
- dog
- cat
- bicycle
- motorcycle
ffmpeg:
hwaccel_args: preset-nvidia-h264
cameras:
rlc_511w:
ffmpeg:
inputs:
- path: rtsp://USERNAME:PASSWORD@IP_ADDRESS:554/h264Preview_01_main
roles:
- detect
- record
detect:
width: 2560
height: 1440
fps: 5
rlc_410:
ffmpeg:
inputs:
- path: rtsp://USERNAME:PASSWORD@IP_ADDRESS:554/h264Preview_01_main
roles:
- detect
- record
detect:
width: 1920
height: 1080
fps: 5
rlc_510:
ffmpeg:
inputs:
- path: rtsp://USERNAME:PASSWORD@IP_ADDRESS:554/h264Preview_01_main
roles:
- detect
- record
detect:
width: 2560
height: 1440
fps: 5
rlc_810a:
ffmpeg:
inputs:
- path: rtsp://USERNAME:PASSWORD@IP_ADDRESS:554/h264Preview_01_main
roles:
- detect
- record
detect:
width: 3840
height: 2160
fps: 5
detect:
enabled: True
max_disappeared: 25
stationary:
interval: 100
threshold: 10
go2rtc:
streams:
rlc_511w: rtsp://USERNAME:PASSWORD@IP_ADDRESS:554/h264Preview_01_main
rlc_410: rtsp://USERNAME:PASSWORD@IP_ADDRESS:554/h264Preview_01_main
rlc_510: rtsp://USERNAME:PASSWORD@IP_ADDRESS:554/h264Preview_01_main
rlc_810a: rtsp://USERNAME:PASSWORD@IP_ADDRESS:554/h264Preview_01_main
Với việc T1000 hoạt động thông qua máy ảo Ubuntu và được tải vào Docker cùng với bộ công cụ Nvidia cần thiết, Frigate đã có thể giao tiếp và tận dụng tất cả các nhân CUDA để xử lý các sự kiện phát hiện đối tượng. CPU tiếp tục xử lý phát hiện chuyển động và cảnh quay, vốn khá nhẹ nhàng, nhưng GPU (hoặc NPU, nếu bạn có sẵn) mới là thành phần xử lý việc phát hiện đối tượng một cách dễ dàng.
Các Docker container thiết yếu đang chạy trong home lab, bao gồm Frigate NVR
Xây dựng Frigate NVR: Dễ dàng hơn bạn nghĩ
Tất cả những gì bạn cần là một SBC hoặc PC cũ
Một máy tính đơn bo (SBC – Single-Board Computer) cũng có thể chạy Frigate và một hoặc hai camera khá tốt. Tuy nhiên, bạn sẽ cần một thiết bị chuyên dụng để xử lý việc phát hiện đối tượng. Tôi khuyên bạn nên sử dụng một chiếc PC để bàn cũ mà bạn có thể đang cất giữ hoặc xây dựng một hệ thống cụ thể cho công việc này. Thậm chí có một số phần cứng NVR chuyên dụng có thể được mua và sử dụng cho mục đích này. Việc xây dựng một phòng lab tại nhà với một số máy chủ doanh nghiệp cũ có thể cho phép bạn làm được nhiều điều hơn là chỉ tạo ra giải pháp an ninh của riêng mình.
Ngoài việc chạy Frigate, tôi còn có các hệ thống khác đang lưu trữ Jellyfin, Immich, Nextcloud, Pi-hole, Mealie, Couchdb, và nhiều hơn thế nữa. Đây là một “hố sâu” mà người ta có thể dễ dàng bị cuốn vào khám phá. Phần tuyệt vời nhất với Frigate chính là khả năng tích hợp chặt chẽ với Home Assistant.
Hệ thống giám sát với camera Obsbot và thiết bị NAS, giải pháp lưu trữ cho Frigate NVR
Việc tự xây dựng một Frigate NVR là một cách tuyệt vời để kiểm soát hoàn toàn hệ thống an ninh gia đình của bạn, tận dụng tối đa phần cứng sẵn có. Bạn không chỉ tiết kiệm chi phí mà còn có được một giải pháp mạnh mẽ, linh hoạt và có thể tùy chỉnh theo nhu cầu.
Frigate
Logo ứng dụng Frigate NVR, nền tảng giám sát thông minh nguồn mở
Tạo nên hệ thống NVR tự làm tối ưu với Frigate và một số phần cứng PC cũ.