当前位置: 首页 > article >正文

物联网视频监控系统

目录

一.MJPG-streamer方案的实现

1.编译MJPG-sreamer

1.1配置交叉编译工具链

1.2编译镜像

2.运行mjpg-streamer

二、流媒体方案实现之FFmpeg

1.FFmpeg处理音视频的过程

​编辑2. FFmpeg的常用参数

3.开发板安装运行FFmpeg

三、流媒体方案实现之Nginx

1.Nginx在流媒体方案中的位置

2.移植Nginx

 3.测试流媒体


前言:

        本篇文章使用的是韦东山IMX6ULL PRO开发板和USB摄像头。

一.MJPG-streamer方案的实现

1.编译MJPG-sreamer

1.1配置交叉编译工具链

交叉编译工具链用来在 Ubuntu 主机上编译应用程序,而这些应用程序是在 ARM 等其他平台上运行。 设置交叉编译工具主要是设置 PATH, ARCH 和 CROSS_COMPILE 三个环境变 量,下面介绍具体设置方法。

如需永久修改,请修改用户配置文件:

vim ~/.bashrc

在行尾添加或修改,加上下面几行:

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

设置完毕后,要执行:

source ~/.bashrc

命令使其生效,并通过:

arm-buildroot-linux-gnueabihf-gcc -v

命令来验证是否配置成功:

book@100ask:~$ source ~/.bashrc
book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc -v

1.2编译镜像

进入源码目录:

cd 100ask_imx6ull-sdk/Buildroot_2020.02.x/

执行:

make menuconfig

可以利用 “/” 来搜索 “ mjpg ” ,找到mjpg所在的路径:

 找到 “mjpg-streamer” 并选上:

退出后,输入:

make

 编译出镜像文件,就可以进行烧写了。

2.运行mjpg-streamer

 烧录好镜像后,你可以在开发板输入:

mjpg_streamer --help

来查看帮助信息

执行以下命令,运行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"

 然后在浏览器上访问:

开发板IP地址:8080

即可查看到摄像头画面:

 

二、流媒体方案实现之FFmpeg

1.FFmpeg处理音视频的过程

2. FFmpeg的常用参数

3.开发板安装运行FFmpeg

和mjpg-streamer一样,先进入源码目录,输入 “make menuconfig” , 找到ffmpeg。

进入ffmpeg,勾选上所有选项,保存退出,编译。

将镜像烧录到开发板。

接下来就可以进行进行录制,执行:

ffmpeg -f v4l2 -framerate 10 -i /dev/video1 -q 10 my.mp4

结束录制之后,会在当前目录下生成 “my.mp4”文件,用你自己的方法将这个文件放到PC端查看。

三、流媒体方案实现之Nginx

1.Nginx在流媒体方案中的位置

2.移植Nginx

 进入开发板,能查看到:

说明安装成功了

接下来执行:

vi /etc/nginx/nginx.conf

 

 加入rtmp节点:

 在http节点加入:

保存退出后,重启nginx:

/etc/init.d/S50nginx restart

 3.测试流媒体

开发板接上网线,不想接网线可以连接WiFi。

连接WiFi失败的可以参考:6ULL开发板WiFi问题详解

 然后在浏览器访问你的开发板获得的IP:

 

 推流:

ffmpeg -f v4l2 -framerate 10 -i /dev/video1 -q 10 -f flv rtmp://127.0.0.1/live/wei

打开VLC

稍等一会即可观察到画面。 

课程链接:

4_流媒体方案的实现之Nginx_哔哩哔哩_bilibili 


http://www.kler.cn/a/349822.html

相关文章:

  • JAVA实战开源项目:在线文档管理系统(Vue+SpringBoot) 附源码
  • C语言连接Mysql
  • http3网站的设置(AI不会配,得人工配)
  • 29. C语言 可变参数详解
  • 《使用通道 Transformer 进行多尺度特征融合,引导热图像超分辨率》学习笔记
  • Linux基础指令
  • 数据恢复与取证: 使用 OSForensics 从未启动 Android 设备中获取数据
  • [Gtk] layout.ui
  • php+mysql测试环境
  • 一、定时器的时钟来源
  • 面试知识梳理
  • 量化之一:均值回归策略
  • 4. 单例模式线程安全问题--是否加锁
  • 16 非类型安全:让你既爱又恨的 unsafe
  • 如何解决JMeter响应数据乱码?
  • AI测试入门:向量数据库 知识图谱的适用场景
  • 封装代码片段语法 vue2语法
  • 瑞萨IDE:CS+ for CC编译过程中执行脚本文件
  • 集合相似度
  • 昂辉科技与您相约2024芜湖新能源汽车零部件博览会
  • Kubernetes 深入浅出系列 | 容器剖析之Dockerfile
  • Apache Doris 2.0.15 版本发布
  • 【网络基础知识】网络通信概述与TCPIP、UDP协议
  • 1.C++经典实例-计算两个数的最大公约数
  • 前沿论文解读:CARAT
  • 【LangChain】(三)如何利用LangChain和TruLens提升大规模语言模型的质量?全面教程与实战案例!