FSPAD_702 MJPG-Streamer视频流服务器移植文档

本文档详细介绍了如何在FSPAD_702平板上移植和测试MJPG-Streamer视频流服务器,包括JPEG库的移植、MJPG-Streamer源码的配置与编译,以及最终的测试步骤。
摘要由CSDN通过智能技术生成

        我们希望在FSPAD_702平板的Linux实验项目中使用视频监控功能,首先选择的就是开源的MJPG-Streamer视频流服务器。 MJPG-Streamer可以通过文件或者是HTTP方式访问Linux UVC摄像头。

1、 JPEG库的移植

        由于平板摄像头采集上的数据为YUV格式,而我们希望得到JPEG的压缩图像,所以需要JPEG库的支持。

a) 下载JPEG库

        通过下面这个网址下载JPEG源码: http://www.ijg.org/files/jpegsrc.v8b.tar.gz

b) 配置JPEG源码

$ tar xvf jpegsrc.v8b.tar.gz
$ cd jpeg-8b

$ ./configure --prefix=/home/linux/home/lee/workdir/farsight/fspad/jpeg/jpeg-arm --host=arm-none-linux-gnueab
// --prefix为指定安装的目录
// --host为编译使用的交叉工具链

        如下图即成功生成编译使用的Makefile。

c) 编译和安装

$ make –j2		//编译

$ make install	//安装到指定目录

        如下即编译安装成功:

        编译生成的库:

d) 添加到文件系统中

        把编译生成的库拷贝的我们使用的文件系统中。

$ cd jpeg-arm		

$ cp lib/* /source/rootfs/lib/		// /source/rootfs 为文件系统的路径

2、 MJPG-Streamer的移植

a) 下载MJPG-Streamer源码

        通过下面这个网址下载MJPG-Streamer源码包:http://sourceforge.net/projects/MJPG-streamer/

b) 配置MJPG-Streamer源码:

i. 修改Makefile文件

        修改顶层Makefile以及所有子层Makefile文件中的编译工具项:

 CC = gcc		
 // 修改为:
 CC = arm-none-linux-gnueabi-gcc
ii. 再次修改plugins/input_uvc/Makfile文件

        第16行添加需要使用JPEG库头文件的路径:

16 CFLAGS += -I/home/linux/workdir/farsight/fspad/jpeg/jpeg-arm/include	

        第24行添加编译input_uvc.so所使用的库文件的路径:

	$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo	
// 修改为:
	$(CC) $(CFLAGS) –ljpeg -L/home/linux/workdir/farsight/fspad/jpeg/jpeg-arm/lib  -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
iii. 修改plugins/input_uvc/v4l2uvc.c

        第99行static int init_v4l2(struct vdIn *vd)函数内添加:

/* FSPAD_702 Linux added by LeeSheen */
#if 1
  struct v4l2_input inp;

  inp.index = 0;

   if (-1 == ioctl(vd->fd, VIDIOC_S_INPUT, &inp))
	   printf("VIDIOC_S_INPUT error\n");
#endif

        第195行mmap函数参数中添加:

  vd->buf.length, PROT_READ, MAP_SHARED, vd->fd,
// 修改为
  vd->buf.length, PROT_READ | PROT_WRITE, MAP_SHARED, vd->fd,

c) 编译MJPG-Streamer源码

$ make clean
$ make –j2	

        如下即编译成功:

 

d) 添加到文件系统中

        把编译生成的应用和库拷贝的我们使用的文件系统中。

$ cp *.so /source/rootfs/mjpg		// /source/rootfs 为文件系统的路径
$ cp mjpg-streamer /source/rootfs/bin

3、 测试MJPG-Streamer

a) 加载平板Camera驱动

# insmod videobuf-core.ko
# insmod videobuf-dma-contig.ko
# insmod gc0308.ko
# insmod sun5i_csi0.ko

 

b) 运行MJPG-Streamer程序

# mjpg_streamer  -i "/mjpg/input_uvc.so -y" -o "/mjpg/output_http.so -w 192.168.100.191:8080" &

 

c) 打开网页,输入网址查看摄像头信息。

        浏览器上执行:
http://192.168.100.191:8080/?action=snapshot (每次回车单张抓拍)
        或者
http://192.168.100.191:8080/?action=stream (视频流)

至此,MJPG-Streamer视频服务器就移植成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值