前言
最近想做一个安防相关的项目,所以跟着韦东山老师的视频来学习视频监控方案的相关知识,韦东山老师讲的课非常好,这里用到的开发板是IMX6ULL
一、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等视频格式,会考虑前后两顿数据的变化,只传输变化的数据: 传输带宽要求低
二、软硬件准备
硬件:a. 100ASK_IMX6ULL开发板 (或其他Linux开发板);b. USB摄像头
软件:a. Ubuntu;b. Buildroot(Buildroot会自动下载其他软件: MJPG-streamer, ffmpeg, nginx)
三、编译MJPG-streamer
进入Buildroot根目录
执行命令
make menuconfig
/ 搜索 mjpg 查找 MJPG-streamer 位置
选上MJPG-streamer后退出保存
执行命令 make
这会在Buildroot的dl/mjpg-streamer目录下自动下载源码,并编译
结果保存在output/images目录下,有emmc.img, sdcard.img,可以直接烧写到板能的EMMC或SD卡上
编译后的结果
ls output/images/
烧写.img后缀到IMX6ULL开发板
四、运行MJPG-streamer
在开发板上安装好MJPG-streamer后,执行命令:
mjpg_streamer -i "/usr/lib/mjpg-streamer/input_uvc.so -d /dev/video1 -f 30 -q 90 -n" -o "/usr/lib/mjpg-streamer/output_http.so -w /usr/share/mjpg-streamer/www"
参数:
// 指定这个库的绝对路径 –i 指定一个输入的动态库 -o 指定另一个输出的动态库
- -d /dev/video1 -f 30 -q 90 -n”是参数 给input_uvc.so用 处理输入数据
- -w /usr/share/mjpg-streamer/www“ 是参数 给output_http用 处理输出数据
- /dev/video1是我所使用的usb摄像头的位置,-f 30 -q 90 指定格式以及质量。
在PC端或手机上:
确保PC或手机,跟开发板处于同一个局域网
假设开发板IP为:192.168.1.6
在chrome浏览器中打开: http://192.168.1.6:8080/stream.html
就可以看见视频了
五、其它常见用法
查看帮助:
mjpg_streamer -o “/usr/lib/mjpg-streamer/output file.so --help”
mjpg_streamer -i “/usr/lib/mjpg-streamer/input file.so --help”
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!
95%以上嵌入式&物联网开发知识点,真正体系化!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!