linux_ok6410配置usb摄像头ZC3XX并在网页使用流媒体显示
2016-10-12 21:54
477 查看
经过半个月的调试,我从开始的想法到功能实现真的是从起劲到无望再到惊喜。
我的配置环境为:linux-3.0.1 usb摄像头为ZC3XX video号为video2 使用软件为:mjpg-streamer windows7 虚拟机 红帽6.0
首先,我插上usb摄像头,不知道型号,不知道该怎么调试,不知道该怎么着手,但是经过一些网上例子学习我终于知道了,该怎么入手了,首先我先按无头苍蝇的行走方式,搜了一下“ok6410linux usb摄像头配置”,然后便开始了各种配置,但是配置完后运行测试程序各种奇葩错误,我甚至快崩溃了,直到一天突然在网上搜到了这个
url:http://blog.csdn.net/theblackbeard/article/details/51392826 在此谢谢这位博主,我深受启发便开始了这种方式调试摄像头。具体步骤如下:
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、 在http://download.csdn.NET/detail/theblackbeard/9518846准备下载 libjpeg-turbo-1.3.1.tar.gz源码包
下载地址: http://download.csdn.net/detail/theblackbeard/9518853准备下载mjpeg-streamer-r63.tar.gz源码包
我使用的摄像头是中星微的,在编译内核的时候,驱动里面选上zc3xx就行,这个摄像头有硬件压缩JPEG格式它返回来的只能是这个格式。pc上用的红帽企业版6.0,开发板OK6410内核是3.0.
3、编译libjpeg
解压libjpeg-turbo-1.3.1.tar.gz:
tar xvzf libjpeg-turbo-1.3.1.tar.gz
进入解压后的目录:
cd libjpeg-turbo-1.3.1
新建一个文件夹_install : mkdir _install (用来保存一会儿生成的头文件和库函数)
配置:
./configure --prefix={填写你自己的目录}/libjpeg-turbo-1.3.1/_install --host=arm-Linux
编译:
make
安装:make install
然后在_install的目录下就有了相关文件,如下图:
把lib下面的库群全都拷贝到开发板的lib目录下,我的开发板是nfs挂载的,所以很方便拷贝
cp ./lib/*so* /homeDemo/rootfs/lib/
4、编译移植mjpg-streamer
先解压:tar xvzf mjpg-streamer
进入 cd mjpg-streamer
修改顶层目录下的Mkefile文件: 将CC = gcc 改成:CC=arm-linux-gcc
然后修改各级(plugins目录、input_gspcav1目录、inpit_testpicture目录、input_uvc目录、output_autofocus目录、output_file目录、output_http目录)下面的Makefile,都是修改CC=arm-linux-gcc这一项。
修改完以后,打开plugins/input_uvc/Makefile
要对这一个,Makefile在进行修改,指明编译的时候需要用到的lib库和头文件,
(1)先指明头文件:
大约在第14行,有这样一句:
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
要在这一行后面加上最后这句是:
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I /root/home/kinds_of_tests/mjpg-streamer/libjpeg-turbo-1.3.1/_install/include
其中杠大写的i,指明编译的头文件,后面就是之前编译生成的lib的头文件路径
(2)指明libjpeg库 在第24行有这一句:
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
在中间加上:
-L /root/home/kinds_of_tests/mjpg-streamer/libjpeg-turbo-1.3.1/_install/lib
加完以后是:
$(CC) $(CFLAGS) -ljpeg -L /root/home/kinds_of_tests/mjpg-streamer/libjpeg-turbo-1.3.1/_install/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
然后编译:make
这时候就会生成mjpg-streamer这个程序,以及一些.so的库,并将所有的.so文件拷贝到nfs目录下的lib目录下,并把mjpg-streamer拷贝到开发板bin目录下面
5、
然后打开超级终端或者SecureCRT,在开发板目录下,执行:
{本部分是将usbwifi准备好:前面的usbwifi驱动在上节已经讲过所以,下面直接应用。
[root@localhost6410]#insmod rt3070sta.ko;//安装usbwifi驱动
然后[root@localhost6410]#ifconfig -a查看网络会出现wlan0 ,
然后再执行 [root@localhost6410]#ifconfig wlan0 up//打开wifi
[root@localhost6410]#wpa_supplicant -i wlan0 -Dwext -c /etc/wpa_supplicant & //连接wifi
[root@localhost6410]#udhcpc -i wlan0
}
./mjpg_streamer -i "input_uvc.so -d /dev/video2" -o "output_http.so -w www"
然后通过windows下的VLC播放器,播放串流,http://192.168.1.6:8080/action=stream就可以看到摄像头的视频,也可以在浏览器里面输入地址观看,但貌似只有火狐支持,其他浏览器只支持看图片:http://10.200.5.62:8080/?action=snapshot(我用360浏览器只能查看图片,其他浏览器没试过)
执行到这里,有些人可以成功,有些人没发成功,没成功的会报一些错误,大致也就是库的路径等等问题,我就是没成功的,当时错误信息没记下来,但是可以按照我下面的方法来做:
在pc上新建一个文件夹:mj-pg(名字无所谓),把之前生成的libjpeg目录下面的所有lib库都拷贝到里面,把mjpg-streamer生成的.so库也拷贝进去,把mjpg-streamer这个程序也拷贝进去,然后把mj-pg这个文件夹整个拷贝到开发板的某个目录下面,我是拷贝到home目录下的,然后在SecureCRT中进入到/home/mj-pg目录下,执行一行语句:export LD_LIBRARY_PATH="$(pwd)"
然后再执行:
./mjpg_streamer -i "input_uvc.so -d /dev/video2" -o "output_http.so -w www"
这样一来应该就可以成功启动起来,然后用VLC播放器播放串流,或者火狐浏览器就可以看了。
我的配置环境为:linux-3.0.1 usb摄像头为ZC3XX video号为video2 使用软件为:mjpg-streamer windows7 虚拟机 红帽6.0
首先,我插上usb摄像头,不知道型号,不知道该怎么调试,不知道该怎么着手,但是经过一些网上例子学习我终于知道了,该怎么入手了,首先我先按无头苍蝇的行走方式,搜了一下“ok6410linux usb摄像头配置”,然后便开始了各种配置,但是配置完后运行测试程序各种奇葩错误,我甚至快崩溃了,直到一天突然在网上搜到了这个
url:http://blog.csdn.net/theblackbeard/article/details/51392826 在此谢谢这位博主,我深受启发便开始了这种方式调试摄像头。具体步骤如下:
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、 在http://download.csdn.NET/detail/theblackbeard/9518846准备下载 libjpeg-turbo-1.3.1.tar.gz源码包
下载地址: http://download.csdn.net/detail/theblackbeard/9518853准备下载mjpeg-streamer-r63.tar.gz源码包
我使用的摄像头是中星微的,在编译内核的时候,驱动里面选上zc3xx就行,这个摄像头有硬件压缩JPEG格式它返回来的只能是这个格式。pc上用的红帽企业版6.0,开发板OK6410内核是3.0.
3、编译libjpeg
解压libjpeg-turbo-1.3.1.tar.gz:
tar xvzf libjpeg-turbo-1.3.1.tar.gz
进入解压后的目录:
cd libjpeg-turbo-1.3.1
新建一个文件夹_install : mkdir _install (用来保存一会儿生成的头文件和库函数)
配置:
./configure --prefix={填写你自己的目录}/libjpeg-turbo-1.3.1/_install --host=arm-Linux
编译:
make
安装:make install
然后在_install的目录下就有了相关文件,如下图:
把lib下面的库群全都拷贝到开发板的lib目录下,我的开发板是nfs挂载的,所以很方便拷贝
cp ./lib/*so* /homeDemo/rootfs/lib/
4、编译移植mjpg-streamer
先解压:tar xvzf mjpg-streamer
进入 cd mjpg-streamer
修改顶层目录下的Mkefile文件: 将CC = gcc 改成:CC=arm-linux-gcc
然后修改各级(plugins目录、input_gspcav1目录、inpit_testpicture目录、input_uvc目录、output_autofocus目录、output_file目录、output_http目录)下面的Makefile,都是修改CC=arm-linux-gcc这一项。
修改完以后,打开plugins/input_uvc/Makefile
要对这一个,Makefile在进行修改,指明编译的时候需要用到的lib库和头文件,
(1)先指明头文件:
大约在第14行,有这样一句:
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
要在这一行后面加上最后这句是:
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I /root/home/kinds_of_tests/mjpg-streamer/libjpeg-turbo-1.3.1/_install/include
其中杠大写的i,指明编译的头文件,后面就是之前编译生成的lib的头文件路径
(2)指明libjpeg库 在第24行有这一句:
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
在中间加上:
-L /root/home/kinds_of_tests/mjpg-streamer/libjpeg-turbo-1.3.1/_install/lib
加完以后是:
$(CC) $(CFLAGS) -ljpeg -L /root/home/kinds_of_tests/mjpg-streamer/libjpeg-turbo-1.3.1/_install/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
然后编译:make
这时候就会生成mjpg-streamer这个程序,以及一些.so的库,并将所有的.so文件拷贝到nfs目录下的lib目录下,并把mjpg-streamer拷贝到开发板bin目录下面
5、
然后打开超级终端或者SecureCRT,在开发板目录下,执行:
{本部分是将usbwifi准备好:前面的usbwifi驱动在上节已经讲过所以,下面直接应用。
[root@localhost6410]#insmod rt3070sta.ko;//安装usbwifi驱动
然后[root@localhost6410]#ifconfig -a查看网络会出现wlan0 ,
然后再执行 [root@localhost6410]#ifconfig wlan0 up//打开wifi
[root@localhost6410]#wpa_supplicant -i wlan0 -Dwext -c /etc/wpa_supplicant & //连接wifi
[root@localhost6410]#udhcpc -i wlan0
}
./mjpg_streamer -i "input_uvc.so -d /dev/video2" -o "output_http.so -w www"
然后通过windows下的VLC播放器,播放串流,http://192.168.1.6:8080/action=stream就可以看到摄像头的视频,也可以在浏览器里面输入地址观看,但貌似只有火狐支持,其他浏览器只支持看图片:http://10.200.5.62:8080/?action=snapshot(我用360浏览器只能查看图片,其他浏览器没试过)
执行到这里,有些人可以成功,有些人没发成功,没成功的会报一些错误,大致也就是库的路径等等问题,我就是没成功的,当时错误信息没记下来,但是可以按照我下面的方法来做:
在pc上新建一个文件夹:mj-pg(名字无所谓),把之前生成的libjpeg目录下面的所有lib库都拷贝到里面,把mjpg-streamer生成的.so库也拷贝进去,把mjpg-streamer这个程序也拷贝进去,然后把mj-pg这个文件夹整个拷贝到开发板的某个目录下面,我是拷贝到home目录下的,然后在SecureCRT中进入到/home/mj-pg目录下,执行一行语句:export LD_LIBRARY_PATH="$(pwd)"
然后再执行:
./mjpg_streamer -i "input_uvc.so -d /dev/video2" -o "output_http.so -w www"
这样一来应该就可以成功启动起来,然后用VLC播放器播放串流,或者火狐浏览器就可以看了。
相关文章推荐
- Linux环境下使用V4L2+opencv以MJPEG格式读取USB摄像头并实时显示
- Linux环境下使用V4L2+opencv以MJPEG格式读取USB摄像头并实时显示
- 摄像头在liunx上的QT显示和OK6410 ARM开发板上的使用
- Linux环境下使用V4L2+opencv以MJPEG格式读取USB摄像头并实时显示
- 摄像头在liunx上的QT显示和OK6410 ARM开发板上的使用
- 摄像头在liunx上的QT显示和OK6410 ARM开发板上的使用
- 在Linux(ubuntu10.10)系统中使用摄像头之USB摄像头
- 在Linux(ubuntu10.10)系统中使用摄像头之USB摄像头
- Linux下USB从(USB gadget) 驱动配置与使用
- 利用V4L2编写的USB摄像头程序2【经OK6410验证成功】
- Linux3.6.7在OK6410平台的移植(二)编译配置linux3.6.7
- 基于S3C2440的Linux-3.6.6移植——基于UVC的USB摄像头移植及视频显示
- OK6410之LINUX2.6.39.2之USB-HOST,MMC/SD,GIPO-KEYS,I2C,USB-STORAGE功能实现
- Linux环境下DNW工具的使用(OK6410)
- linux之GPIO的使用------OK6410
- ZC301摄像头,OK6410的开发板,linux3.0.1,内核Oops的解决方法
- 飞淩6410+linux2.6.28+USB摄像头 半成品案例(中)
- Linux2.6.33下ZC301USB摄像头使用教程
- OK6410 Linux开发环境搭建--编译以及ubuntu的使用方法学习笔记
- linux下使用串口终端C-kermint连接飞凌OK6410开发板