OpenWrt在接入usb camera時自動啓動mjpg-streamer

OpenWrt中,可以通過mjpg-streamer+usb camera實現Webcam。

運行mjpeg-streamer的方法有多種。

一種是在OpenWrt啓動時運行mjpg-streamer。可能遇到的情況是,運行mjpg-streamer時,usb camera還沒有初始化完成(即,設備沒有出現在/dev目錄下)而導致運行失敗。

一種是通過ssh登錄OpenWrt,並運行mjpg-streamer。或者在OpenWrt中安裝luci,然後可以通過網頁啓動mjpg-streamer。

本文介紹一種通過Hotplug實現在usb camera接入時自動啓動mjpeg-streamer的方法。

Hotplug可以檢測各種熱插拔的設備的接入與移除,並且可以在設備接入和移除事件發生時運行指定的腳本。

usb camera屬於Hotplug類別中的usb設備和input設備,這裏是利用其input設備屬性。

通過配置兩個文件:/etc/hotplug2.rules和/etc/hotplug.d/input/20-mjpg-streamer,即可實現上述功能。

1)讓Hotplug在檢測input設備時運行/etc/hotplug.d/input目錄下的腳本——更改/etc/hotplug2.rules,去掉"^input"前的"^",修改後的內容如下:

$include /etc/hotplug2-common.rules  
  
SUBSYSTEM ~~ (^net$|input$|^button$|^usb$|^ieee1394$|^block$|^atm$|^zaptel$|^tty$) {  
    exec /sbin/hotplug-call %SUBSYSTEM%  
}  
  
DEVICENAME == watchdog {  
    exec /sbin/watchdog -t 5 /dev/watchdog  
    next-event  
}

2)編寫/etc/hotplug.d/input/20-mjpg-streamer文件,其內容如下:

case "$ACTION" in  
    add)  
            # start process  
        /etc/init.d/mjpg-streamer start  
            ;;  
    remove)  
            # stop process  
        /etc/init.d/mjpg-streamer stop  
            ;;  
esac


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章