本文將介紹基于米爾電子MYD-YM62X開發(fā)板(米爾基于TI AM62開發(fā)板)的部署流媒體服務實現(xiàn)監(jiān)控功能方案的開發(fā)測試。
摘自優(yōu)秀創(chuàng)作者-HonestQiao
米爾-TI AM62x開發(fā)板除了可以用官方的CSI攝像頭,還可以直接使用第三方的USB攝像頭,我手頭正好有幾個個USB攝像頭:
經(jīng)過實測,可以很好的在米爾-TI AM62x開發(fā)板上使用。
這篇分享,就是在這塊開發(fā)板上部署流媒體服務,通過USB攝像頭實現(xiàn)監(jiān)控功能。
一、軟件準備
要在Linux上面部署流媒體服務,mjpg-streamer是最合適的。
首先,在應用開發(fā)環(huán)境中,進行 mjpg-streamer 跨平臺編譯,具體步驟如下:
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
上面代碼步驟中,使用find+sed,來替換Makefile中的CC配置。
因為應用開發(fā)環(huán)境提供了CC變量,可以直接使用。
將最終編譯出來的mjpg_streamer,部署到開發(fā)板上備用,具體如下:
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/
最終,開發(fā)板上部署的文件如下:
二、攝像頭信息獲取
米爾官方的系統(tǒng),提供了v4l2工具,可以直接使用。
1. 查看當前的攝像頭設備:
v4l2-ctl?--list-devices
可以看到,找到了USB接口的攝像頭,對應的設備地址為 /dev/video0
2. 查看攝像頭的支持的格式類型
v4l2-ctl --list-formats -d /dev/video0
3. 查看攝像頭的具體參數(shù):
v4l2-ctl -D -d /dev/video0
三、流媒體服務啟用
前面安裝好了mjpeg_server,現(xiàn)在可以啟用測試了:
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"
上述命令中,使用/dev/video0做為輸入,分辨率為640x480,輸出端口為8081。
為了安全起見,設置了一個簡單的賬戶密碼test/test123。實際使用中,應該使用復雜的用戶名和密碼。
成功后,顯示如下表示成功:
啟動成功后,就可以通過網(wǎng)址?http://192.168.10.11:8081/?action=stream?進行訪問了。其中192.168.10.11為開發(fā)板的地址。整體環(huán)境如下:
四、總結
從上面的實測視頻可以看到,視頻流的延遲非常非常低低,而且也非常的流暢,沒有絲毫的卡頓。另外,也看了一下當時的CPU負載:
資源占用非常低。
不過,有一點小小遺憾的是,該開發(fā)板暫時還不支持雙USB攝像頭,不然可以上多個一起玩了。總的來說,雖然米爾-TI AM6231屬于米爾-TI AM62x中三個型號的最低配版本,但是做一下工業(yè)基礎應用,完全足夠了。