這一次來規劃利用 arduino UNO Q 來架設一個可以將 usb camera畫面串流出去,可以應由web 介面去瀏覽的實作

--硬體設置--

.arduino uno Q接 type c usb擴充埠 + PD power + usb camera

.無線網路 router

--------------

Arduino UNO Q必須先安裝 mediamtx

我是安裝在 /home/arduino/tools 目錄下

在 ardiono uno Q console下指令

wget https://github.com/bluenviron/mediamtx/releases/download/v1.15.6/mediamtx_v1.15.6_linux_arm64.tar.gz

//解壓縮

tar -xzvf mediamtx_v1.15.6_linux_arm64.tar.gz


解壓縮後就可以看到 mediamtx 執行檔與 mediamtx.yml設定檔

修改 mediamtx.yml ,找關鍵字 webrtcICEServers2 ,將部分改成下方內容

--
webrtcICEServers2:
- url: stun:stun.l.google.com:19302
--



//安裝gstreamer 缺少套件
sudo apt-get update
sudo apt-get install libgstreamer-plugins-base1.0-0 gstreamer1.0-rtsp


接著,就可以開兩個 console


一個執行:

-- 640x480 --

gst-launch-1.0 v4l2src device=/dev/video0 ! \
video/x-raw,width=640,height=480 ! \
videoconvert ! \
clockoverlay time-format="%Y/%m/%d %H:%M:%S" halignment=right valignment=top font-desc="Sans 20" ! \
fpsdisplaysink text-overlay=true video-sink="x264enc tune=zerolatency speed-preset=ultrafast bitrate=2000 ! rtspclientsink location=rtsp://127.0.0.1:8554/cam" sync=false
--

參數說明:

clockoverlay time-format="%Y/%m/%d %H:%M:%S" halignment=right valignment=top font-desc="Sans 20"  顯示時間

fpsdisplaysink text-overlay=true  顯示FPS


另一個執行:

cd /home/arduino/tools

./mediamtx

就可以看到類似以下視窗


接著就可以在瀏覽器, http://192.168.50.60:8889/cam/  看到串流的畫面


目前arduino uno Q在 640x480解析度下的 FPS約為 23.

但如果在 1280x720解析度下,FPS就只剩下8.


之後再來研究,如何加上AI辨識的部分。




創作者介紹
創作者 CuteParrot 的頭像
CuteParrot

馴龍窩

CuteParrot 發表在 痞客邦 留言(0) 人氣(27)