【物联网视频监控系统----韦东山老师视频总结】(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. 摄像头和声卡接口
相关推荐
小柯南敲键盘2 分钟前
跨马翻译:跨境电商批量图片翻译与视频字幕一站式工具
人工智能·python·音视频
weixin_446260852 小时前
AVA-Encoder:面向智能体原生视频表征学习框架
学习·音视频
cdprinter2 小时前
信刻——留置谈话音视频数据集中自动刻录归档解决方案
自动化·音视频
美狐美颜sdk4 小时前
直播APP开发技术架构解析:从音视频流到第三方美颜SDK接入的完整方案
大数据·人工智能·音视频·美颜sdk·美颜api
阿童木写作5 小时前
跨境电商图片翻译工具推荐:跨马翻译批量处理视频字幕与抠图
python·音视频
MEIXIFU15 小时前
便利店实际经营面积怎么选最合适
大数据·人工智能·物联网·生活·迭代加深
奈斯先生Vector6 小时前
AI 视频不是会动的图片:用 Shot Contract、时间码与音画质检构建可交付流水线
人工智能·重构·架构·prompt·aigc·音视频
ai产品老杨6 小时前
AI视频分析并发优化参数配置说明
人工智能·音视频
怪奇云呼军6 小时前
G.711、Opus 和重采样会拖慢识别吗?闪电智能VoiceAgent 的音频入口怎么选
java·人工智能·python·算法·云计算·音视频
DogDaoDao7 小时前
MSU 2026 视频编解码大赛放榜深度解读
音视频·视频编解码·hevc·av1·h266·msu·avs