Mjpg_Streamer 的移植
1. 移植mjpg-streamer
a.1 移植libjpeg
tar zxf libjpeg-turbo-1.2.1.tar.gz
cd libjpeg-turbo-1.2.1
./configure --host=arm-linux --prefix=/work/projects1/mjpeg-stream/libjpeg-turbo-1.2.1/tmp
make
make install
cd tmp/lib
cp *so* /work/nfs_root/fs_mini_mdev_new/lib/ -d
注意:文件体统
视频使用的是fs_mini_mdev_new_auto_wifi_ap.tar.bz2,因为自己制作过文件系统,暂时使用的是自己的。
a.2 移植mjpg-streamer
tar zxf mjpg-streamer-r63.tar.gz
cd mjpg-streamer-r63
a.2.1修改所有的Makefile
vim Makefile //顶层
将:
CC = gcc
改为:
CC = arm-linux-gcc
cd plugins/input_gspcav1
vim Makefile
将:
CC = gcc
改为:
CC = arm-linux-gcc
cd plugins/input_testpicture
vim Makefile
将:
CC = gcc
改为:
CC = arm-linux-gcc
cd /plugins/input_uv
vim Makefile
将:
CC = gcc
改为:
CC = arm-linux-gcc
cd plugins/output_autofocus
vim Makefile
将:
CC = gcc
改为:
CC = arm-linux-gcc
cd plugins/output_file
vim Makefile
将:
CC = gcc
改为:
CC = arm-linux-gcc
cd plugins/output_http
vim Makefile
将:
CC = gcc
改为:
CC = arm-linux-gcc
也就是将plugins 目录下面的所有的子目录的Makefile 全部进行修改
a.2.2 plugins/input_uvc 里面 修改
cd plugins/input_uvc
vim Makefile
将:
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
修改为:
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I /work/projects1/mjpeg-stream/libjpeg-turbo-1.2.1/tmp/include
添加的这个是编译libjpeg 库生成的头文件。
将:
input_uvc.so: $(OTHER_HEADERS) input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo
jpeg_utils.lo dynctrl.lo
修改为:
input_uvc.so: $(OTHER_HEADERS) input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
$(CC) $(CFLAGS) -ljpeg -L /work/projects1/mjpeg-stream/libjpeg-turbo-1.2.1/tmp/lib
-o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
//添加了-L /work/projects1/mjpeg-stream/libjpeg-turbo-1.2.1/tmp/lib 指明库文件的位置
回到顶层目录:make 生成mjpg_streamer 这个应用程序和很多的.so 文件
cp mjpg_streamer /work/nfs_root/fs_mini_mdev_new/bin/
cp *so* /work/nfs_root/fs_mini_mdev_new/lib/ -d
a.3 使用
内核:
1.添加UVC
cp config_ok .config
make menuconfig
<*> Multimedia support --->
<*> Video For Linux
[*] Video capture adapters (NEW) --->
[*] V4L USB devices (NEW) --->
<*> USB Video Class (UVC)
执行: make uImage
// 因为使用的是百问网的制作的USB 摄像头,所以,必须按照第二课1.1.9 视频修改UVC 驱动,修改完在make uImage
将修改的好的uvc_video.c 和uvc_driver.c 拷贝到/linux-3.4.2/drivers/media/video/uvc 替换掉
// 因为百问网的摄像头的特殊性才需要修改,否则是不用修改的
// 配置内核,使其支持 USB 总线驱动,如下
Device Drivers --->
[*] USB support --->
{*} Support for Host-side USB
[*] USB device filesystem (DEPRECATED)
[*] USB device class-devices (DEPRECATED)
<*> OHCI HCD support
<*> USB Mass Storage support
[*] HID Devices --->
{*} Generic HID support
[*] /dev/hidraw raw HID device support
SCSI device support --->
<*> SCSI device support
[*] legacy /proc/scsi/ support
<*> SCSI disk support
<*> SCSI tape support
2.支持AR2917WIFI的:
make menuconfig
Symbol: ATH9K_HTC [=n]
Type : tristate
Prompt: Atheros HTC based wireless cards support
Defined at drivers/net/wireless/ath/ath9k/Kconfig:100
Depends on: NETDEVICES [=y] && WLAN [=y] && ATH_COMMON [=n] && USB [=y] && MAC80211 [=m]
Location:
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> Wireless LAN (WLAN [=y])
-> Atheros Wireless Cards (ATH_COMMON [=n])
根据上面的依赖,还需要对ATH_COMMON 和 MAC80211 进行设置
-> Networking support (NET [=y])
-> Wireless (WIRELESS [=y])
<*>cfg80211 - wireless configuration API
<*>Generic IEEE 802.11 Networking Stack (mac80211)
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> Wireless LAN (WLAN [=y])
-> Atheros Wireless Cards (ATH_COMMON [=y])
<*> Atheros HTC based wireless cards support
3.添加WIFI 固件
mkdir /work/nfs_root/fs_mini_mdev_new/lib/firmware
cp htc_9271.fw /work/nfs_root/fs_mini_mdev_new/lib/firmware
文件系统:
使用的是制作好的,包含众多WIFI应用程序的fs_mini_mdev_new_auto_wifi_ap.tar.bz2
运行:
二合一摄像头
mjpg_streamer -i "input_uvc.so -f 10 -r 320*240" -o "output_http.so -w www"
一般摄像头
mjpg_streamer -i "input_uvc.so -f 10 -r 320*240 -y" -o "output_http.so -w www"
二合一摄像头
mjpg_streamer -i "input_uvc.so -f 10 -r 640*480" -o "output_http.so -w www"
一般摄像头
mjpg_streamer -i "input_uvc.so -f 10 -r 320*240 -y" -o "output_http.so -w www"
在火狐浏览器上面执行:
http://202.193.53.83:8080/?action=stream
// 谷歌、360急速浏览器都是失败的,
mjpg_streamer -i "input_uvc.so -f 10 -r 320*240 -y" -o "output_http.so -w www"
-i : 指定输入的插件。可见指定了input_uvc.so 这个插件,作为输入的驱动。因为我们使用的是UVC摄像头。
-o :指定输出的插件。 output_http.so这个插件。
---------------------------------------------------------------
Help for input plugin..: UVC webcam grabber
---------------------------------------------------------------
The following parameters can be passed to this plugin:
[-d | --device ].......: video device to open (your camera)
[-r | --resolution ]...: the resolution of the video device,
can be one of the following strings:
QSIF QCIF CGA QVGA CIF VGA
SVGA XGA SXGA
or a custom value like the following
example: 640x480
[-f | --fps ]..........: frames per second
[-y | --yuv ]..........: enable YUYV format and disable MJPEG mode
[-q | --quality ]......: JPEG compression quality in percent
(activates YUYV format, disables MJPEG)
[-m | --minimum_size ].: drop frames smaller then this limit, useful
if the webcam produces small-sized garbage frames
may happen under low light conditions
[-n | --no_dynctrl ]...: do not initalize dynctrls of Linux-UVC driver
[-l | --led ]..........: switch the LED "on", "off", let it "blink" or leave
it up to the driver using the value "auto"
Mjpg_Streamer 的移植的更多相关文章
- 基于mjpg_streamer视频服务器移植【转】
本文转载自:http://blog.csdn.net/wavemcu/article/details/7539560 MJPG简介: MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名 ...
- zedboard--嵌入式网络摄像机(mjpg-streamer)的移植和搭建(二十二)
在zedboard上移植和搭建嵌入式网络摄像机mjpg-streamer.具体步骤如下: 来自:http://write.blog.csdn.net/postedit/13741451 1.安装lib ...
- mjpg-streamer移植
本文的copyright归yuweixian4230@163.com 所有,使用GPL发布,可以自由拷贝,转载.但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途. 作者:yuweix ...
- 【OK210试用体验】进阶篇(2)视频图像采集之MJPG-streamer编译(arm移植)
上一篇([OK210试用体验]进阶篇(1)视频图像采集之MJPG-streamer编译(Ubuntu系统下))进行了MJPG-streamer在Ubuntu下的编译及测试,这一篇针对OK210,进行a ...
- arm开发板6410/2440上mjpg-streamer网络视频服务器移植
摄像头移植 一.环境 主机环境 :ubuntu 10.10 目标板 :FS-S5PC100 主机工具链 :gcc-4.4.5 交叉工具链 :arm-unknown-li ...
- 基于mjpg-streamer网络视频服务器移植
MJPG简介: MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名. MJPEG 全名为 "Motion Joint Photographic Experts Group&q ...
- mjpg-streamer视频服务器移植
相关软件下载地址:http://pan.baidu.com/s/16yo8Y JPEG库的移植 对于内核linux-2.6.35,不能再使用servfox,如果要使用的需要修改大量的代码.在此选用新的 ...
- MVVM框架从WPF移植到UWP遇到的问题和解决方法
MVVM框架从WPF移植到UWP遇到的问题和解决方法 0x00 起因 这几天开始学习UWP了,之前有WPF经验,所以总体感觉还可以,看了一些基础概念和主题,写了几个测试程序,突然想起来了前一段时间在W ...
- IIC驱动移植在linux3.14.78上的实现和在linux2.6.29上实现对比(deep dive)
首先说明下为什么写这篇文章,网上有许多博客也是介绍I2C驱动在linux上移植的实现,但是笔者认为他们相当一部分没有分清所写的驱动时的驱动模型,是基于device tree, 还是基于传统的Platf ...
随机推荐
- nodeJS学习(8)--- WS/...开发 NodeJS 项目-节3 <使用 mongodb 完整实例过程>
使用 mongodb 的小系统 参考:https://my.oschina.net/chenhao901007/blog/312367 1. Robomongo 创建项目的数据库和数据表 参考:htt ...
- 理解exports
webpack-nodejs-模块系统 其实,Module.exports才是真正的接口,exports只不过是它的一个辅助工具. 最终返回给调用的是Module.exports而不是exports. ...
- CSDN数据库下载地址 CSDN 用户名密码泄漏,600万数据下载
原文发布时间为:2011-12-21 -- 来源于本人的百度文章 [由搬家工具导入] 12月21日消息,下午有网友爆料称国内最大的开发者社区CSDN.NET的安全系统遭到黑客攻击,CSDN数据库中的6 ...
- a kind of async programming in c#, need to reference definition
void Main() { Run d=new Run(RunHandler); IAsyncResult result= d.BeginInvoke(new AsyncCallback(CallBa ...
- luogu 2463 [SDOI2008]Sandy的卡片 kmp || 后缀数组 n个串的最长公共子串
题目链接 Description 给出\(n\)个序列.找出这\(n\)个序列的最长相同子串. 在这里,相同定义为:两个子串长度相同且一个串的全部元素加上一个数就会变成另一个串. 思路 参考:hzwe ...
- 《手把手教你学C语言》学习笔记(3)---变量
编程目的是为了解决问题,编程本质是用计算机的思维操作数据,操作就是算法,数据主要是数据类型,也可以说量,其中分为常量和变量,常量主要是指在量的生命周期内无法改变其值:变量主要是指在量的生命周期内可以随 ...
- 使用layer的iframe层提交表单后,需要关闭当前的iframe层,然后刷新父页面的方法2
<input type="button" onclick="edit(${it.id?c})" class="layui-btn layui-b ...
- 网络编程socket-SocketServer-FTP
16章 网络编程?应该是讲网络之间如何编程来进行通信的章节 16.1.1 客户端/服务器架构?客户端请求访问,服务器端监听请求,处理请求,进行相应的模式16.1.2 客户端/服务器编程?服务器端:创建 ...
- java gc --- 关键词解释
分代gc java的堆内存主要分为young generation与old generation,这两块分开回收.这就是所谓的分代gc 其中young generation又分为一个eden spac ...
- Cryptography I 学习笔记 --- 数论简介
0. Zn代表{0,1....n-1}的集合 1. 模运算符合交换律结合律 2. gcd(greatest common divisor),可以由扩展欧几里得算法快速得到. 3. 模逆(modular ...