Camera IP có chất lượng khác nhau, một số hoạt động thất thường trong kinh nghiệm của tôi. Xử lý các luồng RTSP của họ đòi hỏi một liều dung sai.
Dự án Live555 cung cấp triển khai ứng dụng khách RTSP tương đối có lỗi, openRTSP, để kéo các luồng âm thanh / video RTSP qua CLI: http://www.live555.com/openRTSP/
Ví dụ: để lưu âm thanh / video RTSP của máy ảnh vào các tệp ở định dạng QuickTime (AVI và MP4 cũng có sẵn), cứ sau 15 phút lại có một tệp:
$ openRTSP -D 1 -c -B 10000000 -b 10000000 -q -Q -F cam_eight -d 28800 -P 900 -t -u admin 123456 rtsp://192.168.1.108:554/11
Các tùy chọn này có nghĩa là:
-D 1 # Quit if no packets for 1 second or more
-c # Continuously record, after completion of -d timeframe
-B 10000000 # Input buffer of 10 MB
-b 10000000 # Output buffer 10MB (to file)
-q # Produce files in QuickTime format
-Q # Display QOS statistics
-F cam_eight # Prefix output filenames with this text
-d 28800 # Run openRTSP this many seconds
-P 900 # Start a new output file every -P seconds
-t # Request camera end stream over TCP, not UDP
-u admin 123456 # Username and password expected by camera
rtsp://192.168.1.108:554/11 # Camera's RTSP URL
Thay vào đó, việc loại bỏ tùy chọn -t khiến openRTSP mặc định thành UDP, điều này có thể làm giảm lưu lượng mạng một chút. Bạn sẽ cần chơi với các tùy chọn để tìm ra sự kết hợp phù hợp với bạn.
Thành thật mà nói, các máy ảnh đôi khi không đáng tin cậy, hoặc chỉ được thực hiện khác nhau - giống như việc đóng ổ cắm bất ngờ không phải là điều quá bất thường.
Đôi khi, máy khách openRTSP không bắt được những trục trặc này. Vì vậy, tôi đã chọn mã hóa bộ điều khiển trong Python bằng mô-đun 'quy trình con' để gọi và theo dõi thiết bị xuất chuẩn của từng phiên bản máy khách openRTSP và cũng kiểm tra xem các tệp có đang tiếp tục tăng kích thước không.
Đây dường như là sản phẩm phụ của ngành công nghiệp camera quan sát cấp thấp chơi nhanh và lỏng lẻo với các tiêu chuẩn, RTSP và ONVIF là hai sản phẩm thường xuyên bị lạm dụng nhất.
May mắn thay, bạn thường có thể làm việc xung quanh những vấn đề này. Trừ khi các camera IP và bộ điều khiển của bạn đều được thiết kế để chơi cùng nhau, chỉ sử dụng ONVIF để quản lý cài đặt và khám phá một lần duy nhất.
Tôi sử dụng openRTSP trên một vài Raspberry Pi B + đang chạy Raspbian. Mỗi luồng 1280x1024 chiếm khoảng 8-10% thời gian của CPU và tôi đã chạy thành công tới tám camera trên mỗi RPi, ghi các tệp vào bộ lưu trữ NAS. Một RPi khác xử lý các tệp đã hoàn thành với ffmpeg, tìm kiếm chuyển động và tạo ra các PNG chỉ mục của các khung đó, để hỗ trợ phát hiện các đột phá.
Có một nỗ lực nguồn mở được gọi là ZoneMinder thực hiện phần sau này, nhưng tôi không thể làm cho nó hoạt động với các máy ảnh của mình. Hỗ trợ ONVIF là mới và mới trong ZM, và nó dường như không phù hợp với các luồng RTSP nổi bật được sản xuất bởi các máy ảnh IP dưới 100 đô la của tôi.