]> pere.pagekite.me Git - homepage.git/commitdiff
New post on ONVIF.
authorPetter Reinholdtsen <pere@hungry.com>
Wed, 19 Oct 2022 10:13:40 +0000 (12:13 +0200)
committerPetter Reinholdtsen <pere@hungry.com>
Wed, 19 Oct 2022 10:13:40 +0000 (12:13 +0200)
blog/data/2022-10-19-onvif-camera-linux.txt [new file with mode: 0644]

diff --git a/blog/data/2022-10-19-onvif-camera-linux.txt b/blog/data/2022-10-19-onvif-camera-linux.txt
new file mode 100644 (file)
index 0000000..57837ca
--- /dev/null
@@ -0,0 +1,71 @@
+Title: Managing and using ONVIF IP cameras with Linux
+Tags: english, debian, multimedia, standard, surveillance
+Date: 2022-10-19 12:30
+
+<p>Recently I have been looking at how to control and collect data
+from a handful IP cameras using Linux.  I both wanted to change their
+settings and to make their imagery available via a free software
+service under my control.  Here is a summary of the tools I found.</p>
+
+<p>First I had to identify the cameras and their protocols.  As far as
+I could tell, they were using some SOAP looking protocol and their
+internal web server seem to only work with Microsoft Internet Explorer
+with some proprietary binary plugin, which in these days of course is
+a security disaster and also made it impossible for me to use the
+camera web interface.  Luckily I discovered that the SOAP looking
+protocol is actually following <a href="https://www.onvif.org/">the
+ONVIF specification</a>, which seem to be supported by a lot of IP
+cameras these days.</p>
+
+<p>Once the protocol was identified, I was able to find what appear to
+be the most popular way to configure ONVIF cameras, the free software
+Windows tool named
+<a href="https://sourceforge.net/projects/onvifdm/">ONVIF Device
+Manager</a>.  Lacking any other options at the time, I tried
+unsuccessfully to get it running using Wine, but was missing a dotnet
+40 library and I found no way around it to run it on Linux.</p>
+
+<p>The next tool I found to configure the cameras were a non-free Linux Qt
+client <a href="https://www.lingodigit.com/onvif_nvcdemo.html">ONVIF
+Device Tool</a>.  I did not like its terms of use, so did not spend
+much time on it.</p>
+
+<p>To collect the video and make it available in a web interface, I
+found the Zoneminder tool in Debian.  A recent version was able to
+automatically detect and configure ONVIF devices, so I could use it to
+set up motion detection in and collection of the camera output.  I had
+initial problems getting the ONVIF autodetection to work, as both
+Firefox and Chromium <a href="https://bugs.debian.org/1001188">refused
+the inter-tab communication</a> being used by the Zoneminder web
+pages, but managed to get konqueror to work.  Apparently the "Enhanced
+Tracking Protection" in Firefox cause the problem.  I ended up
+upgrading to the Bookworm edition of Zoneminder in the process to try
+to fix the issue, and believe the problem might be solved now.</p>
+
+<p>In the process I came across the nice Linux GUI tool
+<a href="https://gitlab.com/caspermeijn/onvifviewer/">ONVIF Viewer</a>
+allowing me to preview the camera output and validate the login
+passwords required.  Sadly its author has grown tired of maintaining
+the software, so it might not see any future updates.  Which is sad,
+as the viewer is sightly unstable and the picture tend to lock up.
+Note, this lockup might be due to limitations in the cameras and not
+the viewer implementation.  I suspect the camera is only able to
+provide pictures to one client at the time, and the Zoneminder feed
+might interfere with the GUI viewer.  I have
+<a href="https://bugs.debian.org/1000820">asked for the tool to be
+included in Debian</a>.</p>
+
+<p>Finally, I found what appear to be very nice Linux free software
+replacement for the Windows tool, named
+<a href="https://github.com/sr99622/libonvif/">libonvif</a>.  It
+provide a C library to talk to ONVIF devices as well as a command line
+and GUI tool using the library.  Using the GUI tool I was able to change
+the admin passwords and update other settings of the cameras.  I have
+<a href="https://bugs.debian.org/1021980">asked for the package to be
+included in Debian</a>.</p>
+
+<p>As usual, if you use Bitcoin and want to show your support of my
+activities, please send Bitcoin donations to my address
+<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
+
+