天天看點

樹莓派定制為無線便攜監控攝像頭

Urna Semper

Instructor’s Name

June 14, 2014

簡述:

将樹莓派定制為無線便攜監控攝像頭,插上USB攝像頭,插上USB wifi,然後将攝像頭的資料編碼,将編碼後的資料推流至流媒體伺服器,其他人就可以通過流媒體伺服器可以觀看到樹莓派攝像頭采集到的資料。

内容:

将樹莓派供電,插上HDMI,接上顯示器,就是一個miniPC,其實這個是很正常的,但是Raspberry Pi這個東西畢竟是個簡單的miniPC系統,支援的裝置還是挺少的,加上USB攝像頭比較老了,是好幾年前買的,是以不大好用,lsusb可以看到usb可以識别到,但是沒有對應的驅動

ls /dev/沒有看到video0,lsmod也沒有看到v4l之類的資訊;而USB wifi,可以識别,樹莓派是去年買的,可能kernel相對來有點老了,是以沒有支援上,就下載下傳了pidora,裝了一個新的。因為Raspberry Pi是SD Card加載系統的,是以,安裝系統還是比較友善的,将image通過dd到SDCard裡面就可以了。裝上以後,USB WIFI就可以被識别出來了,但是USB Camera還是識别不出來,這樣的話就要重新驅動了;

點選(此處)折疊或打開

  1. [root@pidora ~]# lsusb
  2. Bus 001 Device 008: ID 046d:c31c Logitech, Inc. Keyboard K120 for Business
  3. Bus 001 Device 010: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse
  4. Bus 001 Device 006: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera
  5. Bus 001 Device 005: ID 1a40:0101 Terminus Technology Inc. Hub
  6. Bus 001 Device 004: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter
  7. Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
  8. Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. SMC9512/9514 USB Hub
  9. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

通過這個資訊可以看到兩個相關的USB資訊,一個是USB攝像頭

點選(此處)折疊或打開

  1. Bus 001 Device 006: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera

另外一個是USB WIFI

點選(此處)折疊或打開

  1. Bus 001 Device 004: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter

可以看到USB攝像頭是Microdia Sonix USB 2.0 Camera

這個裝置的驅動在Linux-2.6的時候就已經有了,但是Pidora預設是不支援的,是以需要自己重新去編譯LinuxKernel,定制一下,支援 RTL8192CU 和Sonix Camera就可以了,然後做成rpm,通過rpm安裝:

點選(此處)折疊或打開

  1. rpm -Uvh kernelxxxxxxxxx.rpm

安裝好以後,就可以看到boot下面的資訊是這樣的

點選(此處)折疊或打開

  1. [root@pidora ~]# ls /boot
  2. boot.scr config.txt config.txt.pal grub start.elf
  3. bootcode.bin config.txt.hdmi_nooverscan config.txt.pal_brazil kernel-3.12.17-2.20140415git1782035.rpfr20.img start.elf.desc
  4. cmdline.txt config.txt.hdmi_overscan fixup.dat kernel-3.12.20-1.20140521git7bd46e7.rpfr20.img start_cd.elf
  5. config-3.12.17-2.20140415git1782035.rpfr20 config.txt.ntsc_japan fixup_cd.dat kernel.img start_x.elf
  6. config-3.12.20-1.20140521git7bd46e7.rpfr20 config.txt.ntsc_northamerica fixup_x.dat lost+found

然後重新開機Raspberry Pi,就會發現,/dev下面出現了/video0這個裝置驅動檔案:

點選(此處)折疊或打開

  1. [root@pidora ~]# ls /dev/vide*
  2. /dev/video0

這個攝像頭去動起來了,那麼接下來怎麼采集視訊資料呢。

        本文來自bbs.chinaffmpeg.com 孫悟空所寫

通過ffmpeg即可,在Raspberry Pi下面安裝ffmpeg,其實Raspberry Pi友善的地方就是他是個miniPC,非常友善,将PC下編譯ffmpeg的時候需要的源碼包傳到Raspberry Pi上即可,其他步驟和PC一樣;

然後采集攝像頭資料: 

樹莓派定制為無線便攜監控攝像頭

因為camera在Linux下面一般是V4L,也就是video4linux或者video4linux2,而ffmeg可以支援這個,那麼就可以看到如上圖所示;發現usb camera可以知道一些參數,視訊是Rawdata,yuy2的資料,分辨率是640x480;

然後可以通過ffmpeg去進行編碼,和操作本地檔案一樣;

點選(此處)折疊或打開

  1. ffmpeg -r 30 -f video4linux2 -i /dev/video0 -vcodec libx264 -r:v 25 -b:v 2000k -pix_fmt yuv420p -preset ultrafast -s 640x480 -f flv rtmp://192.168.1.194/chinaffmpeg/sunwukong

編碼速度剛剛好,可以推流。

rtmp伺服器可以使用nginx-rtmp,由于樹莓派是USB供電,那麼可以使用充電寶,就可以帶走了

        下面看一下效果圖

樹莓派定制為無線便攜監控攝像頭
樹莓派定制為無線便攜監控攝像頭