ChinaFFmpeg

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10373|回复: 2

树莓派定制为无线便携监控摄像头

[复制链接]
发表于 2014-6-14 23:42:45 | 显示全部楼层 |阅读模式
Urna Semper
Instructor’s Name
June 14, 2014


树莓派定制为无线便携监控摄像头
ChinaFFmpeg 孙悟空
简述:
将树莓派定制为无线便携监控摄像头,插上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还是识别不出来,这样的话就要重新驱动了;
[AppleScript] 纯文本查看 复制代码
[root@pidora ~]# lsusb
Bus 001 Device 008: ID 046d:c31c Logitech, Inc. Keyboard K120 for Business
Bus 001 Device 010: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse
Bus 001 Device 006: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera
Bus 001 Device 005: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 004: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. SMC9512/9514 USB Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
通过这个信息可以看到两个相关的USB信息,一个是USB摄像头
[AppleScript] 纯文本查看 复制代码
Bus 001 Device 006: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera
另外一个是USB WIFI
[AppleScript] 纯文本查看 复制代码
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安装:
[AppleScript] 纯文本查看 复制代码
rpm -Uvh kernelxxxxxxxxx.rpm
安装好以后,就可以看到boot下面的信息是这样的
[AppleScript] 纯文本查看 复制代码
[root@pidora ~]# ls /boot
boot.scr                                    config.txt                    config.txt.pal         grub                                            start.elf
bootcode.bin                                config.txt.hdmi_nooverscan    config.txt.pal_brazil  kernel-3.12.17-2.20140415git1782035.rpfr20.img  start.elf.desc
cmdline.txt                                 config.txt.hdmi_overscan      fixup.dat              kernel-3.12.20-1.20140521git7bd46e7.rpfr20.img  start_cd.elf
config-3.12.17-2.20140415git1782035.rpfr20  config.txt.ntsc_japan         fixup_cd.dat           kernel.img                                      start_x.elf
config-3.12.20-1.20140521git7bd46e7.rpfr20  config.txt.ntsc_northamerica  fixup_x.dat            lost+found
然后重启Raspberry Pi,就会发现,/dev下面出现了/video0这个设备驱动文件:
[AppleScript] 纯文本查看 复制代码
[root@pidora ~]# ls /dev/vide*
/dev/video0
这个摄像头去动起来了,那么接下来怎么采集视频数据呢。
通过ffmpeg即可,在Raspberry Pi下面安装ffmpeg,其实Raspberry Pi方便的地方就是他是个miniPC,非常方便,将PC下编译ffmpeg的时候需要的源码包传到Raspberry Pi上即可,其他步骤和PC一样;
然后采集摄像头数据:

因为camera在Linux下面一般是V4L,也就是video4linux或者video4linux2,而ffmeg可以支持这个,那么就可以看到如上图所示;发现usb camera可以知道一些参数,视频是Rawdata,yuy2的数据,分辨率是640x480;
然后可以通过ffmpeg去进行编码,和操作本地文件一样;
[AppleScript] 纯文本查看 复制代码
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供电,这个可以加上一个充电宝,搞定;

效果如下



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

发表于 2014-6-20 12:03:09 | 显示全部楼层
严重顶一个
回复 支持 反对

使用道具 举报

发表于 2014-6-20 17:35:36 | 显示全部楼层
顶顶,大师兄,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|ChinaFFmpeg

GMT+8, 2024-4-27 10:58 , Processed in 0.059332 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表