FSPAD_702 MJPG-Streamer视频流服务器移植
来源:互联网 发布:php 异步请求 编辑:程序博客网 时间:2024/05/22 05:23
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 xvfjpegsrc.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库头文件的路径:
16CFLAGS += -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.lodynctrl.lo
// 修改为:
$(CC) $(CFLAGS) –ljpeg -L/home/linux/workdir/farsight/fspad/jpeg/jpeg-arm/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lodynctrl.lo
iii. 修改plugins/input_uvc/v4l2uvc.c
第99行static int init_v4l2(structvdIn *vd)函数内添加:
#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为文件系统的路径
$ cpmjpg-streamer /source/rootfs/bin
3、 测试MJPG-Streamer
a) 加载平板Camera驱动
#insmodvideobuf-core.ko
#insmodvideobuf-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视频服务器就移植成功了。
- FSPAD_702 MJPG-Streamer视频流服务器移植
- FSPAD_702 MJPG-Streamer视频流服务器移植心得
- FSPAD_702 MJPG-Streamer视频流服务器移植文档
- MJPG-Streamer视频流服务器移植
- mjpg-streamer移植
- mjpg-streamer视频服务器移植
- OK6410移植mjpg-streamer
- mjpg-streamer移植
- mjpg-streamer移植
- mjpg-streamer移植tiny6410
- mjpg-streamer移植
- 移植mjpg-streamer
- mjpg-streamer移植
- MJPG-STREAMER 移植+BUG
- Mjpg-streamer移植
- Android + Mini2440 无线网络视频监控系统 mjpg-streamer的移植
- mjpg-streamer 移植到OK6410,从摄像头采集视频直播
- mjpg-streamer移植过程 移植
- cocos2dx中的动作使用
- JS函数集
- UI----label的基本属性 imageView的基本属性
- webx下的AnalyzeURLValve分析URL过程详细解析
- C++编译器合成默认构造函数的条件(合成默认拷贝构造函数雷同)
- FSPAD_702 MJPG-Streamer视频流服务器移植
- 我的JavaWeb学习1
- uva 11992 Fast Matrix Operations 线段树
- 色彩转换
- 有哪些可供Web设计师&开发者消遣的网站?
- 视频帧人脸检测 (I)
- Android Junit测试框架的配置
- How many Fibs?(高精度)
- poj 1611(详解)