树莓派的mjpeg-streamer实现简单的监控功能

一、简介

1.MJPEG-streamer方案的实现

优点
程序简单,所有源码一目了然,便于学习
对ARM板的性能要求不高,主频200MHZ的ARM芯片也能实现
缺点:
实现局域网内的视频监控
要实现互联网视频监控,需要另外实现内网穿透
Mjpeg-streamer没有实现声音传输
Mjpeg-stream项目已经不再维护,仅仅建议用于学习

2.JPEG,MJPG格式简介

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

MJPEG
MJPEG是静态图片的编码格式,MJPG是动态的视频编码格式
可以简单理解:MJPG就是把多个JPEG图片连续显示出来
MJPG的优点
很多摄像头本身就支持JPEG,MJPG,所以处理器不要太多处理
MJPEG的缺点
MJPEG只是多个MJPEG图片的组合,它补考虑前后两帧的数据变化,总是传输一帧帧图像:传输带宽要求高
H264等视频格式,会考虑前后两帧的数据变化,只传输变化的数据:传输带宽要求低

二、安装mjpeg-streamer

2.1 更新源

sudo apt-get update			#更新软件列表
sudo apt-get upgrade		#更新软件

以上两个更新如果在刚启动树莓派的时候更新过了的话可以忽略

2.2

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,下面是一个用QT实现的Mjpeg-streamer客户端(简易版)的代码示例: ```cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QtNetwork/QNetworkAccessManager> #include <QtNetwork/QNetworkReply> #include <QtNetwork/QNetworkRequest> #include <QPixmap> #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // 这里填写Mjpeg-streamer服务器的地址和端口号 m_url = "http://192.168.1.100:8080/?action=stream"; m_networkManager = new QNetworkAccessManager(this); // 启动定时器,定时获取图片数据 m_timer = new QTimer(this); connect(m_timer, SIGNAL(timeout()), this, SLOT(onTimer())); m_timer->start(100); } MainWindow::~MainWindow() { delete ui; } void MainWindow::onTimer() { QNetworkReply *reply = m_networkManager->get(QNetworkRequest(QUrl(m_url))); connect(reply, SIGNAL(finished()), this, SLOT(onReplyFinished())); } void MainWindow::onReplyFinished() { QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender()); if(reply->error() == QNetworkReply::NoError) { QPixmap pixmap; pixmap.loadFromData(reply->readAll()); ui->label->setPixmap(pixmap); } else { qDebug() << "Error:" << reply->errorString(); } reply->deleteLater(); } ``` 这个代码简单实现了一个定时器,每隔一定时间就从Mjpeg-streamer服务器获取一张图片,并将其显示在UI界面上。需要注意的是,这个代码并没有对获取到的图片进行解码,因此只支持MJPEG格式的图片。如果需要支持其他格式,需要使用相应的解码库进行解码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值