【物联网视频监控系统----韦东山老师视频总结】(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. 摄像头和声卡接口
相关推荐
Tech-Net3 小时前
推特视频怎么下载?2026最新X(Twitter)视频下载教程
经验分享·音视频·工具·视频处理·视频下载·视频下载工具·推特视频下载
潜创微科技4 小时前
IT6635+USB 芯片:4 进 1 出 4K@60Hz 高性能 KVM 切换器一站式方案
嵌入式硬件·音视频
L、2185 小时前
CANN ops-audio 仓库详解:昇腾NPU上的音频处理算子与语音识别优化
人工智能·音视频·语音识别
Yvonne爱编码6 小时前
基于 ESP32 的冷链物流工业物联网(IIoT)监控系统|全流程实战
物联网·iot·工业物联网
InHand云飞小白6 小时前
【工业物联网】4G/5G 工业路由器技术选型与实战部署方案
物联网·5g·工业路由器·4g路由器·工业物联网·5g路由器·数字化联网
天下财经热6 小时前
快进商店闪耀2026中国零售业博览会,远程值守全家桶独家首发,重塑云值守解决方案
大数据·人工智能·物联网
刘布斯yy7 小时前
新写了个直播录制工具,可录制抖音快手斗鱼直播
rust·音视频·直播录制
2601_957888567 小时前
短视频矩阵系统的AI调度引擎架构解析:从多平台API到智能分发的技术实现
人工智能·矩阵·音视频
BY组态7 小时前
Ricon组态系统:新一代Web可视化组态平台
前端·物联网·iot·web组态·组态
互联网推荐官8 小时前
上海物联网应用开发全解析:技术路径、架构选型与落地约束
物联网·架构·开发经验·上海