我们希望在 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 源码
如下图即成功生成编译使用的 Makefile。
c) 编译和安装
如下即编译安装成功:
编译生成的库:
d) 添加到文件系统中
把编译生成的库拷贝的我们使用的文件系统中。
2、 MJPG-Streamer 的移植
a) 下载 MJPG-Streamer 源码
通过下面这个网址下载 MJPG-Streamer 源码包:http://sourceforge.net/projects/MJPG-streamer/
b) 配置 MJPG-Streamer 源码:
i. 修改 Makefile 文件
修改顶层 Makefile 以及所有子层 Makefile 文件中的编译工具项:
ii. 再次修改 plugins/input_uvc/Makfile 文件
第 16 行添加需要使用 JPEG 库头文件的路径:
第 24 行添加编译 input_uvc.so 所使用的库文件的路径:
iii. 修改 plugins/input_uvc/v4l2uvc.c
第 99 行 static int init_v4l2(struct vdIn *vd)函数内添加:
第 195 行 mmap 函数参数中添加:
c) 编译 MJPG-Streamer 源码
如下即编译成功:
d) 添加到文件系统中
把编译生成的应用和库拷贝的我们使用的文件系统中。
3、测试 MJPG-Streamer
a) 加载平板 Camera 驱动
b) 运行 MJPG-Streamer 程序
c) 打开网页,输入网址查看摄像头信息。
浏览器上执行:http://192.168.100.191:8080/?action=snapshot (每次回车单张抓拍)
或者http://192.168.100.191:8080/?action=stream (视频流)
至此,MJPG-Streamer 视频服务器就移植成功了。