Việc triển khai Frigate trên phần cứng có sẵn thường dễ dàng hơn bạn nghĩ. Bản thân phần mềm này không quá nặng, nhưng việc xử lý đồng thời nhiều luồng camera IP và chạy các thuật toán phát hiện đối tượng chính là lúc CPU của bạn có thể quá tải. May mắn thay, hầu hết các máy tính mini PC hiện đại và đủ mạnh đều có thể đáp ứng được. Nhưng sẽ thế nào nếu bạn đang xây dựng một “data center” tại gia?
Đây là lúc các phần cứng doanh nghiệp đã qua sử dụng phát huy tác dụng. Đó cũng chính xác là những gì tôi đã tận dụng để tạo ra giải pháp Network Video Recorder (NVR) tối ưu. Tôi tìm thấy một chiếc Dell PowerEdge R210 II với giá gần như cho không trên một trang rao vặt và không thể bỏ qua cơ hội này.
Giao diện cài đặt phát hiện đối tượng và theo dõi trong Frigate NVR
Tại Sao Dell PowerEdge R210 II Là Lựa Chọn Lý Tưởng Cho NVR Frigate?
Hiệu năng vượt trội với chi phí tối ưu
Dell PowerEdge R210 II không phải là một máy chủ được thiết kế để trở thành mạnh nhất thế giới. Nó cũng đã 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” mạnh mẽ để chạy các Docker container, đặc biệt là Frigate. Tôi khá may mắn với chiếc server này khi có sẵn card đồ họa Nvidia T1000 để đảm nhiệm công việc phát hiện đối tượng, một tác vụ có thể nhanh chóng làm quá tải ngay cả những bộ xử lý mạnh mẽ và mới hơn từ AMD và Intel. Dưới đây là cái nhìn nhanh về cấu hình của server:
Cấu hình Dell PowerEdge R210 II |
---|
CPU |
GPU |
RAM |
Lưu trữ |
Ban đầu, trái tim của PowerEdge R210 II là Intel Xeon E-1220 V2, một CPU bốn nhân có khả năng với tốc độ boost tối đa 3.5 GHz. Nó rất phù hợp để chạy một vài Docker container và máy ảo, nhưng con chip này sẽ gặp khó khăn với những gì tôi dự định sử dụng Frigate. Mặc dù có thể kết hợp nó với T1000 và sử dụng, nhưng tôi muốn các luồng video độ phân giải cao hơn. Đó là lý do tại sao tôi nâng cấp lên Intel Xeon E3-1245 V2 chỉ với 20 USD.
E3-1245 V2 là một bản nâng cấp đáng giá, đáng chú ý nhất là hỗ trợ Hyperthreading, cho phép tám luồng chạy đồng thời, đạt tốc độ lên đến 3.8 GHz. Mặc dù tiêu thụ điện năng nhiều hơn một chút, nó sẽ không bị đẩy quá mức với T1000 và có đủ sức mạnh để không bị quá tải khi chạy Frigate. Việc này cũng mang lại 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 – điều tôi khuyến nghị nên làm với bất kỳ hệ thống cũ nào bạn mua.
32 GB RAM DDR3 là quá đủ cho thiết lập tại gia của chúng tôi, bao gồm một vài camera mang thương hiệu Reolink. Nó còn là RAM ECC, một ưu điểm tiện lợi khi sử dụng các thiết bị doanh nghiệp cũ. Bạn sẽ nhận được các tính năng và hiệu suất cấp máy chủ. Một ổ SSD SATA 256 GB chạy Proxmox và máy ảo Frigate. Tôi thích cách này để có thể tải thêm các gói phần mềm khác lên server trong tương lai. Sau đó là một ổ HDD SATA 2 TB để lưu trữ các đoạn phim đã ghi, rất phù hợp cho bốn luồng camera.
Vì tôi đã có một vài switch và một server khác trong tủ, R210 II hoàn toàn phù hợp. Đây không phải là cách hiệu quả nhất để host Frigate, cũng không có hiệu suất trên mỗi watt tốt nhất nói chung, nhưng đó là một cách gọn gàng để thiết lập hệ thống an ninh tại nhà. Chạy Proxmox trên hệ thống rất dễ dàng và hầu như không có chi phí overhead nào đáng kể.
Camera an ninh IP Reolink, mẫu phổ biến cho hệ thống giám sát gia đình
Hướng Dẫn Cấu Hình Camera Reolink với Frigate
Đơn giản hóa quá trình kết nối
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. Đây là một công ty nổi tiếng chịu trách nhiệm tạo ra nhiều sản phẩm ấn tượng. Tôi có một vài camera của họ cho thiết lập an ninh của mình và Frigate kết nối mọi thứ lại với nhau. Việc đăng ký và kết nối tất cả chúng với phần mềm chỉ đơn giản như chỉnh sửa một tệp cấu hình YAML. Thật dễ dàng để học và trở thành bậc thầy không chỉ Frigate mà còn cả hệ sinh thái Docker rộng lớn hơn.
Dưới đây là bản sao tệp cấu hình Frigate của tôi, nếu bạn quan tâm. Hãy tùy chỉnh các camera và các phần khác để phù hợp với thiết lập của bạn. Lưu ý rằng tệp cấu hình này đang sử dụng GPU Nvidia, vì vậy hãy đảm bảo chỉnh sửa tương ứng, trừ khi bạn cũng có một card đồ họa mạnh mẽ sẵn sàng. Thay thế USERNAME
và PASSWORD
bằng thông tin đăng nhập cho mỗi camera của bạn và kiểm tra router 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à luồng video, vốn khá nhẹ, 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 ứng dụng Docker container chạy trong home lab, minh họa khả năng tự host đa dạng
Mở Rộng Tiềm Năng: NVR Frigate & Hệ Sinh Thái Home Lab
Tất cả những gì bạn cần là một SBC hoặc PC cũ
Một máy tính bo mạch đơn (SBC) có thể chạy Frigate và một hoặc hai camera khá tốt. 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, nhưng điều đó hoàn toàn khả thi. 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 dành riêng cho công việc này. Thậm chí có một số phần cứng NVR có thể được mua và sử dụng riêng cho mục đích này. Xây dựng một home lab với một số máy chủ doanh nghiệp cũ có thể cho phép bạn làm được nhiều việc 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 host Jellyfin, Immich, Nextcloud, Pi-hole, Mealie, Couchdb và nhiều thứ nữa. Đó là một “lỗ hổng thỏ” mà người ta có thể dễ dàng bị lạc trong quá trình khám phá. Phần tuyệt vời nhất của Frigate là khả năng tích hợp với Home Assistant.
Hệ thống camera giám sát kết nối với NAS TerraMaster, tích hợp NVR tự host
Kết luận
Xây dựng một hệ thống NVR mạnh mẽ và thông minh với Frigate không hề phức tạp như bạn tưởng, đặc biệt khi biết cách tận dụng tối đa các phần cứng cũ. Câu chuyện về Dell PowerEdge R210 II và camera Reolink là minh chứng rõ ràng cho thấy bạn có thể sở hữu một giải pháp giám sát hiệu quả, đáng tin cậy với chi phí tối ưu. Quan trọng hơn, việc này còn mở ra cánh cửa đến thế giới “home lab” đầy tiềm năng, nơi bạn có thể tự mình kiểm soát và phát triển nhiều dịch vụ công nghệ khác.
Logo ứng dụng Frigate NVR, biểu tượng của giải pháp giám sát thông minh
Frigate
Xây dựng hệ thống NVR DIY tối thượng với Frigate và phần cứng PC cũ.