基于mjpg-streamer远程视频WEB监控 项目笔记一

        写之前先吐槽一下开发过程中浪费时间的地方,使用的开发板是友善之臂的tiny210采用cortex-A8的处理器,开发板配备了一个标准的USB口,经查证那个USB是2.0的,实验过程中,USB摄像头识别不稳定,FIMC框架模块一直报错(足足浪费了一天的时间,查了IIC,USB,FIMC和摄像头驱动,就差没读源代码了),干脆接个USB-HUB,将2.0转成1.1,神奇的事情出现了,各种稳定。犯贱的USB!!!!(这个问题先mark一下,有待以后考证), 个人习惯在使用mjpg-streamer之前先做足功课,进入正题:

        mjpg-streamer是用于从webcam摄像头采集图像,把他们以流的形式通过基于ip的网络传输到浏览器端,如火狐、Cambozola和VLC播放器等。它可以利用某些webcam的硬件压缩功能来降低服务器CPU的开销。为嵌入式设备和一些常规服务器提供一个轻量且更少CPU消耗的方案。(翻译维基百科)在其源代码中主要围绕linuxv的4l2接口(注意低版本内核不存在v4l2接口因此无法使用)、socket网络编程、多线程编程。其中还包含重要的插件input-plugins和output-plugins。

input-plugins:

1、input_testpicture.so库

        整个模块正如他的名字(test),就是一个测试库,当你没有摄像头的时候也能通过这个进行测试工作。

2、input_uvc.so库

        这个库是使用linux-uvc/V4L2标准的设备中抓取图片,比如中星微的ZC301。

output-plugins:

1、output_http.so库

        这个库是完全符合http1.0标准的webserver。可在单独的文件夹中提供文件访问,也可以执行一系列指令。


下面开始移植mjpg-streamer:

一、环境:

主机环境:ubuntu 10.04

目标机:tiny210(cortex-A8)

目标机内核版本:3.0.8

交叉编译工具:arm-none-linux-gnueabi-gcc-4.5.1

摄像头:中星微ZC301

二、移植过程:

1、linux内核配置,使内核支持V4L2接口和ZC301摄像头。

1)、进入内核源代码文件夹,启动内核配置界面

#make menuconfig


2)、在Device drivers(设备驱动)下找到多媒体支持

3)、使linux内核支持视频V4L2接口

4)、让linux内核支持ZC301摄像头驱动


好了,内核配置完毕。

5)、下面只要重新编译内核

#make zImage

编译完成之后,新的内核文件产生了,不管用什么刷机方法把内核刷到开发板中。


下一笔记将开始移植mjpg-streamer。


你可能感兴趣的:(linux)