This page evaluates some (PCB) camera’s based on 4K 8MP sensors, in particular Sony IMX415, with hardware compression. It concerns both USB and IP camera’s. The page is intended for supporting page “Labora: Mirrors, camera’s and security“.
Subject to change…
Table of Contents
Power supply from LFP
LiFePO4 (LFP) batteries play a crucial role because of the off grid character of a van.
Powering IP cameras
IP cameras with POE can in principle be powered directly with 12V and even directly from the LFP battery. Check the specifications carefully where 12V +/- 25% gives many possibilities.
Powering USB cameras
USB-based cameras often need 5V. To turn 12V into 5V, a step down converter is obvious. A popular voltage regulator is type MP1584EN (datasheet).
Direct power
Such a camera can be directly connected to a computer or a phone. This, of course, drains the phone battery quickly.
How can we work around that?
Power from LFP
???
Power from Raspi
Another way, a bit out of the box:
USB video camera <---> Raspberry Pi <---> Monitor
This solves two challenges. The sum of the limited lengths of USB and HDMI cables is enough for large distances. It can be a dedicated solution for viewing only. It also creates possibilities to use sparse OLED displays in the range between 8″ and 12″. This is an example.
Camera test: IVG-N8S (IMX415+NT98566)
Specs
On Aliexpress a camera, according to the supplier from https://www.jufenginfo.com/, was bought. Type IVG-N8S. Excellent specs and a very attractive price. This camera is not on the ZoneMinder Hardware Compatibility List. A web-interface for 192.168.1.10 with user ‘admin’, without password (blank), does not work, it requires Windows executables. Bummer!
Some specs of this camera: Sensor Sony IMX415 (Japan). Hardware based encoder on PCB: Novatek, NT98566 (Taiwan).
Smallest footprint is possible by utilizing this PCB in a custom made housing. Apparently power supply is 12V +/- 25%, so these camera’s can be hooked directly on LiFePO4 (if 4S). Specified consumption: < 3W, measured: 2.3W.
Test 1: Linux RTSP
Is RTSP (Real-Time Streaming Protocol) supported?
On a Debian laptop I connected the camera – out of the box – to the RJ45 network port and did the following:
$ ip a
# ip addr add 192.168.1.5/24 dev <NIC>
$ nmap 192.168.1.10
$ ffmpeg -i rtsp://admin:@192.168.1.10:554/ -vcodec copy test.mp4
To clarify: first get a list of NICs, network interface cards, with ‘ip a’, next assign 192.168.1.5 to the wired NIC, use ‘nmap’ to retrieve ports, which turns out to be 554 for rtsp over TCP. Finally store the stream “as is” as a file using ‘ffmpeg’ – without encoding and decoding.
After cancelling ffmpeg with Ctrl-c and viewing the file, it turned out to be working. In fact, the quality is excellent and power usage is very low.
Test 2: Configuration
So far the good news. However, the date in the corner is wrong (least problem) and there is no known way to do some basic camera setup. I’ve decided to contact the manufacturer since the supplier simply says “no Linux support”. It is in their interest to try to support, solve some basic challenges. More on this after a response (if…). So for now here is a log of what I did. If you change the IP number then you lock yourself out. So advice is to perform this as the last step.
- In Windows > Browser address (FireFox in this case): http://192.168.1.10 > Asks for installing: VideoPlayToolSetup.exe > Do it and F5… > Login: password is blank and user is ‘admin’ .
- Language English
- Select “RemoteSetting” on top bar > Interface has chapters, left bar. > If you change something, first press “Save” before going to another (sub) chapter. > Let’s browse it:
- Record: Not modified
- Alarm:
- Intelligent alert: Not modified, several options.
- System:
- General: Time Zone, Language
- Network: (MAC static 00:12:33:a4:78:f2) [] Adaptive IP, IP Address 10.105.24.20, Gateway 10.105.24.1, Prim. DNS 8.8.8.8, Sec. DNS 8.8.4.4,
- NetService (many entries to be evaluated later)
- Securus Cloud: Enable [x]
- Mobile reported: Enable [x]
- Display: [] Time Title, [] Channel Title
Camera test: EMEET S600
This is actually a webcam equipped with autofocus and it was not intended to be evaluated. However, the specs were so close to PCB camera’s, just like the system handling the camera, that is was tempting!
Specs
EMEET S600 is a webcam. It is characterized by an excellent price performance ratio. Contrary to an IP camera, latency is very low which might make it suitable for rear-view.
Test 1: Linux streaming
$ v4l2-ctl --list-devices
EMEET SmartCam S600: EMEET Smar (usb-0000:6f:00.4-2.3.3):
/dev/video0
/dev/video1
/dev/media0
$ v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
...
[0]: 'MJPG' (Motion-JPEG, compressed)
Size: Discrete 3840x2160
Interval: Discrete 0.033s (30.000 fps)
etc...
...
[1]: 'YUYV' (YUYV 4:2:2)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 640x360
Interval: Discrete 0.033s (30.000 fps)
So YUYV is limited where MJPG offers high resolutions. This is where quite some programs fail by using YUYV only. Like this:
$ ffmpeg -f v4l2 -i /dev/v4l/by-path/pci-0000:6f:00.4-usb-0:2.3.3:1.0-video-index0 test.mp4
...
[video4linux2,v4l2 @ 0x5584e52d95c0] The V4L2 driver changed the video from 1920x1080 to 640x480
...
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 147456 kb/s, 30 fps, 30 tbr, 1000k tbn
...
How to work around that?
$ v4l2-ctl --list-devices
EMEET SmartCam S600: EMEET Smar (usb-0000:6f:00.4-2.3.3):
/dev/video0
/dev/video1
/dev/media0
$ v4l2-ctl --device /dev/video0 --list-formats
...
[0]: 'MJPG' (Motion-JPEG, compressed)
[1]: 'YUYV' (YUYV 4:2:2)
$ v4l2-ctl --list-formats-ext
...
[0]: 'MJPG' (Motion-JPEG, compressed)
Size: Discrete 3840x2160
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 2560x1440
Interval: Discrete 0.033s (30.000 fps)
...
[1]: 'YUYV' (YUYV 4:2:2)
...
$ cd Desktop/
$ ffmpeg -f v4l2 -list_formats all -i /dev/video0
or
$ ffmpeg -list_formats all -i /dev/video0
...mjpeg...: 3840x2160 2560x1440 1920x1080 1280x960 1280x720 1024x576 960x720 800x600 640x480 640x360
...yuyv422...: 640x480 640x360
$ ffmpeg -f v4l2 -input_format mjpeg -i /dev/video0 -c:v copy tmp.mp4
$ ffmpeg -f v4l2 -input_format mjpeg -framerate 30 -video_size 3840x2160 -i /dev/video0 -c:v copy test.mp4
$ ffmpeg -f v4l2 -input_format mjpeg -video_size 3840x2160 -i /dev/video0 -c:v copy test.mp4
Camera test: ???? (IMX415+SPCA2688)
This is a USB camera with a Sony IMX415 sensor (Japan) and a SunplusIT SPCA2688 compressor (Taiwan).