Klipper Fluidd啟用USB網(wǎng)絡(luò)攝像頭

因?yàn)樾掳姹綤IAUH助手里沒有了安裝MJPG-Streamer的功能,我在設(shè)置Klipper攝像頭的時(shí)候走了些彎路,現(xiàn)在總結(jié)一下具體方法給linux基礎(chǔ)較差的朋友使用。
在Klipper和Fluidd中使用usb網(wǎng)絡(luò)攝像頭需要做兩件事:
安裝流媒體服務(wù),比如MJPG-Streamer或者μStreamer。
Klipper里添加攝像頭。
一、系統(tǒng)環(huán)境:
我安裝Klipper上位機(jī)的硬件是一塊ARM開發(fā)板,系統(tǒng)版本是Armbian 22.11.4 Jammy,Klipper版本v0.11.0,F(xiàn)luidd版本v1.23.1。
二、安裝流媒體服務(wù)
Kiauh助手在新版本(2023年)中已經(jīng)沒有了安裝MJPG-Streamer的選項(xiàng),所以需要手工下載編譯,并且把服務(wù)運(yùn)行起來。只要這一步完成了,就能看到攝像頭拍到的東西了。
mjpg-streamer-experimental的下載地址:https://github.com/jacksonliam/mjpg-streamer
mjpg-streamer-experimental在github上已經(jīng)有兩三年沒更新了,所以我用了μStreamer來替代它,這里也主要寫μStreamer的安裝方法。
μStreamer的下載地址:https://github.com/pikvm/ustreamer?
μStreamer的github頁面下方有說明和安裝介紹供參考。

編譯μStreamer前先安裝依賴包,ssh登錄上位機(jī),使用klipper用戶,執(zhí)行命令:
sudo apt install build-essential libevent-dev libjpeg-dev libbsd-dev
在μStreamer的github頁面上有介紹不同系統(tǒng)的安裝命令,如果不是armbian或者debian/ubuntu系統(tǒng),請參考github頁面上的說明。
依賴包安裝好后下載并make,還是使用klipper用戶,先進(jìn)入到安裝klipper的目錄,一般是home,直接輸入cd回車就行。如果系統(tǒng)里缺少unzip、git、wget、v4l2命令的話先用apt安裝。
????git clone --depth=1 https://github.com/pikvm/ustreamer
????cd ustreamer
????make
第一行g(shù)it clone是從github上把μStreamer復(fù)制下來,國內(nèi)鏈接github時(shí)通時(shí)斷的,下不下來只能自行科學(xué)上網(wǎng)解決。復(fù)制下來后進(jìn)入ustreamer目錄再make,一兩分鐘就好了。如果不想git,也可以按照官方說明wget https://github.com/pikvm/ustreamer/archive/refs/heads/master.zip 下載壓縮包再解壓縮編譯。

編譯完成就可以啟動μStreamer查看攝像頭了。
啟動前先檢查系統(tǒng)識別的攝像頭video編號,輸入命令:
ls -l /dev/video*

如果系統(tǒng)里只有一個(gè)video0,那就直接啟動μStreamer,如果是多個(gè)設(shè)備那就要先檢查哪個(gè)是要使用的攝像頭。注意這些video設(shè)備的權(quán)限是root用戶,如果要使用攝像頭需要sudo提權(quán)。
檢查攝像頭,輸入命令:?
sudo v4l2-ctl --list-devices

可以看到,usb攝像頭是video5和6,然后啟動μStreamer具體試一下哪個(gè)是要使用的攝像頭就好了。
啟動命令:
sudo ./ustreamer --device=/dev/video5 --host=0.0.0.0 --port=8080 -r 1280x720

使用sudo執(zhí)行ustreamer命令,--device=/dev/video5使用設(shè)備video5,--host=0.0.0.0 --port=8080不限制訪問ip及訪問端口為8080,-r 1280x720攝像頭分辨率720p,設(shè)備編號和分辨率根據(jù)自己的攝像頭修改。
啟動ustreamer后不要退出ssh,用網(wǎng)頁訪問 http://ip:8080/ ,ip根據(jù)自己klipper上位機(jī)修改。打開網(wǎng)頁點(diǎn)擊 /stream 就可以看到攝像頭拍的內(nèi)容了。
攝像頭拍到東西后再到klipper里新增攝像頭。
三、Klipper新增攝像頭
網(wǎng)頁打開Klipper,進(jìn)入設(shè)置-攝像頭-添加攝像頭:

輸入攝像頭名稱、攝像頭地址,地址有默認(rèn)值檢查下沒問題直接保存,然后回到klipper儀表盤就能看到攝像頭了。

到這里攝像頭就能正常工作了,剩下的可以給ustreamer添加個(gè)自啟動服務(wù),讓系統(tǒng)啟動時(shí)自動啟動ustreamer。
四、ustreamer添加開機(jī)自啟動服務(wù)
到這就寫的簡單一點(diǎn)了,首先在ustreamer目錄下創(chuàng)建一個(gè)啟動腳本,把啟動命令寫進(jìn)去:
vim startup.sh
#!/bin/sh
/home/klipper/ustreamer/ustreamer --device=/dev/video1 --host=0.0.0.0 --port=8080 -r 1280x720
給文件添加執(zhí)行權(quán)限:
chmod +x startup.sh
路徑根據(jù)自己的環(huán)境修改,vim不會用的話搜一下,保存退出。然后創(chuàng)建服務(wù)文件:
sudo vim /etc/systemd/system/ustreamerd.service
把以下內(nèi)容填進(jìn)去:
[Unit]
Description=uStreamer
After=default.target
[Service]
ExecStart=/home/klipper/ustreamer/startup.sh
[Install]
WantedBy=default.target
根據(jù)自己的環(huán)境修改路徑,保存退出,執(zhí)行:
sudo systemctl daemon-reload
sudo systemctl enable ustreamerd.service
系統(tǒng)重啟以后就會自動啟動ustreamer服務(wù)了,如果系統(tǒng)里有多個(gè)攝像頭,攝像頭編號可能每次啟動都不一樣,攝像頭編號變了現(xiàn)有的啟動命令就不起作用了。
如果攝像頭video編號會變,可以嘗試ls /dev/v4l/by-id/* 查找攝像頭by-id,把命令修改成使用by-id啟動:
/home/klipper/ustreamer/ustreamer --device=/dev/v4l/by-id/usb-RYS_USB_Camera_200901010001-video-index0 --host=0.0.0.0 --port=8080 -r 1280x720
by-id填入自己的設(shè)備id
到這里Klipper的攝像頭基本設(shè)置就完成了,攝像頭所拍攝的視頻流對系統(tǒng)資源消耗比較大,如果上位機(jī)性能不足會卡頓或者影響打印,這時(shí)候可以通過降低分辨率、降低拍攝幀數(shù)、延遲攝影等方法減輕系統(tǒng)壓力。
如果還需要其他功能可以參考網(wǎng)上的其他教程,比如:
https://www.cnblogs.com/sjqlwy/p/klipper_webcam.html