【物联网视频监控系统----韦东山老师视频总结】(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. 摄像头和声卡接口
相关推荐
知南x2 小时前
【物联网视频监控系统----韦东山老师视频总结】(2)三种视频监控方案介绍
物联网·音视频
御控工业物联网3 小时前
水厂安全监测管理系统:御控物联网方案
物联网·安全监测·智慧水务·远程操控plc
weixin_462446233 小时前
ESP32 + SSD1306 OLED 显示中文天气与网络时间(U8g2 + WiFi + NTP 完整实战)
物联网·esp32
盈创力和20075 小时前
可延长探头以太网温湿度传感器:高精度环境感知如何赋能工业物联网?
物联网·以太网温湿度传感器·延长探头温湿度传感器·高精度温湿度传感器·狭窄空间适用工业温湿度传感器
5Gcamera5 小时前
执法记录仪、智能安全帽、smarteye平台常见问题解答FAQ
5g·音视频·智能安全帽·执法记录仪·smarteye
成为你的宁宁7 小时前
【Zabbix运维监控实战(附图文教程):Nginx 服务可用性、连接请求状态、CPU 内存占用与 JVM(Jar 包 / Tomcat)全维度监控】
运维·jvm·nginx·zabbix
北京耐用通信7 小时前
协议转换“黑科技”:耐达讯自动化CANopen转Profibus 网关破解电机控制通信难题
网络·人工智能·科技·物联网·自动化·信息与通信
智慧化智能化数字化方案8 小时前
智慧水务——55页工业园区智慧水务物联网平台建设方案【附全文阅读】
物联网·智慧水务物联网平台·智慧水务大数据平台·智慧水务可行性研究报告
赋创小助手8 小时前
超微 SYS-E403-14B-FRN2T 深度解析:面向边缘与 IoT 场景的高扩展紧凑型服务器
运维·服务器·人工智能·科技·物联网·ai·边缘计算