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

保姆级教程:用FFmpeg+Nginx把监控摄像头RTSP流转成HLS网页播放

从RTSP到HLS零基础构建浏览器兼容的监控视频流系统在智能安防和物联网应用场景中监控摄像头产生的视频流通常采用RTSP协议传输但现代浏览器却无法直接播放这种流媒体格式。本文将手把手带您实现RTSP到HLS的完整转换方案通过FFmpeg进行实时转码利用Nginx搭建高效的流媒体服务器最终在任意浏览器中实现低延迟的视频监控展示。1. 技术选型与环境准备1.1 为什么选择HLS协议RTSP作为监控设备的主流协议虽然实时性好但存在三个致命缺陷浏览器兼容性所有主流浏览器均需插件支持防火墙穿透使用非常用端口易被拦截移动端适配iOS系统原生不支持RTSP播放相比之下HLS协议具有显著优势特性RTSPHLS延迟0.5-2秒10-30秒浏览器支持不支持全平台支持防火墙友好差优秀自适应码率不支持原生支持提示虽然HLS延迟较高但通过后文的优化技巧可降至3-5秒满足大多数监控场景需求1.2 基础工具安装推荐使用Docker部署关键组件避免环境冲突# 安装Docker版FFmpeg含RTSP支持 docker pull jrottenberg/ffmpeg # 安装带RTMP模块的Nginx docker pull tiangolo/nginx-rtmp硬件配置建议4核CPU/8GB内存支持5路1080P转码100Mbps网络带宽每路视频约2-4MbpsSSD存储提升切片文件写入速度2. FFmpeg转码核心配置2.1 基础转码命令剖析以下命令实现RTSP到HLS的转换ffmpeg -i rtsp://admin:password192.168.1.100:554/stream \ -c:v libx264 -profile:v baseline -level 3.0 \ -preset ultrafast -tune zerolatency \ -g 30 -sc_threshold 0 -b:v 1500k \ -f hls -hls_time 2 -hls_list_size 5 \ -hls_flags delete_segmentsappend_list \ /var/www/html/live/stream.m3u8关键参数说明-preset ultrafast牺牲压缩率换取转码速度-tune zerolatency启用零延迟优化-g 30每30帧一个关键帧与hls_time匹配-hls_flags delete_segments自动清理旧切片2.2 画质与延迟的平衡技巧通过对比测试发现的最佳实践分辨率适配-s 1280x720 # 720P -s 1920x1080 # 1080P码率控制方案# 恒定码率CBR -b:v 2M -maxrate 2M -minrate 2M -bufsize 1M # 动态码率VBR -crf 23 -maxrate 3M -bufsize 5M音频处理根据场景选择-an # 禁用音频降低CPU占用 -c:a aac -b:a 128k # 保留音频3. Nginx服务器深度优化3.1 高性能HLS服务配置nginx.conf关键配置片段http { server { listen 80; location /live { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /var/www/html; add_header Cache-Control no-cache; add_header Access-Control-Allow-Origin *; # 启用MP4切片缓存提升seek性能 mp4; mp4_buffer_size 4m; mp4_max_buffer_size 10m; } } }3.2 负载均衡方案当需要支持多路摄像头时建议采用以下架构[ 摄像头集群 ] ↓ [ FFmpeg转码集群 ] ↓ [ Nginx负载均衡 ] ↓ [ 边缘节点分发 ]对应的Nginx upstream配置upstream stream_servers { zone upstreams 64K; server 192.168.1.101:80 weight3; server 192.168.1.102:80; server 192.168.1.103:80 backup; } location /hls { proxy_pass http://stream_servers; proxy_http_version 1.1; proxy_set_header Connection ; }4. 前端播放器实战方案4.1 自适应播放器实现推荐使用video.js配合hls.js插件link hrefhttps://vjs.zencdn.net/7.20.3/video-js.css relstylesheet video idcamera-1 classvideo-js controls preloadauto source srchttp://server/live/stream.m3u8 typeapplication/x-mpegURL /video script srchttps://vjs.zencdn.net/7.20.3/video.min.js/script script srchttps://cdn.jsdelivr.net/npm/hls.jslatest/script script const player videojs(camera-1, { fluid: true, responsive: true, controlBar: { pictureInPictureToggle: false } }); if (Hls.isSupported()) { const hls new Hls({ maxBufferLength: 30, maxMaxBufferLength: 600, enableWorker: false }); hls.attachMedia(player.tech().el()); } /script4.2 低延迟优化技巧播放器参数调优const hls new Hls({ maxLatency: 5, // 最大允许延迟(秒) maxBufferHole: 0.5, // 最大允许缓冲缺口 lowLatencyMode: true // 启用实验性低延迟模式 });服务端配合调整ffmpeg -i rtsp://... -hls_time 1 -hls_list_size 3 ...网络传输优化# 启用HTTP/2 listen 443 ssl http2; # 启用Brotli压缩 brotli_types application/vnd.apple.mpegurl;5. 生产环境部署指南5.1 容器化部署方案推荐使用docker-compose编排服务version: 3 services: ffmpeg: image: jrottenberg/ffmpeg command: [ -i, rtsp://camera/stream, -c:v, libx264, -f, hls, -hls_time, 2, /tmp/hls/stream.m3u8 ] volumes: - ./html:/tmp/hls nginx: image: nginx:rtmp ports: - 80:80 - 1935:1935 volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./html:/var/www/html5.2 监控与维护日志分析命令# 查看FFmpeg实时状态 docker logs -f ffmpeg_container --tail 100 # Nginx流量监控 goaccess /var/log/nginx/access.log --log-formatCOMBINED异常处理方案流中断自动恢复while true; do ffmpeg -i rtsp://...; sleep 1; done存储空间监控watch -n 60 du -sh /var/www/html/live/性能监控指标转码帧率不低于25fps切片生成间隔波动小于±10%端到端延迟保持3-10秒区间在实际项目中这套方案成功支持了某智慧园区200摄像头的实时监控需求转码集群采用8核16G的EC2实例可稳定处理40路1080P视频流。关键发现是HLS切片时间设置为1秒时配合播放器优化可实现3秒左右的端到端延迟完全满足安防巡检需求。

相关文章:

保姆级教程:用FFmpeg+Nginx把监控摄像头RTSP流转成HLS网页播放

从RTSP到HLS:零基础构建浏览器兼容的监控视频流系统 在智能安防和物联网应用场景中,监控摄像头产生的视频流通常采用RTSP协议传输,但现代浏览器却无法直接播放这种流媒体格式。本文将手把手带您实现RTSP到HLS的完整转换方案,通过F…...

PyAV实战:如何用TCP协议稳定拉取RTSP视频流(附超时解决方案)

PyAV实战:TCP协议拉取RTSP视频流的工程化解决方案 引言 在视频处理项目中,稳定获取RTSP流是许多开发者面临的共同挑战。不同于简单的本地文件读取,网络视频流传输涉及复杂的协议交互和实时性要求。PyAV作为FFmpeg的Python绑定,提供…...

OpenCV CSRT目标跟踪实战:从摄像头到无人机,5步搞定复杂场景跟踪

OpenCV CSRT目标跟踪实战:从摄像头到无人机,5步搞定复杂场景跟踪 计算机视觉领域的目标跟踪技术正在经历一场从实验室到真实场景的落地革命。想象一下,当你的无人机能够自主锁定并跟随拍摄目标,或者在工业质检线上精准追踪移动零件…...

Wox这款开源Windows启动器,我用了十年

AltSpace,弹出一个框,输入一行字,所有事情都办妥了。 前言 作为一枚每天在电脑前坐10小时以上的程序员,我用过不少效率工具。Listary、uTools、PowerToys Run、Alfred……几乎主流的启动器都折腾过。 但今天我想聊聊一个比较「老…...

基于虚拟阻抗重塑的构网型VSG变流器SISO序阻抗建模与宽频振荡抑制策略分析(面向高比例新能源并网场景)

1. 虚拟阻抗控制如何重塑VSG变流器的阻抗特性 我第一次接触虚拟阻抗这个概念是在五年前的一个新能源并网项目上。当时系统频繁出现次同步振荡,传统方法束手无策,直到引入了虚拟阻抗控制才解决问题。简单来说,虚拟阻抗就像给变流器装了个"…...

IFRS/IAS 核心财务概念中英对照速查手册(附实务应用场景)

1. IFRS/IAS核心财务概念入门指南 刚接触国际财务报告准则时,我完全被那些英文缩写搞晕了。记得第一次看到IFRS 16和IAS 38时,还以为是什么密码代号。其实这些术语就像财务界的"普通话",掌握它们才能在全球商业舞台上顺畅交流。 国…...

AirScript脚本进阶玩法:定制你的专属早安邮件(含天气/纪念日提醒)

AirScript脚本进阶玩法:定制你的专属早安邮件(含天气/纪念日提醒) 清晨的第一缕阳光透过窗帘,手机震动提示音响起。你期待的不仅是新的一天,还有那封专属于你的早安邮件——它不只是简单的问候,更包含今日天…...

平头哥剑池CDK调试实战:用外设窗口和Watches快速定位IoT设备内存泄漏问题

平头哥剑池CDK调试实战:用外设窗口和Watches快速定位IoT设备内存泄漏问题 在嵌入式开发中,内存泄漏问题往往是最难排查的故障之一。当你的智能传感器设备在运行数小时后突然重启,而日志中仅留下模糊的"内存不足"提示时,…...

背包DP实战:如何用动态规划解决子集和问题(附完整代码)

背包DP实战:如何用动态规划解决子集和问题(附完整代码) 动态规划(Dynamic Programming, DP)是算法设计中解决复杂问题的利器,而背包问题则是动态规划的经典应用场景之一。本文将深入探讨如何利用背包DP解决…...

数字化转型中的数据安全:提示工程架构师必须掌握的提示词脱敏技术

数字化转型中的数据安全:提示工程架构师必须掌握的提示词脱敏技术 一、引言:数字化转型中的数据安全痛点 1.1 数字化转型的“双刃剑”:效率与风险并存 随着人工智能(尤其是大语言模型,LLM)技术的爆发&#…...

大数据领域Kafka在教育科技数据处理中的应用

大数据领域Kafka在教育科技数据处理中的应用 引言 背景介绍 在当今数字化快速发展的时代,教育科技取得了前所未有的进步。从在线学习平台的兴起,到智能教育设备的广泛应用,教育领域产生了海量的数据。这些数据涵盖了学生的学习行为、课程互动…...

# Redis缓存实战:更新策略与三大核心问题(穿透/雪崩/击穿)全解析(含面试重点)

Redis缓存实战:更新策略与三大核心问题(穿透/雪崩/击穿)全解析(含面试重点) 在分布式系统中,Redis作为高性能的分布式缓存,是提升系统并发能力、减轻数据库压力的核心组件。但缓存的使用并非“一…...

第202题. 快乐数

第202题. 快乐数 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过程 结果…...

计算机毕业设计 java 物业管理系统的设计与实现 Java 智能小区物业管理平台开发 基于 SpringBoot 的物业综合服务管理系统实现

计算机毕业设计 java 物业管理系统的设计与实现 098io9(配套有源码 程序 mysql 数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联 xi 可分享城市化进程加快,小区规模不断扩大,传统物业管理模式依赖人工记录…...

这次终于选对!倍受青睐的AI论文写作软件 —— 千笔·专业学术智能体

你是否曾为论文选题发愁,反复修改却总对表达不满意?是否在深夜面对空白文档文思枯竭,又担心查重率过高?论文写作的每一步都充满挑战,从开题到定稿,每一个环节都可能成为“卡壳”的节点。如果你也在经历这些…...

救命神器!AI论文写作软件 千笔·专业论文写作工具 VS 文途AI,全行业通用首选!

还在为选题→大纲→初稿→文献→降重→查重→格式→答辩PPT的全流程焦头烂额?千笔AI以八大核心功能实现全流程一站式覆盖,从选题到答辩PPT生成全程护航,让论文写作从“耗时耗力”变成“高效规范”,真正实现“选题快、框架稳、修改…...

FineBI6.0从零部署到实战:Windows环境完整指南

1. FineBI6.0初体验:为什么选择它? 第一次接触FineBI6.0是在去年帮朋友公司做数据分析项目时。当时他们需要一款上手快、功能强的BI工具,我对比了几款主流产品后,最终选择了FineBI6.0。原因很简单:零代码操作和可视化效…...

中微8S6990低功耗模式实战:如何优化ADC与PWM配置实现超长待机

中微8S6990低功耗模式实战:ADC与PWM配置优化策略 在电池供电设备开发领域,低功耗设计直接决定了产品的市场竞争力。中微8S6990作为一款增强型8051内核MCU,凭借其丰富的外设资源和灵活的配置选项,成为众多便携式设备的首选控制器。…...

德克威尔AX3000 PLC高速计数实战:HSC_TouchProbe与HSC_Counter组合应用避坑指南

德克威尔AX3000 PLC高速计数实战:HSC_TouchProbe与HSC_Counter组合应用避坑指南 在工业自动化领域,高速计数功能是实现精准运动控制、位置检测的关键技术。德克威尔AX3000系列PLC凭借其出色的实时性能和灵活的编程环境,成为许多工程师的首选。…...

MNIST数据集快速获取指南 —— 百度网盘与GitHub资源整合

1. MNIST数据集简介:为什么它值得你拥有 MNIST手写数字数据集堪称机器学习界的"Hello World",这个由6万张训练图片和1万张测试图片组成的经典数据集,自1998年发布以来已经服务了无数AI初学者和研究者。每张图片都是2828像素的灰度图…...

不止是玩具:拆解自平衡小车里的控制算法,看PID如何让‘倒立摆’立住

从倒立摆到自平衡小车:PID算法的魔力解析 两轮自平衡小车看似简单,实则蕴含了精妙的控制理论。这种看似"反重力"的装置,实际上是经典倒立摆问题的工程实现。想象一下,当你试图用手指平衡一根倒立的扫帚时,需…...

如何降低AI论文的AI率?10款ai降重工具推荐

如何降低AI论文的AI率?10款ai降重工具推荐 为你提供降低 AI 论文 AIGC 率的完整方法论 10 款实测有效工具推荐(2026 年 1 月最新),帮你把 AI 率从高值稳定降到5% 以下(多数高校合格线),同时保留…...

OpenClaw 的个性化适配是如何进行的?是基于用户画像的微调还是动态 prompt 注入?

关于OpenClaw的个性化适配机制,其实可以从一个更贴近实际工程实践的角度来理解。很多人在初次接触这类系统时,会下意识地将它归类为“基于用户画像的微调”或“动态prompt注入”中的一种,但真实情况往往比这种二选一的划分要复杂一些。 如果观…...

在流式响应中,OpenClaw 如何控制生成速率和输出平滑度?是否使用了异步令牌生成?

在讨论流式响应中的生成速率和平滑度控制时,一个常见的误区是认为这仅仅是一个技术参数调整的问题。实际上,它更像是在平衡一场对话中的节奏感——说得太快,对方可能跟不上;说得太慢,又会显得拖沓。OpenClaw 在这方面的…...

突破在即!〖突破实体长阴〗指标:向上突破启动点,实体长阴回踩擒牛!

突破在即!〖突破实体长阴〗指标:向上突破启动点,实体长阴回踩擒牛! “突破实体长阴”指标是一套捕捉强势股回调结束、向上突破启动点的技术分析工具。 它专用于识别放量长阴线后的主力洗盘行为,帮助投资者把握右侧交…...

OpenClaw 的模型可解释性如何实现?是否提供注意力可视化或关键特征归因?

关于OpenClaw模型的可解释性,其实可以从一个比较实际的角度来看。模型的可解释性现在越来越受重视,毕竟谁也不希望用一个完全黑盒的系统来做关键决策。OpenClaw在这方面做了一些工作,但可能和很多人想象的不太一样。 注意力可视化确实是很多模…...

探索模糊PID主动悬架模型:汽车平顺性仿真的奇妙之旅

【模糊PID主动悬架模型】采用模糊PID控制的二自由度(1/4)主动悬架模型,可以自适应调整PID的参数,以悬架动挠度为控制目标,输入为C级随机路面激励,输出为车身垂向加速度、轮胎动载荷、悬架动挠度等平顺性评价…...

1Panel:现代化开源Linux服务器运维管理面板

背景 对于管理 Linux 服务器,传统的方式需要记忆大量命令,这对于很多开发者尤其是新手来说是一个不小的挑战。长期以来,宝塔面板 是国内最流行的服务器管理工具,它简单易用、功能丰富,但存在以下问题: 问…...

直流电动机双闭环调速系统仿真:Matlab/Simulink 的奇妙之旅

直流电动机双闭环调速系统仿真Matlab/Simulink 电力电子实验 PI控制 电流内环 转速外环 可以快速达到稳态 建模 仿真 报告书在电力电子实验的领域中,直流电动机双闭环调速系统一直是备受关注的经典项目。它结合了 PI 控制,通过电流内环和转速外环的精妙配…...

COMSOL 实现单个金纳米颗粒光热仿真:从理论到代码复现

COMSOL,单个金纳米颗粒光热仿真,文章复现,波动光学,固体传热在纳米光子学领域,理解单个金纳米颗粒的光热效应至关重要。借助 COMSOL 这一强大的多物理场仿真软件,我们可以深入探究其中的物理机制。今天就来…...