ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

远程视频监控(二):MJPG-Streamer方案

2021-01-23 15:33:03  阅读:236  来源: 互联网

标签:MJPG mjpg JPEG streamer output uvc 远程 Streamer


一:概述

1、MJPG-Streamer介绍

(1)Mjpg‐streamer是一个开源软件,用于从摄像头采集图像,它将JPEG帧从一个或多个输入插件复制到多个输出插件。它可用于通过基于IP的网络将JPEG文件从网络摄像头流式传输到各种类型的查看器,如Chrome,Firefox,Cambozola,VLC,mplayer和其他能够接收MJPG流的软件。

(2)它最初是为嵌入式设备编写的,在RAM和CPU方面资源非常有限。其前身“uvc_streamer”的创建是因为Linux-UVC兼容相机直接生成JPEG数据,即使是运行OpenWRT的嵌入式设备,也可以实现快速和流畅的M-JPEG流。输入模块“input_uvc.so”从连接的网络摄像头捕获这样的JPG帧。mjpg-streamer现在支持各种不同的输入设备

2、JPEG、MJPG介绍

JPEG

  • 简称JPG
  • 上过美术课的人都知道一个象素的颜色可以用RGB三原色来表示,其实还可以用YUV格式来表示
  • 使用RGB、YUV的格式编码的照片,文件都很大,比如常见的BMP文件就是用RGB编码
  • 把一个BMP文件转换为JPEG文件,可以发现图片质量没发生变化,但是文件变小了很多
  • JPEG是根据人体视觉的特点采用了YCbCr格式,大大压缩了照片的大小

MJPG

  • Motion JPEG,简称MJPG
  • JPEG是静态图片的编码格式,MJPG是动态的视频编码格式
  • 可以简理解:MJPG就是把多个JPEG图片连续显示出来

MJPG优点

  • 很多摄像头本身就支持JPEG、MJPG,所以处理器不需要做太多处理
  • 一般的低性能处理器就可以传输MJPG视频流

MJPG缺点

  • MJPG只是多个JPEG图片的组合,它不考虑前后两帧数据的变化,总是传输一帧帧图像:传输带宽要求高
  • H264等视频格式,会考虑前后两帧数据的变化,只传输变化的数据:传输带宽要求低

二:编译MJPG-Streamer

mjpg-streamer的移植需要jpeg的库,所以我们先移植jpeg的库 ,即需要libjpeg

1、jpeg编译

  1. ./configure --host=arm-himix100-linux --prefix=/home/zhaotiejun/tools/output-files --enable-shared --enable-static
  2. make
  3. make install

2、mjpg-streamer编译

下载源码地址:https://sourceforge.net/projects/mjpg-streamer/

(1)其解压目录中有:doc  mjpeg-client  mjpg-streamer  mjpg-streamer-experimental  udp_client  uvc-streamer

mjpg-streamer :目录下提供了 的执行程序和各个输入输出设备组件 
uvc-streamer :目录下提供了 uvc-streamer的可执行目录 
mjpeg-client:分别有 linux和windows 的客户端 

(2)修改顶层目录mjpg-streamer下的Makefile

(3)修改上文配置文件中用到的input.uvcoutput_http插件对应的Makefile

input.uvc:

output_http:

(4)提前在Makefile的指定生成路径/home/zhaotiejun/tools/files/mjpg-streamer/mjpg-streamer-code-r182/output中创建一下三个文件夹

  1. make
  2. make install

至此input*.so、 output*.so 和 mjpg_streamer 可执行文件均已生成。

三:运行测试

1、将生成的bin、lib、www文件全部拷贝到ARM板上

2、设置ARM板与PC或者手机在同一个局域网内

3、执行命令:mjpg_streamer -i "input_uvc.so -d /dev/video1 -f 30 -q 90 -n" -o "output_http.so -w www"(注意文件路径)

4、假设ARM板IP地址为192.168.1.100

5、在chrome浏览器中打开:“http://192.168.1.100:8080/stream.html”就可以看见视频了

四:MJPG-streamer框架

 

标签:MJPG,mjpg,JPEG,streamer,output,uvc,远程,Streamer
来源: https://blog.csdn.net/qq_34968572/article/details/113031348

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有