In addition to the official CSI camera, the Mir-TI AM62x development board can also directly use third-party USB cameras. I happen to have several USB cameras on hand:
After actual testing, it can be used well on the Mil-TI AM62x development board.
This article is about deploying streaming media services on this development board and realizing monitoring functions through a USB camera.
1. Software Preparation
To deploy streaming media services on Linux, mjpg-streamer is the most suitable.
First, in the application development environment, compile mjpg-streamer across platforms. The specific steps are as follows:
git clone https://github.com/jacksonliam/mjpg-streamer
cd mjpg-streamer/mjpg-streamer-experimental
find -name "Makefile" -exec sed -i "s/CC = gcc/#CC = gcc/g" {} \;
grep -rn 'CC = gcc' *
make clean
make
file mjpg_streamer
# mjpg_streamer: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=48d2a902d1672913291a75a055d224d340d77649, for GNU/Linux 3.14.0, with debug_info, not stripped
In the above code steps, use find+sed to replace the CC configuration in Makefile.
Because the application development environment provides the CC variable, it can be used directly.
Deploy the final compiled mjpg_streamer to the development board for standby use, as follows:
ssh root@192.168.10.11 "mkdir ~/mjpeg_server/"
scp mjpg_streamer root@192.168.10.11:~/mjpeg_server/
scp *.so root@192.168.10.11:~/mjpeg_server/
Finally, the files deployed on the development board are as follows:
2. Camera Information Acquisition
Mir's official system provides v4l2 tools that can be used directly.
1. View the current camera device:
v4l2-ctl --list-devices
As you can see, the camera with USB interface is found, and the corresponding device address is /dev/video0
2. Check the supported formats of the camera
v4l2-ctl --list-formats -d /dev/video0
3. Check the specific parameters of the camera:
v4l2-ctl -D -d /dev/video0
3. Streaming service activation
Having installed mjpeg_server earlier, we can now enable the test:
cd ~/mjpg_streamer
./mjpg_streamer -i "input_uvc.so -d /dev/video0 -n -r 640x480 -f 10" -o "output_http.so -p 8081 -w ./ -c test:test123"
In the above command, /dev/video0 is used as the input, the resolution is 640x480, and the output port is 8081.
For security reasons, a simple account password test/test123 is set. In actual use, complex user names and passwords should be used.
After success, the following is displayed to indicate success:
After successful startup, you can access it through the URL http://192.168.10.11:8081/?action=stream , where 192.168.10.11 is the address of the development board.
The overall environment is as follows:
The actual operation effect is as follows:
15065_1708679587
Camera video recording results: [Second test recording]
4632_1708679768
IV. Conclusion
From the actual test video above, you can see that the delay of the video stream is very, very low, and it is also very smooth without any lag.
In addition, I also looked at the CPU load at that time:
The resource usage is very low.
However, it is a little regrettable that the development board does not support dual USB cameras yet, otherwise you can use multiple cameras at the same time.
In general, although the MIL-TI AM6231 is the lowest-end version of the three models of the MIL-TI AM62x, it is completely sufficient for basic industrial applications.