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

nginx+rtmp实现直播完整流程

一环境准备1.下载nginx-rtmp-module12cd/www/server/git clone https://github.com/arut/nginx-rtmp-module.git2.Nginx安装:这是用了宝塔哈。软件商店 应用搜索nginx 安装 编译安装 添加自定义模块模块名称nginx_rtmp_module描述: nginx rtmp参数–add-module/www/server/nginx-rtmp-module3. 编辑conf配置新建目录/www/server/nginx/conf/rtmp, 在目录下新建两个文件nginx-rtmp.conf和nginx-rtmp-play.conf新建目录/www/tmp/hls用于存放hls视频文件1234567891011121314151617181920212223242526272829303132333435363738# nginx-rtmp.confrtmp {server {listen 1935;ping30s;chunk_size 4000;notify_method get;application live {# 推流地址rtmp://ip:1935/live/密钥同拉流播放地址live on;record off;# 是否开启记录 off, all用于录制直播视频以便回放重播#record_unique on; # 记录值唯一#record_max_size 200M; # 记录文件大小#record_path /www/tmp/video; # 记录文件位置#record_suffix -%Y-%m-%d-%H_%M_%S.flv; # 记录文件命名#on_publish http://127.0.0.1:8686/auth; # 开始推流的回调地址#on_done http://when live stop call this url; # 结束推流的回调地址#on_play http://127.0.0.1:8686/auth; # 开始播放的回调地址}application hls {# 推流地址rtmp://ip:1935/hls/密钥开启HLS协议进行m3u8直播live on;hls on;# 开启hls, hls的推流会产生一个m3u8的ts视频文件索引同时保存一个个视频片段缓存可以拿到再次播放。hls_path/www/tmp/hls;# 视频切片ts文件存放的位置hls_sync 100ms;hls_fragment 5s;# 视频切片的大小ts文件大小hls_cleanup on;#对多余的切片进行删除hls_playlist_length 60s;#保存m3u8列表长度时间默认是30秒}#application vod { # 用于视频点播flv/mp4# play /www/tmp/videos; # 本地视频MP4文件存放地址作为流播放视频: rtmp://ip:1935/vod/视频名称.mp4#}#application vod_http { # 播放远程http链接的视频rtmp://ip:1935/vod_http/视频名称.mp4# play http://localhost:8080/vod/;#}}}12345678910111213141516171819202122232425# nginx-rtmp-play.confserver {listen 1000;location/stat{# http://ip:1000/stat, 监控流的地址rtmp_stat all;rtmp_stat_stylesheet stat.xsl;}location/stat.xsl {root/www/server/nginx-rtmp-module/;}location/hls{# http拉流的地址http://ip:1000/hls/密钥.m3u8# Serve HLS fragmentstypes {application/vnd.apple.mpegurl m3u8;video/mp2tts;}root/www/tmp;expires -1;add_header Cache-Control no-cache;add_header Access-Control-Allow-Origin *;}}​ 编辑nginx.conf引入配置:include /www/server/nginx/conf/rtmp/nginx-rtmp.conf;​ 引入配置include /www/server/nginx/conf/rtmp/nginx-rtmp-play.conf;4. 重启Nginx:注意放行端口1935和10005. 使用OBS推流live推流推流地址rtmp://ip:1935/live串流密钥test123浏览器访问http://ip:1000/stat可以看到推流的情况使用PotPlayer拉流播放点击右上角的PotPlayer选择“打开打开链接”输入rtmp://ip:1935/live/test123后点击”确定“。HLS推流推流地址rtmp://ip:1935/hls串流密钥test123使用PotPlayer拉流播放点击右上角的PotPlayer选择“打开打开链接”输入http://ip:1000/hls/test123.m3u8后点击”确定“。6. 扩展浏览器拉流播放html播放器代码index.html使用video.js123456789101112131415161718192021222324!DOCTYPE htmlhtmllangzh-CNheadmetacharsetUTF-8titleHTML5 直播/titlelinkhrefhttps://vjs.zencdn.net/7.0.3/video-js.cssrelexternal nofollowrelstylesheetscriptsrchttps://vjs.zencdn.net/7.0.3/video.js/scriptscriptsrchttps://cdn.jsdelivr.net/npm/videojs-flash2/dist/videojs-flash.min.js/script/headbodystylemargin: auto; width: 1080px;!-- RTMP直播拉流地址 --videoidrtmp-liveclassvideo-js vjs-default-skin vjs-big-play-centeredcontrolspreloadautowidth1080height608data-setup{}sourcesrcrtmp://【IP】/live/test123typertmp/flv/videohr/!-- HTTP直播hls拉流地址 --videoidhls-liveclassvideo-js vjs-default-skin vjs-big-play-centeredcontrolspreloadautowidth1080height608data-setup{}sourcesrchttp://【IP】:1000/hls/test123.m3u8typeapplication/x-mpegURL/video/body/html因为本例的html需要在服务中打开本例采用node, 所以在同一目录下建立server.js:提示不使用node启动服务可以在IDEA中直接将index.html以服务run运行1234567891011121314151617181920212223varhttp require(http);// 导入文件读写的jsvarfs require(fs);varserver http.createServer(function(request, response) {console.log(someone has visited my first node server !);//根据访问的路径来选择响应的文件let filePath;if(request.url /) {filePathindex.html;}else{filePathnotfound.html;}//读取文件并写入响应内容中去fs.readFile(filePath,function(err,data ){response.write(data);//不能直接写data 是16进制的数需要转成字符串//我写data.toString() 会报错response.end();})})server.listen(8000,function() {console.log(server started at http://localhost:8000/ ......)});提示使用Chrome播放rtmp流的时候需要允许Flash执行而使用hls播放m3u8则不用命令安装rtmp模块下载并解压 RTMP 模块12cd/www/server/nginx/src/git clone https://github.com/arut/nginx-rtmp-module.git安装pcre库12sudoapt updatesudoaptinstalllibpcre3 libpcre3-dev123cd/www/server/nginx/src/wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gztar-xzvf pcre-8.43.tar.gz1234cdpcre-8.43./configuremakesudomakeinstall确保 Nginx 配置正确1234567891011121314151617181920212223242526272829cd~/nginx-1.24.0/./configure--userwww --groupwww --prefix/www/server/nginx\--add-module/www/server/nginx/src/ngx_devel_kit\--add-module/www/server/nginx/src/lua_nginx_module\--add-module/www/server/nginx/src/ngx_cache_purge\--with-openssl/www/server/nginx/src/openssl\--with-pcre/www/server/nginx/src/pcre-8.43 \--with-http_v2_module \--with-stream \--with-stream_ssl_module \--with-stream_ssl_preread_module \--with-http_stub_status_module \--with-http_ssl_module \--with-http_image_filter_module \--with-http_gzip_static_module \--with-http_gunzip_module \--with-ipv6 \--with-http_sub_module \--with-http_flv_module \--with-http_addition_module \--with-http_realip_module \--with-http_mp4_module \--add-module/www/server/nginx/src/ngx_http_substitutions_filter_module-master\--with-ld-opt-Wl,-E \--with-cc-opt-Wno-error \--with-http_dav_module \--add-module/www/server/nginx/src/nginx-dav-ext-module\--add-module/www/server/nginx/src/nginx-rtmp-module\--with-ld-opt-Wl,-rpath,/usr/local/lib/安装12makemakeinstall检查是否成功在输入下方命令后查找是否安装完成trmp模块1nginx -V如果提示没有找到luajit查看是否安装1luajit -v如果已经安装查找安装目录1whereisluajit根据目录设置环境变量12exportLUAJIT_LIB/usr/local/libexportLUAJIT_INC/usr/local/include/luajit-2.1到此这篇关于nginxrtmp实现直播完整流程的文章就介绍到这了

相关文章:

nginx+rtmp实现直播完整流程

一,环境准备 1.下载nginx-rtmp-module: 1 2 cd /www/server/ git clone https://github.com/arut/nginx-rtmp-module.git 2.Nginx安装: 这是用了宝塔哈。 软件商店 > 应用搜索:nginx > 安装 > 编译安装 > 添加自定义模块 模块…...

Nginx同端口部署多个vue以及unapp项目

同一个端口部署pc和app端项目,Nginx配置,前端打包配置解决方案配置pc端vue项目打包配置配置uniapp项目打包配置,manifest.json文件添加配置123456789101112131415161718192021222324252627"h5": {"router": {"mode&…...

依据新版CNAS-CL01文件软件测试实验室需要建立哪些程序文件

当实验室将申请 CNAS 资质纳入发展规划,第一阶段需要做的是就是按照CNAS相关文件的要求,建立质量管理体系。在一系列的CNAS认可文件中,CNAS-CL01 堪称构建体系的 “基石”,是实验室建立质量管理体系的重要参考文件。实验室质量管理…...

基于STM32L4XX 、HAL库的TMP100NA/3K数字温度传感器驱动应用C语言程序设计

一、简介: TMP100NA 是德州仪器(TI)生产的数字温度传感器。 二、主要技术特性: 测量精度:典型条件下 0.5C(-25C 至 +85C),全温范围 2C(-55C 至 +125C) 分辨率:9 至 12 位可编程(0.5C 至 0.0625C),上电默认为 12 位 接口:I2C/SMBus 兼容,时钟速率最高 400kHz…...

32TOPS算力+工业级宽温适配!SE110S-WA32边缘计算微服务器全解析

随着工业智能化、AIoT产业的深度发展,边缘侧的算力需求迎来爆发式增长。在智慧交通、水利、电力、工地等工业场景中,边缘设备不仅需要强劲的AI推理能力,更要面对高低温、多尘、强电磁干扰、无人值守等严苛的运行环境,同时对功耗、…...

维谛ER4850S2整流模块用户手册

1 简介1.1 型号说明ER4850S2整流模块(以下简称整流模块)型号说明如图1所示。图1 型号说明1.2 外观整流模块的外观如图2所示。图2 整流模块外观图1.3 前面板整流模块的前面板3个指示灯,如图3所示。图3 整流模块前面板图模块固定螺钉&am…...

定做膏方流程

随着大健康消费升级,膏滋因便捷性与养生价值受到市场青睐,膏滋贴牌赛道也迎来快速增长。行业报告显示,近三年国内膏滋贴牌市场年复合增速超20%,定做膏方的需求逐渐从零散走向标准化。其中,湖北金鹰生物科技有限公司凭借…...

镜像视界·港口无穿戴无感定位技术白皮书

版本号:V1.0 发布日期:2026年04月13日 发布单位:镜像视界(浙江)科技有限公司 文档状态:终稿 Final摘要本白皮书聚焦港口场景核心痛点,系统阐述镜像视界无穿戴无感定位解决方案的技术原理、架构体…...

社媒平台限流频发卖家如何突破流量瓶颈

突围算法围城:社交媒体时代卖家的流量破局之道清晨的第一缕阳光还未完全照亮城市,无数卖家已经坐在屏幕前,眉头紧锁。昨日还表现良好的内容,今天的数据却惨淡得令人心慌。通知栏里,那个熟悉的限流提示如同冰冷的判决书…...

如何选择适合的西安GEO优化机构进行云造智搜AIGEO服务?

在选择适合的西安GEO优化机构时,了解其收费标准与服务内容构成至关重要。不同机构的费用结构可能各异,常见的费用包括基础服务费、项目管理费和根据效果而定的提成。在评估团队实力时,查看其过往案例和客户反馈是有效的方法,可帮助…...

从个人网盘到企业网盘,教育行业的文件管理进化之路经历了什么?

教育数字化进程加速,培训机构和学校每天都在与大量的课程资料打交道——视频课件、教案文档、试卷题库、宣传素材。这些资料如何高效、安全地在老师之间流转?又如何分发到学生手中?个人网盘曾是许多机构的临时选择,但随着数据安全…...

西门子S7-1500采用原始算法写的飞剪程序, S7-1500的不支持凸轮同步,没办法做采用西...

西门子S7-1500采用原始算法写的飞剪程序, S7-1500的不支持凸轮同步,没办法做采用西门子的凸轮功能做飞剪程序, 必须用1500T才可以实现,由于1500T价格高,该程序通过研究飞剪算法,采用5次多项式计算刀轴的运动…...

敏捷协同工具选哪家?2026 年 6 大 Scrum 与 Kanban 工具测评

本文将深入对比6大敏捷协同平台:PingCode、Worktile、伙伴云、板栗看板、猪齿鱼、JNPF 在 2026 年,敏捷开发已不再局限于 IT 行业,各行各业都在追求高效协同。但面对市面上琳琅满目的敏捷协同平台,企业管理者常陷入纠结&#xff1…...

探索AI唇形同步的无限创意:sd-wav2lip-uhq解锁视频创作新维度

探索AI唇形同步的无限创意:sd-wav2lip-uhq解锁视频创作新维度 【免费下载链接】sd-wav2lip-uhq Wav2Lip UHQ extension for Automatic1111 项目地址: https://gitcode.com/gh_mirrors/sd/sd-wav2lip-uhq 在AI视频创作领域,sd-wav2lip-uhq作为Stab…...

前端 GraphQL:别再为 API 调用头疼了

前端 GraphQL:别再为 API 调用头疼了 什么是前端 GraphQL? GraphQL 是一种用于 API 的查询语言,也是一个满足你数据查询的运行时。别以为 GraphQL 只是一种新的 API 格式,它是前端数据获取的革命性解决方案。 为什么需要前端 Grap…...

前端 WebAssembly:别再抱怨 JavaScript 性能慢了

前端 WebAssembly:别再抱怨 JavaScript 性能慢了 什么是前端 WebAssembly? WebAssembly(简称 Wasm)是一种低级的编译目标,允许用 C、C、Rust 等语言编写的代码在浏览器中运行,性能接近原生应用。别以为 Web…...

10 款研发协同平台深度比较:从需求到测试到交付,哪款更顺手?

本文将深入对比 10 款主流研发一体化协同平台:PingCode、Worktile、Jira Confluence、GitLab、Azure DevOps、GitHub Enterprise、Linear、阿里云效、 CodeArts、CODING DevOps。现在很多企业做研发协同,真正难的不是缺工具,而是工具太多、太…...

实测对比:OpenCV微信QRCode vs ZXing二维码识别性能(附C++测试代码)

OpenCV微信QRCode与ZXing二维码识别引擎深度性能评测 二维码识别技术早已渗透到我们生活的方方面面,从移动支付到工业自动化,不同场景对识别引擎的性能要求差异显著。最近OpenCV 4.5.1整合了微信开源的QRCode识别模块,号称在速度和准确率上都…...

深入浅出讲解操作系统——实时调度

目录 ⏱️ 实时调度 第1课:什么是实时系统? 🎓 第一部分:专业学术讲解 1. 什么是实时系统? 2. 两种实时系统 🎓 第二部分:实时任务的关键概念 1️⃣ 截止时间(Deadline&#…...

深入解析Buffer在存储器电路设计中的关键作用:驱动能力与负载优化

1. 为什么Buffer是存储器电路设计的隐形英雄? 第一次接触存储器电路设计时,我和很多初学者一样,觉得Buffer(缓冲器)就是个简单的信号中转站。直到某次调试DDR4内存模块,时钟信号出现严重畸变,才…...

告别统计软件困境:虎贲等考 AI,让数据分析从 “硬核难题” 变 “轻松通关”

在学术研究与论文写作中,数据分析一直是横在学生与研究者面前的 “高门槛”。无论是本科毕业论文的基础统计,还是硕博期刊论文的实证检验,从数据清洗、模型构建到结果输出、图表制作,每一步都考验着专业能力。传统工具如 SPSS、St…...

射频新手避坑指南:功放输出匹配到4次谐波,这几个ADS Optim设置千万别搞错

射频功放设计实战:ADS Optim参数设置避坑手册 在射频功放设计中,输出匹配网络的设计质量直接影响着功放的效率、线性度和输出功率等关键指标。许多初学者在使用ADS(Advanced Design System)进行匹配电路优化时,常常陷入…...

轻榴浏览器:仅几MB的“轻功高手“,还你清净无扰的上网自由!

手机浏览器越来越臃肿——动辄几百MB的安装包,后台偷偷跑流量,刚搜个商品就收到精准广告推送,更别提那些关不掉的新闻资讯和弹窗骚扰……在这个"重口味"的浏览器时代,轻榴浏览器像一股清流逆势而来。这款体积小巧、基于…...

完整指南:5分钟掌握ImStudio实时GUI布局设计工具

完整指南:5分钟掌握ImStudio实时GUI布局设计工具 【免费下载链接】ImStudio GUI layout designer for Dear ImGui 项目地址: https://gitcode.com/gh_mirrors/im/ImStudio ImStudio是一款专为Dear ImGui开发者设计的实时GUI布局设计工具,它通过可…...

Unity WebGL实战:用AVProVideo搞定海康监控M3U8流播放(附XChart数据可视化技巧)

Unity WebGL实战:AVProVideo播放海康M3U8监控流与XChart数据可视化全解析 在数字孪生和安防监控领域,Unity WebGL项目集成实时视频流的需求日益增长。海康威视作为行业领先的监控设备供应商,其M3U8视频流格式在WebGL环境下的播放一直是个技术…...

Sentaurus TCAD实战——TCL脚本自动化仿真流程设计

1. 为什么需要TCL自动化仿真流程 第一次接触Sentaurus TCAD时,我像大多数工程师一样,在图形界面里点点鼠标完成仿真。但连续熬夜三天后,我发现每次修改参数都要重复点击20多个按钮,仿真100组参数意味着2000次机械操作。这种重复劳…...

鸿蒙ADB无线调试实战:从“积极拒绝”到稳定连接的避坑指南

1. 鸿蒙ADB无线调试的常见痛点 第一次尝试鸿蒙系统的ADB无线调试时,我遇到了那个经典的错误提示:"cannot connect to 192.168.1.101:5555: 由于目标计算机积极拒绝,无法连接。(10061)"。这个错误让我折腾了整整一个下午&#xff0c…...

《计算机组成原理》从零设计 CPU:深度拆解现代 RISC 处理器的通用数据通路与控制逻辑

本文内容深度参考了计算机体系结构领域的经典著作——《计算机组成与设计:硬件/软件接口》(Computer Organization and Design,简称 COAD)。 在学习 CPU 设计的过程中,我发现书中对数据通路的刻画极为精妙,…...

解锁专业音效:ViPER4Windows在Windows 10/11的完美运行方案

解锁专业音效:ViPER4Windows在Windows 10/11的完美运行方案 【免费下载链接】ViPER4Windows-Patcher Patches for fix ViPER4Windows issues on Windows-10/11. 项目地址: https://gitcode.com/gh_mirrors/vi/ViPER4Windows-Patcher 厌倦了ViPER4Windows在最…...

基于 Java 和高德开放平台的 WebAPI 集成实践——以“搜索 POI 2.0”为例

在位置服务类应用里,“找点”(Point of Interest,POI)几乎是最常见能力:输入“咖啡”“地铁站”“医院”,返回可用地点列表。 高德开放平台的 WebAPI 在这类场景中非常成熟,而 POI 2.0 相比早期…...