IP kameraların kalitesi değişkendir, bazıları benim deneyimimde düzensiz davranmaktadır. RTSP akışlarıyla uğraşmak, bir doz hata toleransı gerektirir.
Live555 projesi, CLI aracılığıyla RTSP ses / video akışlarını çekmek için nispeten hataya dayanıklı bir RTSP istemci uygulaması, openRTSP sağlar: http://www.live555.com/openRTSP/
Örneğin, bir kameranın RTSP ses / videosunu QuickTime biçimindeki (AVI ve MP4 de mevcuttur) dosyalara kaydetmek için, her 15 dakikada bir dosya:
$ 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
Bu seçenekler şu anlama gelir:
-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
-T seçeneğinin kaldırılması, openRTSP'nin varsayılan olarak UDP'ye neden olmasına neden olur ve bu da ağ trafiğini biraz azaltabilir. Size uygun kombinasyonu bulmak için seçeneklerle oynamanız gerekecek.
Açıkçası, kameraların kendileri bazen güvenilmez olabilir veya sadece farklı şekilde uygulanır - soketi beklenmedik şekilde kapatmak o kadar sıra dışı değildir.
Bazen openRTSP istemcisi bu hataları yakalamaz. Bu yüzden her openRTSP istemci örneğinin stdout'unu çağırmak ve izlemek için 'alt süreçler' modülünü kullanarak Python'da bir denetleyiciyi kodlamayı seçtim ve ayrıca dosyaların boyutunun büyümeye devam ettiğini kontrol ettim.
Bu, CCTV endüstrisinin düşük ucunun standartlarla hızlı ve gevşek oynayan bir yan ürünü olduğu görülüyor, RTSP ve ONVIF en sık istismar edilen ikisi.
Neyse ki, genellikle bu sorunları giderebilirsiniz. IP kameralarınız ve denetleyicinizin hepsi birlikte güzel oynamak üzere tasarlanmadığı sürece, ONVIF'i yalnızca bir kez bulma ve ayar yönetimi için kullanın.
Raspbian çalıştıran birkaç Raspberry Pi B + üzerinde openRTSP kullanıyorum. Her 1280x1024 akışı CPU zamanının yaklaşık% 8-10'unu kaplar ve RPi başına sekiz adede kadar kamerayı başarıyla çalıştırarak dosyaları NAS depolama alanına yazdım. Başka bir RPi, tamamlanmış dosyaları ffmpeg ile işler, aramaları tespit etmek için hareket aramak ve bu karelerin dizin PNG'lerini üretmek.
Bu son kısmı yapan ZoneMinder adlı açık kaynaklı bir çaba var, ancak kameralarımla çalıştıramadım. ONVIF desteği ZM'de yeni ve yeni ve 100 $ 'ın altındaki IP kamera yönetimim tarafından üretilen sivilceli RTSP akışları ile iyi görünmüyor.