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

        我们希望在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。

FSPAD_702 MJPG-Streamer视频流服务器移植文档_第1张图片

c) 编译和安装

$ make –j2		//编译

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

        如下即编译安装成功:

FSPAD_702 MJPG-Streamer视频流服务器移植文档_第2张图片

        编译生成的库:

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

 FSPAD_702 MJPG-Streamer视频流服务器移植文档_第3张图片

b) 运行MJPG-Streamer程序

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

FSPAD_702 MJPG-Streamer视频流服务器移植文档_第4张图片 

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

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

FSPAD_702 MJPG-Streamer视频流服务器移植文档_第5张图片

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

你可能感兴趣的:(mjpg-streamer,sun5i_csi,gc0308,视频流服务器,FSPAD)