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

手动修改nginx-rtmp模块,让nginx-rtmp-module支持LLHLS

文章目录

    • 1. 背景
    • 2. 开发环境搭建
      • 2.1 ffmpeg在ubuntu上安装
      • 2.2 nginx-rtmp-module在ubuntu上安装
      • 2.3 安装vscode环境
    • 2. 修改nginx-rtmp-module
      • 2.1 主要更新内容
      • 2.2 新增配置项
      • 2.3 代码更新
    • 3. LLHLS验证方法
      • 3.1 配置验证
      • 3.2 功能验证
    • 4. 注意事项
    • 5. 已知问题
    • 6. 后续计划

1. 背景

LLHLS(Low-Latency HLS)是一种低延迟的HLS播放技术,可以显著减少视频播放的延迟。前面文章中已经介绍了LLHLS相关内容,这里不再赘述。
参照:流媒体协议之LL-HLS低延时HLS协议

在github上找了下有关LLHLS服务器实现的开源代码,发现没有找到比较好的LLHLS服务器实现,前面文章我们使用过通过nginx-rtmp-module实现HLS,
参照:使用nginx的rtmp模块搭建RTMP和HLS流媒体服务
这里的rtmp扩展模块,并不支持LLHLS,所以决定自己手动修改nginx-rtmp-module,增加LLHLS支持。

2. 开发环境搭建

2.1 ffmpeg在ubuntu上安装

windows上安装也可以,前文介绍过安装过程,如果不需要再ubuntu上安装ffmpeg,可以跳过。
这里简单介绍下在ubuntu安装的过程

  • 下载

相关文章:

手动修改nginx-rtmp模块,让nginx-rtmp-module支持LLHLS

文章目录 1. 背景2. 开发环境搭建2.1 ffmpeg在ubuntu上安装2.2 nginx-rtmp-module在ubuntu上安装2.3 安装vscode环境2. 修改nginx-rtmp-module2.1 主要更新内容2.2 新增配置项2.3 代码更新3. LLHLS验证方法3.1 配置验证3.2 功能验证4. 注意事项5. 已知问题6. 后续计划1. 背景 …...

gitee别人仓库再上传自己仓库

一、新建一个自己的Git仓库 如果没有注册账号的朋友,可以先去注册一个Gitee的账号,用于管理自己的代码特别好用!!! 接下来就是在gitee上新建一个自己的仓库,如下图所示 二、右建 Git Bush Here删除.git文件…...

create-react-app 创建react项目报错 ERESOLVE unable to resolve dependency tree

会报下面这样一个错误,这个错误以前是没有的,最近才出现这个错误。这个非常的蛋疼,意思是testing-library这个库的版本需要react18,但现在安装的是react19。 create-react-app的github是有这个issue的,但官方好像没给…...

从git上下载的项目不完整,关于git lfs

文章目录 问题一、git lfs是什么?二、如何获取git lfs中的文件1.安装 Git LFS2.下载文件 问题 在git上下载的项目无法执行,打开相关文件后发现如下内容: git lfs pull version https://git-lfs.github.com/spec/v1 oid sha256:00920b6723bb39321eea748fd96279f8a…...

sqlite3,一个轻量级的 C++ 数据库库!

宝子们,今天咱来唠唠 sqlite3 这个超棒的轻量级 C 数据库库。它就像是一个小巧但功能齐全的“数据仓库”,能帮咱们轻松地存储、查询和管理数据,无论是开发小型的桌面应用,还是做一些简单的数据处理程序,它都能派上大用…...

Pytorch | 从零构建ParNet/Non-Deep Networks对CIFAR10进行分类

Pytorch | 从零构建ParNet/Non-Deep Networks对CIFAR10进行分类 CIFAR10数据集ParNet架构特点优势应用 ParNet结构代码详解结构代码代码详解SSEParNetBlock 类DownsamplingBlock 类FusionBlock 类ParNet 类 训练过程和测试结果代码汇总parnet.pytrain.pytest.py 前面文章我们构…...

验证 Dijkstra 算法程序输出的奥秘

一、引言 Dijkstra 算法作为解决图中单源最短路径问题的经典算法,在网络路由、交通规划、资源分配等众多领域有着广泛应用。其通过不断选择距离源节点最近的未访问节点,逐步更新邻居节点的最短路径信息,以求得从源节点到其他所有节点的最短路径。在实际应用中,确保 Dijkst…...

二叉树的最小深度

最小深度思路解析: 与求最大深度相比,求最小深度就要简单很多,从上向下访问,只要访问到一个叶节点,证明已经到达了与根节点距离最近的叶节点处,此叶节点的深度即为最小深度.借助队列,如果当前节点为叶节点,则返回该节点的深度为最终结果;如果当前节点不满足上述判断且不为空节…...

C#+OpenCv深度学习开发(常用模型汇总)

在使用 OpenCvSharp 结合深度学习进行机器视觉开发时,有许多现成的模型可以使用。以下是一些常用的深度学习模型,适用于不同的机器视觉任务,包括物体检测、图像分类和分割等。 使用示例 在 OpenCvSharp 中加载和使用这些模型的基本示例&…...

什么样的LabVIEW控制算自动控制?

自动控制是指系统通过预先设计的算法和逻辑,在无人工干预的情况下对被控对象的状态进行实时监测、决策和调整,达到预期目标的过程。LabVIEW作为一种图形化编程工具,非常适合开发自动控制系统。那么,什么样的LabVIEW控制算作“自动…...

Linux系统编程——理解系统内核中的信号捕获

目录 一、sigaction() 使用 信号捕捉技巧 二、可重入函数 三、volatile关键字 四、SIGCHLD信号 在信号这一篇中我们已经学习到了一种信号捕捉的调用接口:signal(),为了深入理解操作系统内核中的信号捕获机制,我们今天再来看一个接口:si…...

《Java 与 OpenAI 协同:开启智能编程新范式》

在当今科技飞速发展的时代,人工智能已成为推动各领域创新变革的核心力量。OpenAI 作为人工智能领域的领军者,其开发的一系列强大模型,如 GPT 系列,为自然语言处理等诸多任务带来了前所未有的突破。而 Java,作为一种广泛…...

基于Python大数据的电影可视化分析系统

标题:基于 Python 大数据的电影可视化分析系统 内容:1.摘要 本文介绍了一个基于 Python 大数据的电影可视化分析系统。该系统通过收集和分析大量电影数据,提供了对电影市场的深入洞察。文章首先介绍了系统的背景和目的,然后详细描述了系统的架构和功能。…...

【杂谈】-为什么Python是AI的首选语言

为什么Python是AI的首选语言 文章目录 为什么Python是AI的首选语言1、为何 Python 引领人工智能发展1.1 可用性和生态系统1.2 用户群和用例1.3 效率辅助 2、AI项目对Python开发人员的要求3、如何开启你的 AI 学习之旅 人工智能的广泛应用正在软件工程领域引发范式转变。Python凭…...

(高可用版本)Kubeadm+Containerd+keepalived部署高可用k8s(v1.28.2)集群

KubeadmContainerdkeepalived部署高可用k8s(v1.28.2)集群 一.环境准备,二.容器运行时Containerd安装请参照前文。KubeadmContainerd部署k8s(v1.28.2)集群(非高可用版)-CSDN博客 文章目录 KubeadmContainerdkeepalived部署高可用k8s(v1.28.2)集…...

单片机:实现自动关机电路(附带源码)

单片机实现自动关机电路 在许多嵌入式系统或便携式设备中,自动关机功能非常重要,尤其是在电池供电的设备中,防止设备长时间开启以节省电能。自动关机电路的基本功能是检测设备是否处于待机状态,若一定时间内未收到用户操作信号或…...

【YashanDB知识库】ycm-YashanDB列表有数据库显示故障排除步骤

本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7802959.html?templateId1718516 数据库状态 正常 异常 1、查看告警列表 例如:告警显示实例无法连接,一般是数据库实例服务掉了,需要尽快联系系统…...

高级的SQL查询技巧有哪些?

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于高级SQL查询技巧方面的相关内容&#xf…...

使用 UniApp 在微信小程序中实现 SSE 流式响应

概述 服务端发送事件(Server-Sent Events, SSE)是一种允许服务器向客户端推送实时更新的技术。SSE 提供了一种单向的通信通道,服务器可以持续地向客户端发送数据,而不需要客户端频繁发起请求。这对于需要实时更新的应用场景非常有…...

transformer用作分类任务

系列博客目录 文章目录 系列博客目录1、在手写数字图像这个数据集上进行分类1. 数据准备2. 将图像转化为适合Transformer的输入3. 位置编码4. Transformer编码器5. 池化操作6. 分类头7. 训练8. 评估总结流程:相关模型: 1、在手写数字图像这个数据集上进行…...

HDLbits实战解析:从状态机基础到One-Hot编码进阶

1. 状态机基础与HDLbits实战入门 第一次接触状态机时,我也被那些抽象的状态转换图绕得头晕。直到在HDLbits上刷完Fsm3这道题,才真正理解状态机就像自动售货机的工作逻辑 - 投币、选择、出货,每个动作都对应明确的状态跳转。HDLbits平台最棒的…...

从电赛真题到产品原型:深入剖析基于STM32的单相全桥逆变器设计与调优实战

从电赛真题到产品原型:深入剖析基于STM32的单相全桥逆变器设计与调优实战 在电子设计竞赛和工业应用中,单相全桥逆变器一直是电源类项目的核心课题。无论是全国大学生电子设计竞赛中的经典题目,还是实际工业场景中的中小功率变频需求&#xf…...

FLUX.1-dev-fp8-dit文生图应用:Web前端集成方案

FLUX.1-dev-fp8-dit文生图应用:Web前端集成方案 想象一下,你的产品经理走过来,兴奋地说:“我们的用户调研显示,用户希望在App里直接输入一句话,就能生成一张精美的配图,用来发动态或者做海报。…...

Python使用SymSpell详解:打造极速拼写检查引擎

在自然语言处理(NLP)领域,拼写检查是提升文本质量的关键环节。传统方法如PyEnchant依赖语言规则库,而基于深度学习的模型(如BERT)虽精度高但计算成本高昂。本文将聚焦SymSpell——一个基于对称删除算法的Py…...

Qt定时器实战:5个QTimer高频使用场景代码示例(附避坑指南)

Qt定时器实战:5个QTimer高频使用场景代码示例(附避坑指南) 在Qt开发中,定时器是构建响应式、实时性应用的核心组件之一。无论是界面刷新、数据轮询还是事件防抖,QTimer都能以简洁的API解决复杂的时间控制问题。本文将聚…...

利用screen高效管理串口会话:从基础操作到高级技巧

1. 为什么选择screen管理串口? 第一次接触串口调试时,我和大多数人一样用的是minicom。直到有次调试某款嵌入式设备,发现minicom显示BIOS信息时色彩混乱,这才开始寻找替代方案。screen这个看似普通的终端复用工具,在串…...

服务依赖管理

服务依赖管理:构建稳定系统的关键基石 在现代分布式系统和微服务架构中,服务依赖管理已成为保障系统稳定性和可扩展性的核心环节。随着业务复杂度的提升,服务间的调用关系日益错综复杂,如何高效管理这些依赖关系,避免…...

Ostrakon-VL-8B惊艳效果:在严重反光/水渍/褶皱包装袋上仍识别品牌

Ostrakon-VL-8B惊艳效果:在严重反光/水渍/褶皱包装袋上仍识别品牌 想象一下,你是一家连锁超市的巡检员,每天要检查上百个货架。有些商品包装袋在运输中压皱了,有些被顾客不小心洒上了水,还有些在灯光下反光严重。传统…...

3步搞定离线软件包管理:apt-offline让你的Linux系统摆脱网络依赖

3步搞定离线软件包管理:apt-offline让你的Linux系统摆脱网络依赖 【免费下载链接】apt-offline Offline APT Package Manager 项目地址: https://gitcode.com/gh_mirrors/ap/apt-offline 在现代Linux系统管理中,我们经常面临这样的困境&#xff1…...

万象视界灵坛惊艳效果展示:浅蓝格点UI+8px硬边投影下的实时语义可视化

万象视界灵坛惊艳效果展示:浅蓝格点UI8px硬边投影下的实时语义可视化 1. 视觉革命:当AI遇见像素艺术 万象视界灵坛彻底颠覆了传统AI视觉工具的刻板印象,将复杂的语义分析过程转化为一场视觉盛宴。这款基于OpenAI CLIP技术的多模态平台&…...