Difference between revisions of "Hikvision DS-2CD2025FWD-I"

From ZoneMinder Wiki
Jump to navigationJump to search
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
EXIR MINI BULLET NETWORK CAMERA
EXIR MINI BULLET NETWORK CAMERA


Line 4: Line 6:
* 30 FPS
* 30 FPS
* 0.005 LUX at F1.2
* 0.005 LUX at F1.2
==Firmware 5.4.5==
This applies to the following Firmware Versions:
* Firmware 5.4.5 build 170124
* Encoding 7.3 build 170123
* Web 4.0.1 build 170123
* Plugin 3.0.6.1


===Setup in ZM===
===Setup in ZM===
I was able to get this camera to work with the following settings.
I was able to get this camera to work with the following settings.


====RTSP via FFMPEG:====
RTSP via FFMPEG:
 
'''Main stream'''
'''Main stream'''
rtsp://user:password@xxx.xxx.xxx.xxx:554/Streaming/Channels/1
rtsp://user:password@xxx.xxx.xxx.xxx:554/Streaming/Channels/1
Line 15: Line 27:
rtsp://admin:password@xxx.xxx.xxx.xxx:554/Streaming/Channels/2
rtsp://admin:password@xxx.xxx.xxx.xxx:554/Streaming/Channels/2


====MJPEG path:====
MJPEG path:
 
Main stream:
Main stream:
'''http://192.168.1.64/api/mjpegvideo.cgi?InputNumber=1&StreamNumber=1'''
'''http://192.168.1.64/api/mjpegvideo.cgi?InputNumber=1&StreamNumber=1'''
Line 26: Line 39:
You can login with a browser. No requirement to use an app.
You can login with a browser. No requirement to use an app.


stream types are limited depending on main stream or sub stream
stream resolutions are limited depending on main stream or sub stream
<pre>
<pre>
main stream
main stream
Line 48: Line 61:


They have a GPL notice:
They have a GPL notice:
 
<pre>
1.  Software Licensed under the GNU General Public License
1.  Software Licensed under the GNU General Public License


Line 67: Line 80:
     RP PPP OE 3.8
     RP PPP OE 3.8
     wpa_supplicant 0.7.2
     wpa_supplicant 0.7.2
 
</pre>
Too bad it's not GPLv3, might make reverse engineering easier.
Too bad it's not GPLv3, might make reverse engineering easier.


Line 96: Line 109:
there is some smearing on mplayer, when large motion occurs
there is some smearing on mplayer, when large motion occurs
which goes away after a moment.  
which goes away after a moment.  
may need more keyframes
may need more keyframes. EDIT: this was a limitation of using the RPI. Not enough RAM/CPU.




Smearing on the 1.32.3 is not an issue with the substream.


Using an RPI3 here.
at 352x240, I have 0.3 load. with Most camera settings at default, but
of interest is the FPS at: 4
I'm using FFMPEG and Mocord.
RAM 154MB
Looking at Htop, all Cores are about 5-10%. Not bad at all.
I had to make sure to set H264 encode disabled on my build, as earlier 1.32 builds
would default to it - even on arm, where it's not supported.




Line 114: Line 118:
streams at once? Yes. No issues with two viewers. This is something,
streams at once? Yes. No issues with two viewers. This is something,
I've been thinking about with Multi-Server Setups. Not all cameras support this.
I've been thinking about with Multi-Server Setups. Not all cameras support this.
I set the FPS to 25, and the RPI3, seems to be able to handle it upon first glance...
The stream, is extremely fluid, though admittedly - only 352x240. I don't think
the RPI3 can do 720p very fast with this camera, but we will find out.
Load is about 1.3
Mocord.
Note that this is on H264 encoding.
Let's try MJPEG, and se if it changes...


Where is the MJPEG path?
Where is the MJPEG path?
Line 133: Line 126:


Which can be tested in the browser.
Which can be tested in the browser.
It looks like even when MJPEG is enabled, the RTSP will also work. Not sure why...
It looks like even when MJPEG is enabled, the RTSP will also work.  


Perhaps, once a session is open, it stays open. It's also possibly that all streams are enabled
Perhaps, once a session is open, it stays open. It's also possibly that all streams are enabled
at all times, which would be nice.
at all times, which would be nice.


If you are using this camera, at 30FPS, it actually means you should remove the max fps
===Return/Repair===
limit put in 1.32.3 of 30. As it will cap the variable FPS to no more than 30, causing
After testing it out for a short time, I picked it up another day to find it was unconnectable. The IR LEDs don't turn off, the reset button (which is does include) failed to do anything, and there is zero network activity. As it was under warranty I exchanged it. My model was from a 05/2017 batch.
potential delays. (Set it to 60 or so)
 
The next test:
640x480
FPS 30 (in camera)
 
Mocord.
Default zone
FFMPEG method
Load is about  2.4
Now, is the hardware decoding peripheral of the RPI3 being used?
let's enable logging and find out.
Notes from this thread:
https://forums.zoneminder.com/viewtopic.php?f=34&t=26112&p=106795&hilit=mmal#p106795
 
and restart...
<pre>
[Starting Capture version 1.32.3]
g_camera.cpp/163 [Priming capture from rtsp://admin:opensourcecam2@192.168.1.64:554/Streaming/Channe
g_camera.cpp/344 [Calling avformat_open_input for rtsp://admin:opensourcecam2@192.168.1.64:554/Strea
g_camera.cpp/376 [Opened input]
g_camera.cpp/378 [Stream open rtsp://admin:opensourcecam2@192.168.1.64:554/Streaming/Channels/2, par
g_camera.cpp/384 [Calling avformat_find_stream_info]
g_camera.cpp/393 [Got stream info]
g_camera.cpp/436 [Unable to locate audio stream in rtsp://admin:opensourcecam2@192.168.1.64:554/Stre
g_camera.cpp/438 [Found video stream at index 0]
g_camera.cpp/439 [Found audio stream at index -1]
g_camera.cpp/514 [Video Found decoder mjpeg]
g.cpp/267 [Dumping stream index i(0) index(0)]
g.cpp/272 [    Stream #0:0]
g.cpp/280 [, frames:21, timebase: 1/90000]
g.cpp/282 [: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 640x360 [SAR 1:1 DAR 16:9]]
g.cpp/307 [
 
g.cpp/229 [90k stream tb numerator , ]
g.cpp/229 [90k codec time base:]
g.cpp/337 [
 
g_camera.cpp/521 [Calling avcodec_open2]
g_camera.cpp/544 [HWACCEL not in use]
</pre>
Ah, it looks like you can put MJPEG into RTSP. I wasn't aware of this.
I thought it would be H264 only.
 
Let's turn it back to H264, and see if HWACCEL is used.
 
<pre>
03/09/19 23:35:56.391559 zmc_m2[1371].DB1-zm_ffmpeg_camera.cpp/503 [Failed to find decoder (h264_mmal)]
03/09/19 23:35:56.391698 zmc_m2[1371].DB1-zm_ffmpeg_camera.cpp/514 [Video Found decoder h264]
03/09/19 23:35:56.391767 zmc_m2[1371].DB1-zm_ffmpeg.cpp/267 [Dumping stream index i(0) index(0)]
</pre>
So it looks like it tried to find the mmal decoder, but I must not have it
installed. I will forget about it for now.
 
I'm sure I would need to install libavcodec-dev from the Raspbian repos in order to obtain it.
I may have installed Debian, then migrated to Devuan, so in this case - the Pi doesn't have
hardware decoding. Quite tricky to get it all setup.
 
Enough of that, let's try 720P and see what the PI can do...
 
1280x720
Mocord
2FPS (in camera)
 
FFMPEG
Load is about 1.3
 
 
at 4FPS in camera, there is not much of a Load increase.
1.35
 
at 10FPS in camera, there is:
about 2.9 load.
some skipping on video stream, when lots of motion.
I haven't tested whether the stream restarts out over time or not.
 
 
Let's jump to 1280x960
at 10FPS
 
about 3 load.
 
1920x1080
at 4FPS
 
about 2.6 load.
 
What's the max FPS we can do with this camera?
Looks like it limits itself to about
1920x1080
about 9FPS
 
with no motion.
 
the streaming lags quite a bit behind.
 
So I would go with maybe half that, as a recommendation. 1920x1080 4FPS max.


That might be the max the RPI3 can do.
Beware of this. Keep the boxes. The item was returned to me with a cracked front lens (they must've read the review and were angry (joking)), and updated firmware.
with 1.32.3 or newer,
1 camera at 4FPS
and 1920x1080 or similar.


== Later Firmware ==
Later firmwares have removed MJPEG streaming for high resolutions, instead only 640x480 is possible. The H264 stream works in HD to ZM. It was necessary for me to download the app from Hikvision to a computer before I could get the H264 stream to show in ZM. Essentially, I had to download the IE plugin, browse to the page, and then afterwards, I was able to view the stream in ZM. This isn't always required with Hikvision, from my experience, but this particular camera seemed to require it. More testing needed. Obviously requiring Windows is not good.


No hardware encoding necessary on RPI.
===Three Streams===
It is possible to enable three streams on this camera. There is a checkbox in the settings. Nice feature.

Latest revision as of 22:26, 23 July 2020


EXIR MINI BULLET NETWORK CAMERA

  • Max Resolution: 1920x1080
  • 30 FPS
  • 0.005 LUX at F1.2


Firmware 5.4.5

This applies to the following Firmware Versions:

  • Firmware 5.4.5 build 170124
  • Encoding 7.3 build 170123
  • Web 4.0.1 build 170123
  • Plugin 3.0.6.1

Setup in ZM

I was able to get this camera to work with the following settings.

RTSP via FFMPEG:

Main stream rtsp://user:password@xxx.xxx.xxx.xxx:554/Streaming/Channels/1

Sub stream rtsp://admin:password@xxx.xxx.xxx.xxx:554/Streaming/Channels/2

MJPEG path:

Main stream: http://192.168.1.64/api/mjpegvideo.cgi?InputNumber=1&StreamNumber=1

Sub stream: http://192.168.1.64/api/mjpegvideo.cgi?InputNumber=1&StreamNumber=1

Notes

The default IP is 192.168.1.64 You can login with a browser. No requirement to use an app.

stream resolutions are limited depending on main stream or sub stream

main stream
1920x1080
1280x960
1280x720

sub stream
640x360
352x240

FPS can be from 1/16 fps to 30. You can adjust each stream separately. You can view both main and sub stream at the same time.


Encoding can be H264, H265, or MJPEG. Backwards compatibility is nice.

Live view stream is an .asp page (aspx) A plugin is required to view the stream. :/. However, you can view the MJPEG path via a browser (see path above or below).


They have a GPL notice:

1.  Software Licensed under the GNU General Public License

 This product includes software licensed under the GNU General Public
  License (GPL), Version 2.  Please see Appendix A below for the terms
  of this license.

  Specifically, the following software included in this product is
  subject to the GPL:

    GCC library  (note that an exception clause applies, see Appendix B)
    Linux kernel
    busybox 1.19.3
    u-boot
    udev 114
    IPTables 1.4.18
    ppp - Pauls PPP Package 2.4.3
    RP PPP OE 3.8
    wpa_supplicant 0.7.2

Too bad it's not GPLv3, might make reverse engineering easier.


This path works: rtsp://user:password@xxx.xxx.xxx.xxx:554/Streaming/Channels/1 for the main stream.

rtsp://user:password@xxx.xxx.xxx.xxx:554/Streaming/Channels/2 is for the substream with mplayer

so, easy enough. Good and simple configuration. mplayer output:

mplayer rtsp://admin:password@192.168.1.64:554/Streaming/Channels/2

librtsp: server responds: 'RTSP/1.0 401 Unauthorized'
rtsp_session: unsupported RTSP server. Server type is 'unknown'.
libavformat version 56.40.101 (internal)
libavformat file format detected.
[lavf] stream 0: video (h264), -vid 0
VIDEO:  [H264]  352x240  0bpp  30.000 fps    0.0 kbps ( 0.0 kbyte/s)
Clip info:
 title: Media Presentation
[vdpau] Error when calling vdp_device_create_x11: 1

there is some smearing on mplayer, when large motion occurs which goes away after a moment. may need more keyframes. EDIT: this was a limitation of using the RPI. Not enough RAM/CPU.



is it possible to watch the stream with my computer, and my RPI? Two streams at once? Yes. No issues with two viewers. This is something, I've been thinking about with Multi-Server Setups. Not all cameras support this.

Where is the MJPEG path?

A quick trip to ispy shows the path:

http://192.168.1.64/api/mjpegvideo.cgi?InputNumber=1&StreamNumber=2

Which can be tested in the browser. It looks like even when MJPEG is enabled, the RTSP will also work.

Perhaps, once a session is open, it stays open. It's also possibly that all streams are enabled at all times, which would be nice.

Return/Repair

After testing it out for a short time, I picked it up another day to find it was unconnectable. The IR LEDs don't turn off, the reset button (which is does include) failed to do anything, and there is zero network activity. As it was under warranty I exchanged it. My model was from a 05/2017 batch.

Beware of this. Keep the boxes. The item was returned to me with a cracked front lens (they must've read the review and were angry (joking)), and updated firmware.

Later Firmware

Later firmwares have removed MJPEG streaming for high resolutions, instead only 640x480 is possible. The H264 stream works in HD to ZM. It was necessary for me to download the app from Hikvision to a computer before I could get the H264 stream to show in ZM. Essentially, I had to download the IE plugin, browse to the page, and then afterwards, I was able to view the stream in ZM. This isn't always required with Hikvision, from my experience, but this particular camera seemed to require it. More testing needed. Obviously requiring Windows is not good.

Three Streams

It is possible to enable three streams on this camera. There is a checkbox in the settings. Nice feature.