本文來源電子發燒友社區,作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2293834_1_1.html
實錄視頻(開發板體驗視頻,詳見作者原帖子)
最近在研究米爾的開發板,用上了一個海康威視的USB攝像頭,很好用,于是想在星光派單板計算機也嘗試使用。
米爾的開發板是arm64的,而咱們的星光派單板計算機,是RISC-V的,架構不一樣,不清楚軟件的支持情況如何。
進過一番嘗試,發現異常的順利,能夠正常使用,現在將使用的過程,分享出來。
實際使用的??低昒SB攝像頭如下:
將該USB攝像頭,連接到USB接口即可:
因為我還研究了,在矽速M2 Dock上面通過網絡獲取星光派USB攝像頭的數據,所以上圖中帶屏幕的就是M2 Dock,后續這個過程,也會給大家分享。我使用的是Debian系統,大家如果使用其他的系統,可以參考,根據系統實際情況進行處理。
啟動星光派單板計算機,并使用ssh連接后,接上攝像頭,拔下攝像頭,通過dmesg命令可以看到信息:
dmesg
其中,紅線上面的部分,是拔掉USB后的信息。
而紅線下面的部分,則是接上USB攝像頭后的信息。
從其中我們可以看到,系統識別到了HIK 720P Camera
,其中有一個id信息idVendor=2bdf, idProduct=0280
,這個非常重要,后面會使用到。
然后,我們可以安裝v4l工具,來查看攝像頭的具體參數信息:
# 安裝v4l
sudo apt install v4l-utils
# 查看識別的攝像頭設備
sudo v4l2-ctl --list-devices
# 查看攝像頭支持的格式
sudo v4l2-ctl -d /dev/video0 --list-formats
# 查看攝像頭支持的分辨率:
sudo v4l2-ctl --list-framesizes=MJPG -d /dev/video0
從上圖中,可以看到,HIK 720P Camera
掛載點鐘,可以使用/dev/video0,支持MJPEG和YUYV格式,分辨率最高位720P。
獲取了上面的攝像頭基本信息后,就可以正式試用攝像頭了。
為了讓普通用戶也能夠使用/dev/video0設備,我們需要先做一下設置:
sudo vim /etc/udev/rules.d/my-uvc-usb.rules
### 添加下面這行
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2bdf", ATTRS{idProduct}=="0280", GROUP="HonestQiao", MODE="0666"
這里的idVendor、idProduct需要與在demesg中看到接上USB攝像頭后的信息保持一致。GROUP需要使用當前登錄的用戶。
設置完成后,使用sudo reboot
重啟生效即可。
要使用攝像頭拍照和錄制視頻,需要是用合適的工具。
拍照部分,我使用了camorama
,可以實時預覽攝像頭畫面,并且在界面上點擊拍照。
錄制視頻部分,可以試用的軟件很多,我選擇了使用命令行的ffmpeg,雖然使用難度大一點,但是能力強大,而身材有非常小巧。
拍照和錄制視頻后,還需要查看圖片和播放視頻,我使用的是ristretto和smplayer,兩者都簡單好用。
分別安裝上面的4個軟件:
sudo apt install camorama
sudo apt install ffmpeg
sudo apt install ristretto
sudo apt install smplayer
然而,當我配置好xfce桌面環境,打開操作的時候,速度奇慢無比,最終決定放棄桌面系統的操作,改為命令行操作了。
用命令行操作就簡單了,一個ffmpeg命令,就搞定一切了。
拍照:
ffmpeg -f video4linux2 -r 1 -s 640x480 -i /dev/video0 -frames:v 1 test.jpg
錄制視頻:
ffmpeg -f video4linux2 -r 10 -s 640x480 -i /dev/video0 test.mp4
拍照和錄制視頻后,使用ssh將文件拷貝出來,就可以查看了。
上面是使用命令行工具,進行視頻的拍攝,如果你會Python,那么可以用Python編程,來進行拍攝。
要用Python操作攝像頭,需要先安裝cv2模塊
pip install opencv-python
然后編寫camera_test.py:
#coding:utf-8
import cv2
cap = cv2.VideoCapture(0)
flag = cap.isOpened()
index = 1
while(flag):
ret, frame = cap.read()
# cv2.imshow("Capture_Paizhao",frame)
k = cv2.waitKey(1) & 0xFF
if k == ord('s'): #按下s鍵,保存圖片
cv2.imwrite("./" + str(index) + ".jpg", frame)
print(cap.get(3))
print(cap.get(4))
print("save" + str(index) + ".jpg successfuly!")
print("-------------------------")
index += 1
elif k == ord('q'): #按下q鍵,退出
break
cap.release()
cv2.destroyAllWindows()
編寫保存后,運行即可進行操作:
python camera_test.py
按s鍵拍照,按q鍵退出。
-
RISC-V
+關注
關注
45文章
2271瀏覽量
46134 -
賽昉科技
+關注
關注
3文章
152瀏覽量
14275
發布評論請先 登錄
相關推薦
評論