博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络视频服务器移植
阅读量:4057 次
发布时间:2019-05-25

本文共 2191 字,大约阅读时间需要 7 分钟。

 

一、环境

主机环境ubuntu 10.10

        目标机FS2410(S3C2410)
        
主机工具链gcc-4.4.5
        
交叉工具链arm-none-linux-gnueabi-gcc-4.3.2
        
摄像头ZC301

二、移植过程

1、配置内核是内核支持芯片为ZC301的摄像头

        Make menuconfig
                DeviceDrivers ---> 
                        <*>Multimedia support --->
                                <*>Video For Linux 
                                [*]Enable Video For Linux API 1 (DEPRECATED) (NEW)
                                [*]Video capture adapters (NEW) --->
                                        [*]V4L USB devices (NEW) ---> 
                                                <*>USB Video Class (UVC) 
                                                [*]UVC input events device support (NEW)
                                        <*>USB ZC0301[P] webcam support (DEPRECATED)

2、重新编译内核

make zImage

通过上面两个步骤就可以驱动我们的摄像头了。但是这个驱动是基于V4l2的。以前基于V4L的一些上层应用就不能用了,或需要做大量的修改!这里我们要实现网络视频的功能,以前都是用servfox这个网络视频服务器,但是这个服务器就是基于V4L的,我们如果想用的话就得对servfox的源码进行修改。这里我们选用另外一种方案mjpg-stream

3mjpg-stream的移植

关于mjpg-stream的资料大家可以在下面这个网址查看: 

        mjpg-stream的移植需要jpeg的库,所以我们先移植jpeg的库

(1)jpeg库的移植

        1)jpeg源码包通过下面这个网址下载

                http://www.ijg.org/files/jpegsrc.v8b.tar.gz
                2)解压源码包
                tarxvf jpegsrc.v8b.tar.gz
                3)
配置源码
                cdjpeg-8b
                ./configure--prefix=/home/linux/s3c2410-2.6.35/video/jpeg --host=arm-none-linux-gnueabi
                4)
编译
                make
                5)
安装
                makeinstall
                6)
拷贝库到文件系统中
                cp//home/linux/s3c2410-2.6.35/video/jpeg /lib/libjpeg.so.8 /source/rootfs/lib

(2)mjpg-stream的移植

        1)mjpg-stream源码包通过下面这个网址下载

                http://sourceforge.net/projects/mjpg-streamer/ 
                2)解压源码
                tarxvf mjpg-streamer-r63.tar.gz
                3)
修改源码
                cdmjpg-streamer-r63
                
修改顶层makefileplugins目录中的各级makefile将所有
                CC=gcc
                
修改为
                CC=arm-none-linux-gnueabi-gcc

        修改plugins/input_uvc/Makfile

                修改
                CFLAGS+= -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
                
                CFLAGS+= -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/home/linux/s3c2410-2.6.35/video/jpeg/include
                
修改
                $(CC)$(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
                
                $(CC)$(CFLAGS) -ljpeg -L/home/linux/s3c2410-2.6.35/video/jpeg/lib -o $@ input_uvc.cv4l2uvc.lo jpeg_utils.lo dynctrl.lo

         jpeg_utils.c:27:fatal error: jpeglib.h: No such file or directory

                4)编译
                make
                5)
测试
                mkdir/source/rootfs/mjpg
                cp*.so /source/rootfs/mjpg
                cpmjpg-stream /source/rootfs/bin

        打开开开发板运行

                mjpg_streamer-i "/mjpg/input_uvc.so" -o "/mjpg/output_http.so -w /www"
                在源码目录下有start.sh,这个脚本里有一些mjpg-stream的使用方法及说明

        打开一个网页输入下面地址就能够看到一个视频(开发板的IP192.168.1.202)

                http://192.168.1.202:8080/?action=stream 
                打开一个网页输入下面地址就能够看到一个静态图片:
                http://192.168.1.202:8080/?action=snapshot 
                6)mjpg源码下有一个www的目录,这个一个网络使用mjpg的实例,结合web服务器(boa)可以实现一些其他相关功能。

 

转载地址:http://fnzji.baihongyu.com/

你可能感兴趣的文章
使用 Springboot 对 Kettle 进行调度开发
查看>>
一文看清HBase的使用场景
查看>>
解析zookeeper的工作流程
查看>>
搞定Java面试中的数据结构问题
查看>>
慢慢欣赏linux make uImage流程
查看>>
linux内核学习(7)脱胎换骨解压缩的内核
查看>>
以太网基础知识
查看>>
慢慢欣赏linux 内核模块引用
查看>>
kprobe学习
查看>>
慢慢欣赏linux phy驱动初始化2
查看>>
慢慢欣赏linux CPU占用率学习
查看>>
2020年终总结
查看>>
Homebrew指令集
查看>>
React Native(一):搭建开发环境、出Hello World
查看>>
React Native(二):属性、状态
查看>>
JSX使用总结
查看>>
React Native(四):布局(使用Flexbox)
查看>>
React Native(七):Android双击Back键退出应用
查看>>
Android自定义apk名称、版本号自增
查看>>
adb command not found
查看>>