吐槽先:USB 设备,是我刚刚开始学习的,完全搞不懂,玩这个USB摄像头淘宝上买的杂牌子,我在xp 下测试了一下,只能保证芯片是芯片是ZC0301PL。 其它都未知。
现在开始正文:( 博文来自CSDN Acanoe 的博客:http://blog.csdn.net/ACanoe
我的操作环境是、主机:xp + VMware ubuntu 10.10 。 开发板:OK6410 A板。 使用内核:Linux 2.6.36.2 。 使用软件: mjpg-streamer
1、配置内核支持 中微星的 ZC3XX 摄像头。
Device Drivers ->
Multimedia devices->
<*>video for linux
[*]video capture adapters->
[*]V4l USB devices ->
<*>USB video class (UVC)
[*] UVC input events device support
<*>GSPCA based webcams ->
<*>ZC3XX USB Camera Driver
配置好了以后编译内核,下载到开发板。
2、查看USB 摄像头接入开发板的打印信息,当然你的开发板首先需要先支持 USB-Host 。我的开发板串口打印信息是:
[root@FORLINX6410]# usb 1-1: new full speed USB device using s3c2410-ohci and ad
dress 4
usb 1-1: New USB device found, idVendor=0ac8, idProduct=301b
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1: Product: PC Camera
usb 1-1: Manufacturer: Vimicro Corp.
gspca: probing 0ac8:301b
zc3xx: probe sensor -> 000a
zc3xx: Find Sensor PB0330. Chip revision 0
input: zc3xx as /class/input/input2
gspca: video0 created
[root@FORLINX6410]#
释放 USB 摄像头 的打印信息是:
[root@FORLINX6410]# usb 1-1: USB disconnect, address 4
gspca: video0 disconnect
gspca: video0 released
[root@FORLINX6410]#
3、编译安装:mjpg-streamer
移植参考了百度文库的
基<wbr>于<wbr>T<wbr>Q<wbr>2<wbr>4<wbr>4<wbr>0<wbr>开<wbr>发<wbr>板<wbr>的<wbr>L<wbr>i<wbr>n<wbr>u<wbr>x<wbr>-<wbr>2<wbr>.<wbr>6<wbr>.<wbr>3<wbr>0<wbr>.<wbr>4<wbr>的<wbr>网<wbr>络现, 下载地址为:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
主要步骤,自己总结为:
3.1 : 下载 mjgp-streamer 源码包
解压后进入 mjgp-streamer 目录 修改顶层 Makefile ,将 CC=gcc 修改为 CC=arm-linux-gcc。 或者直接使用 make CC=arm-linux-gcc 可以直接编译。
3.2 : make 后在 mjpg-streamer 目录下会生成 *.so 和 mjpt-streamer 可执行文件 ,其中 input_uvc.so 和 output_http.so 是我们需要的测试文件
3.3 : 测试准备,你可以直接将我们编译好的 mjpg-streamer 的整个目录 copy 到你的文件系统根目录下,也可以只copy mjpg-streamer , input_uvc.so
和output_http.so 这三个文件。 不过我是将真个目录copy 到我的文件系统根目录下的。(我是用的是yaffs2 文件系统)。测试前先用网线联通你的主机
和 开发板,我是用虚拟机上的 火狐浏览器测试的。(使用viewer.exe 和 XP 下的IE 浏览器都不成功),要保证你的虚拟机能 ping 通你的开发板。
3.4 :进入你的文件系统,进入你已经copy 好了的mjpg-streamer 目录,我mjpg-streamer 下的文件有:
[root@FORLINX6410]# ls
CHANGELOG mjpg-streamer plugins
LICENSE mjpg_streamer scripts
Makefile mjpg_streamer.c start.sh
README mjpg_streamer.h utils.c
TODO mjpg_streamer.o utils.h
input_file.so output_file.so utils.o
input_testpicture.so output_http.so www
input_uvc.so output_udp.so
[root@FORLINX6410]#
然后输入命令:
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
输入完命令后我开发板串口的打印信息是:
MJPG Streamer Version: svn rev:
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format............: MJPEG
Adding control for Pan (relative)
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Tilt (relative)
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Pan Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Tilt Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Pan/tilt Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Focus (absolute)
UVCIOC_CTRL_ADD - Error: Invalid argument
mapping control for Pan (relative)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Tilt (relative)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Pan Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Tilt Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Pan/tilt Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Focus (absolute)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for LED1 Mode
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for LED1 Frequency
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Disable video processing
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Raw bits per pixel
UVCIOC_CTRL_MAP - Error: Invalid argument
o: www-folder-path...: ./www/
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled
我这里显然有报错信息, 上次也是,这此我就没管它,然后进入ubuntu 虚拟机进行测试。
在火狐浏览器里面输入:
192.168.0.232:8080/?action=stream
就可以看到流畅的视频流了。
很想给大家上传我的视频截图,可是我学校用的网络客户端很垃圾,总是和 CSDN 有冲突,不能上传图片,也不能进个人主页。
呵呵:想看图的点这里:
哈:这是我用外网上传的图片: