【物联网视频监控系统----韦东山老师视频总结】(4)流媒体方案的实现之Nginx

文章目录

  • [1 概要](#1 概要)
  • [2 Nginx是什么](#2 Nginx是什么)
  • [3 Nginx在流媒体方案中的位置](#3 Nginx在流媒体方案中的位置)
  • [4 Nginx移植](#4 Nginx移植)
  • [5 运行Nginx](#5 运行Nginx)
  • [6 测试流媒体方案](#6 测试流媒体方案)
  • [7 总结](#7 总结)
  • [8 其他章节链接](#8 其他章节链接)

1 概要

本章节主要介绍Nginx的使用,参考了韦东山老师的视频【自己做一个物联网视频监控系统】韦东山老师手把手带你从0开始自己做一个视频监控系统],还有CSDN博主热爱嵌入式的小家同学的内容流媒体方案之FFmpeg------实现物联网视频监控项目

其中本文章大量内容来自博主热爱嵌入式的小家同学,大家可以直接点链接跳转过去看。

前两篇已经介绍,MJPG-streamer方案和流媒体方案之FFmpeg实现物联网视频监控,链接如下:

  1. 【物联网视频监控系统----韦东山老师视频总结】(3)MJPG-streamer方案的实现及原理分析
  2. 【物联网视频监控系统----韦东山老师视频总结】(4)流媒体方案的实现之ffmpeg

2 Nginx是什么

3 Nginx在流媒体方案中的位置


推流端

  • FFmpeg使用RTMP协议向Nginx推流

拉流端

  • VLC播放器使用RTMP或HTTPFLV协议从Nginx拉流
  • 浏览器使用HTTPFLV协议从Nginx拉流(安装flv.js)

让Ngnix支持RTMP、HTTPFLV协议

Nginux需要第3方模块;

nginx-rtmp-module:实现了RTMP协议;

nginx-http-flv-module:在nginx-rtmp-module的基础上,实现了HTTPFLV,并覆盖nginx-rtmp-module的所有功能,所以,我们将会在Nginx上使用nginx-http-flv-module

第3方模块源码:

https://github.com/winshining/nginx-http-flv-module/

添加第三方模块这部分下面配置buildroot会涉及到。

4 Nginx移植

参考此篇文章:
【STM32MP157 视频监控项目】(2) 移植 Nginx

5 运行Nginx

在开发板上烧写好映像文件后,开发板启动时会自动运行Ngnix。

输入命令可查看第三方模块已被添加:

c 复制代码
nginx -V

为了让它支持RTMP、HTTPFLV,需要修改配置文件:

c 复制代码
vi /etc/nginx/nginx.conf 
c 复制代码
rtmp {
        server {
                listen 1935; # Listen on standard RTMP port
                chunk_size 4096;
 
                application live {
                        allow publish 127.0.0.1;
                        allow play all;
                        live on;        # Enable listening for live streampplication
                        record off;     # Do not record the stream
                        meta copy;      # Copy the incoming metadata for the outgoing metadata
                }
        }
 
}

在http里添加:

c 复制代码
        location /test {
                flv_live on;
        }

修改后重启Nginx服务:

c 复制代码
/etc/init.d/S50nginx restart

6 测试流媒体方案

接网线:

在开发板上运行了Nginx后,它就已经是一个WEB站点了,可以在电脑浏览器里输入开发板的IP访问开发板:

推流

在开发板上执行:

c 复制代码
ffmpeg -f v4l2 -framerate 10 -i /dev/video1 -q 10  -f flv rtmp://127.0.0.1/live/wei
  • ffmpeg: 调用FFmpeg程序。
  • -f v4l2: 设置输入格式为v4l2,即Video for Linux 2,用于访问摄像头设备。
  • -framerate 10: 设置输入帧率为10帧每秒。
  • -i /dev/video1: 指定输入设备为/dev/video1,这是Linux系统中摄像头设备的路径。
  • -q 10: 设置输出视频的质量,范围是1(最好)到31(最差),这里设置为10。
  • -f flv: 设置输出格式为FLV,一种流行的网络视频格式。
  • rtmp://127.0.0.1/live/wei: 指定输出的RTMP服务器地址和流名称,这里是本地服务器的地址,流名称为"wei"。

拉流

在PC上安装VLC播放器:大家自行下载VLC

  1. **使用RTMP协议拉流:**VLC播放器中点击"媒体"->"打开网络串流",输入:rtmp://192.168.5.9/live/wei就可以播放了
  2. **使用HTTPFLV协议拉流:**VLC播放器中点击"媒体"->"打开网络串流",输入: http://192.168.5.9/test?app=live\&stream=wei ,就可以播放了

RTMP协议拉流:

c 复制代码
rtmp://192.168.5.9/live/wei

rtmp://192.168.1.6/live/wei 使用rttp拉流

live 是 app stream

name是wei:从开发板找到live这个app里面wei的这个流

HTTPFLV协议拉流:

c 复制代码
http://192.168.5.9/test?app=live&stream=wei

test是目录

对应前面写的节点

去这个目录里面拉这个app live的stream 就可以播放了

7 总结

本章节介绍了Nginx的相关知识点。

8 其他章节链接

  1. 三种视频监控方案介绍
  2. MJPG-streamer方案的实现以及原理分析
  3. 流媒体方案的实现之ffmpeg
  4. 流媒体方案的实现之Nginx
  5. 摄像头和声卡接口
相关推荐
colicode19 小时前
语音消息接口应用开发:如何通过API发送个性化音频或TTS语音内容
音视频
jl486382119 小时前
打造医疗设备的“可靠视窗”:医用控温仪专用屏从抗菌设计到EMC兼容的全链路解析
大数据·运维·人工智能·物联网·人机交互
美狐美颜sdk20 小时前
直播美颜sdk与智能美妆技术解析:实时人脸算法如何驱动新一代互动体验
人工智能·音视频·美颜sdk·视频美颜sdk·美狐美颜sdk
北京耐用通信20 小时前
耐达讯自动化Profibus总线光纤中继器:食品饮料行业IO模块通讯的“稳定之锚”
人工智能·科技·物联网·自动化·信息与通信
PascalMing21 小时前
Pascal.Edge物联网平台-功能介绍(一)
物联网·数据采集
XRJ040618xrj1 天前
Nginx下构建PC站点
服务器·前端·nginx
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.1 天前
Nginx 平滑升级与回滚超详细指南
运维·nginx
leiming61 天前
Qt视频监控系统开发实战:从视频捕获到照片管理
linux·数码相机·音视频
小莞尔1 天前
【51单片机】【protues仿真】 基于51单片机波形发生器系统
c语言·单片机·嵌入式硬件·物联网·51单片机
AAAAA92401 天前
物联网模组在土壤监测中的应用与价值
物联网·智慧农业·农业