這一次來規劃利用 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辨識的部分。


留言功能已依作者設定調整顯示方式