(D241101) Ghi chép về việc triển khai nhúng live streaming camera video lên website
BÀI ĐANG VIẾT
Đây là những ghi chép trong quá trình triển khai nhúng live streaming camera video lên website trangtraihuounai.com.
1. Yêu cầu
Không quá nhiều điểm đặc biệt:
- Nhúng livestream camera của trang trại lên website
- Hệ thống đơn giản, có thể dễ dàng mở rộng khi cần thiết
2. Ý tưởng
Gọn nhẹ nhất có thể:
- Sử dụng máy tính all-in-one cho tất cả các tác vụ
- Lấy luồng RTSP từ camera phát lại bằng go2rtc
- Nhúng trực tiếp vào website hoặc phát kênh Youtube?
3. Thiết bị thử nghiệm
Đang có sẵn các thứ sau:
- Mini PC N4100: 4x1GB Ethernet
- PoE Switch không biết tên
- Imou Cruiser 2 (5MP Outdoor Wi-Fi P&T Camera)
Thay thế thiết bị khác sau khi chạy thử:
- All-in-one box: HP / Dell
- Camera: Dahua / Hikvision
4. Sơ đồ hệ thống
Sẽ tách router trong tương lai, hiện tại chạy ImmortalWrt trên môi trường ảo hóa.
5. Các bước triển khai
Task List
- [x] Cài đặt FreeBSD box
- [x] Cấu hình hệ thống mạng sẵn sàng cho máy ảo
- [x] Cài đặt máy ảo chạy ImmortalWrt làm router
- [x] Cấu hình ImmortalWrt, quy hoạch VLAN
- [x] Cài đặt máy ảo chạy Debian làm docker host
- [x] Cài đặt nginx làm reverse proxy, nat port 80/443 từ router
- [x] Cài đặt go2rtc lấy luồng RTSP / ONVIF từ camera
- [ ] Cài đặt nginx làm web server, nhúng stream vào trang web
- [ ] Chuyển thiết bị đến trang trại, quay pppoe mở port 80/443
- [ ] Chạy thử trong 30 ngày
6. Các vấn đề gặp phải
- high latency from cameras to go2rtc: check bridge+tap on bhyve, maybe passthru all nics and use something like vether / epair / vale / netgraph.. done.
- Deplot TURN server and stream by WebRTC, much better latency
- transcoding video requires high CPU, checked bhyve GPU passthru but it didn't work. moved to Linux instead of FreeBSD. needed something like CUDA
- can not pull rtsp stream from EZVIZ camera, they use their own protocol. best camera brand for this job: Dahua, Imou