mjpg-streamer 初识

简介

mjpg-streamer 是一个流转发的程序,但是这里的流其是是图片,它以图片的方式在视频提取和视频输出之间进行数据传递,所以一开始的目的是用于在浏览器上基于图片的方式显示视频,当然,效果比较差,也不是太流畅,看看,主要是学习一下里面的相关知识。

获取

我是从这里 下载的,当然源头还是在 sourceforge 上,只是 github下载方便,统一。

编译

mjpg-streamer 采用 cmake 编译,具体执行由 Makefile来执行,所以一开始并没有针对 交叉编译的部分,当然,通过 cmake 进行交叉编译也很简单,设置set(CMAKE_C_COMPILER xxxx)set(CMAKE_CXX_COMPILER xxxx)就可以了,具体可以参见 cmake 的文档。接下来执行 make;就可以了,生成的文件主要有 mjpg_streamer 可执行文件,input_uvc.so, output_http.so 类似于这样的库。当然,输入,输出的库不止这两个,下面会有描述。

使用

mjpg-streamer 提供了 start.sh脚本来启动程序,里面有很多参数说明,这里例举几个,其它的可参见脚本,很详细。

./mjpg-streamer -i "input_uvc.so --help"   -- 关于这个输入插件的使用说明
./mjpg-streamer -o "output_http.so --help" -- 指定输出的参数说明
./mjpg-streamer -i "input_uvc.so" -o "output_http.so -p 8859" -- 指定输入插件和输出插件,同时指定输出的端口,如果没有显示一些错误,就可以在网页上通过`http://localhost:8859/?action=stream`来看视频了
其中 -i,-o 也可以用 --input, --output ,具体参见 `./mjpg-streamer --help`

结构

mjpg-streamer 采用插件的形势来完成相关的功能,主程序为 mjpg-streamer, 插件分输入和输出,输入就是取视频的方式,输出就是将内容转出的方式。其中输入有input_file, input_uvc, input_http, input_opencv, input_raspicam, input_ptp2,其中输出有 output_http, output_file, output_udp, output_rtsp, output_viewer,我的测试过程中只使用了 input_uvc, output_http,output_udp`。

inputoutput 之间传递时使用的是 jpeg 图片。

  • output_file 将视频图片保存在本地
  • output_udp, output_rtsp 在指定端口等待 udp 命令,并将图片数据保存本地
  • output_viewer 通过 SDL 将图片数据解码后,进行显示。
  • input_uvc 通过v4l2 来提取视频,我用的 usb 摄像头接入 raspberrypi ,用的是这个输入
  • 其它 input 的插件都是指对各自己的协议实现的提取
  • input_control 执行一些如云台,放大,缩小等之类的功能,能过 v4l2 的相关协议实现

总结

mjpg-streamer 采用图片来实现相关功能,但实用性确实不高,但是其架构 的实现还有一定的参考意义,同时 input 中各种实现也是一个好的学习途径。

转载于:https://my.oschina.net/u/145591/blog/1619013

mjpg-streamer 可以通过文件或者是HTTP方式访问linux UVC兼容摄像头。可以在公司,通过访问家里安装的摄像头查看家里的情况,对于有小孩的家长很有帮助。 1.安装辅助工具 在树莓派上执行: sudo apt-get install libjpeg8-dev sudo apt-get install cmake 2.解压master,zip 在树莓派上执行:unzip master.zip 3.编辑源文件 在树莓派上执行: cd mjpg-streamer-master/mjpg-streamer-experimental/plugins/input_raspicam (移动到mjpg-streamer-master/mjpg-streamer-experimental/plugins/input_raspicam) nano input_raspicam.c (用nano编辑input_raspicam.c文件) 进入nano页面后,按下ctrl+w(搜索),输入fps,回车 将fps改成30,width=320,height=240 4.编译mjpg软件 在树莓派上执行: cd .. cd ..(同一个命令执行两次,目的是为了返回到目录mjpg-streamer-experimental) make clean all 5.制作mjpg的启动脚本 在树莓派上执行: cd nano jk.sh 将下面两条命令复制进去 cd mjpg-streamer-master/mjpg-streamer-experimental #USB摄像头 ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www" #树莓派摄像头 #./mjpg_streamer -i "./input_raspicam.so" -o "./output_http.so -w ./www" 像上面一样,按ctrl+x,再按y,再回车(保存,退出) 继续,在树莓派上执行: chmod 744 jk.sh 6.执行mjpg的启动脚本(启动mjpg) 在树莓派上执行: sh jk.sh 最后,在浏览器上打开:(我用的是chrome浏览器) http://你树莓派的ip:8080
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值