HLS协议之nginx-hls-多码率测试环境搭建
运行环境:ubuntu 20.04
时间:2024年10月26日
环境更新
sudo apt-get update
sudo apt-get install build-essential libtool libpcre3 libpcre3-dev zlib1g-dev openssl
下载nginx
wget http://nginx.org/download/nginx-1.19.2.tar.gz
tar xvzf nginx-1.19.2.tar.gz
cd nginx-1.19.2/
./configure --prefix=/usr/local/rtmp-nginx --with-http_ssl_module --add-module=/home/jbj/zvmdia/nginx/nginx-http-flv-modulesudo make -j 8sudo make install最终安装到⽬录:
ls /usr/local/rtmp-nginx/sudo chown -R jbj:root .
sudo chmod -R 777 .
nginx配置测试
1.启动nginx
2.ffmpeg 推流,nginx会监听到推流 进行application live转码出多个高低码流文件
ffmpeg -re -i time.mp4 -vcodec copy -acodec copy -f flv -y rtmp://127.0.0.1/live/jbj
3.ffplay 拉流播放
ffplay rtmp://127.0.0.1/live/jbj
或者使用vlc 访问其他码流
http://127.0.0.1:8081/hls/jbj.m3u8
http://127.0.0.1:8081/hls/jbj_low/index.m3u8
http://127.0.0.1:8081/hls/jbj_hi/index.m3u8
nginx配置文件
/tmp/hls 转码文件目录
宽带和码率不匹配时,建议提示用户手动切换。因为网络抖动会导致频繁切换,最终观影体验极差。
user root;
# 关闭 Daemon 进程
daemon off;# 关闭 Master 进程
master_process off;# 设置日志级别
error_log /tmp/error.log debug;events {worker_connections 1024;
}rtmp {server {listen 1935;chunk_size 4000;# Live 应用配置application live {live on;# 使用 FFmpeg 进行转码并输出多码率 FLV 流exec /usr/bin/ffmpeg -i rtmp://localhost/live/$name -c:a copy -c:v libx264 -b:v 300K -g 30 -s 720x420 -f flv rtmp://localhost/hls/$name_hi -c:a copy -c:v libx264 -b:v 200K -g 30 -s 462x254 -f flv rtmp://localhost/hls/$name_mid -c:a copy -c:v libx264 -b:v 100K -g 30 -s 230x128 -f flv rtmp://localhost/hls/$name_low;}# HLS 应用配置application hls {live on;hls on;hls_path /tmp/hls;hls_nested on;hls_fragment 2s;hls_playlist_length 6s;# 配置不同码率的 HLS 流hls_variant _hi BANDWIDTH=350000;hls_variant _mid BANDWIDTH=250000;hls_variant _low BANDWIDTH=150000;}}
}http {server {listen 8081;# 默认 Web 服务根目录location / {root html;index index.html index.htm;}# HLS 文件访问配置location /hls {types {application/vnd.apple.mpegusr m3u8;video/mp2t ts;}alias /tmp/hls;add_header Cache-Control no-cache;}}
}
相关文章:
HLS协议之nginx-hls-多码率测试环境搭建
运行环境:ubuntu 20.04 时间:2024年10月26日 环境更新 sudo apt-get update sudo apt-get install build-essential libtool libpcre3 libpcre3-dev zlib1g-dev openssl下载nginx wget http://nginx.org/download/nginx-1.19.2.tar.gz tar xvzf n…...
函数式接口与回调函数实践
函数式接口与回调函数实践 一、Java 的函数式接口 是指仅包含一个抽象方法的接口,通常用于 lambda 表达式或方法引用。Java 8 引入了很多内置的函数式接口,比如 Runnable、Callable、Predicate、Function、Consumer 等 演示,数据类型转换的函…...
Windows11系统如何使用自带的录音、录屏工具?
电脑录音和录屏作为现代办公的辅助工具,不仅极大地提升了工作效率,也保障了信息传递的准确性和完整性。通过合理利用这些工具,我们可以更好地保存和管理重要资料,为办公带来无与伦比的便利。 在会议记录、讲座学习、语音备忘等场景…...
使用 web (vue 和DRF))实现 模拟一个IDE 功能思路
采用文件系统和数据库相结合的方案,不仅可以实现基本的文件管理,还可以为未来的扩展提供灵活性。结合我们讨论的内容,以下是更完善的策略: 方案概述:文件系统与数据库结合 文件系统负责实际的文件存储和执行操作&…...
智航船舶租赁综合管理系统
1.产品介绍 产品介绍方案 产品名称: 智航船舶租赁综合管理系统 主要功能: 船舶信息管理租赁合同管理运营调度与优化财务分析与报告功能介绍: 1. 船舶信息管理 具体作用与使用方式:该功能模块允许用户录入、编辑和查询所有船舶的详细信息,包括但...
统信UOS下启动图形界面应用工具monitor报JAVA相关错:An error has occurred. See the log file
☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、前言 在博文《基于飞腾2000CPU浪潮电脑统信UOS安装达梦数据库详解 https://blog.csdn.net/LaoYuanPython/article/details/143258863》中介绍了基于飞腾2000CPU浪潮电脑统信UOS安装达梦数据库的详细过程…...
N-154基于springboot酒店预订管理系统
开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 前端技术:AdminLTEBootstrapLayUIHTMLjQuery 服务端技术:springbootmybatis-plusthymeleaf 本项目分前台和后台…...
微信小程序如何实现地图轨迹回放?
要在Uni-app中实现微信小程序的地图轨迹回放功能,你可以按照以下步骤进行操作: 在Uni-app项目中引入地图组件:在页面中使用uni-app提供的map组件,可以使用uni.createMapContext方法获取地图上下文对象,以便后续操作地图…...
vscode的一些使用心得
问题1:/home目录空间有限 连接wsl或者remote的时候,会在另一端下载一个.vscode-server,vscode的插件都会安装进去,导致空间增加很多,可以选择更换这个文件的位置 参考:https://blog.csdn.net/weixin_4389…...
Python金色流星雨(完整代码)
文章目录 环境需求完整代码下载代码代码分析1. 导入库和窗口设置2. 创建画笔对象3. 流星的颜色4. 定义流星类`Meteor`5. `meteor`方法:绘制流星6. `move`方法:流星的运动7. 创建流星对象列表8. 动画循环总结系列目录写在后面环境需求 python3.11.4PyCharm Community Edition …...
[山河CTF 2024] week3
一周不在家,这是补的最后一篇。后边的还有0xgame和shctf的末周。打不动了。 Crypto Approximate_n 题目分两部分,flag分两块两个RSA,第1个泄露了4个n_approxkpr的值,后边只泄露了1个。 第1部分利用以前的模板,造格…...
Java集合常见面试题总结(5)
HashSet 如何检查重复? 当你把对象加入HashSet时,HashSet 会先计算对象的hashcode值来判断对象加入的位置,同时也会与其他加入的对象的 hashcode 值作比较,如果没有相符的 hashcode,HashSet 会假设对象没有重复出现。但是如果发…...
牛客网刷题(3)(Java的几种常用包)
目录 一、牛客网案例题目。 二、Java常用包的总结。 <1>JAVA常用包(图片)。 <2>java.lang包。 <3>java.util包。 (1)集合框架。 1、Collection接口。 2、List接口。 3、Set接口。 4、Queue接口。 5、Map接口。 …...
PyTorch nn.Conv2d 空洞卷积
torch.nn.Conv2d() 中 dilation 参数控制卷积核的间隔 dilation controls the spacing between the kernel points 当 dilation1 时, 表示卷积核没有额外的空白间距, 也就是标准卷积当 dilation>1 时, 表示空洞卷积(dilated convolution) 动画演示: 手动计算 以 2*2 的卷…...
像素、分辨率、PPI(像素密度)、帧率的概念
文章目录 前言一、像素1、定义2、像素点也不是越多越好 二、分辨率1、定义 三、PPI(像素密度)1、定义2、计算公式3、视网膜屏幕 四、帧率1、帧 (Frame)2、帧数 (Frames)3、帧率 (Frame Rate)4、FPS (Frames Per Second)5、赫兹 五、其他1、英寸2、为何显示器尺寸以英寸命名 总结…...
两步GMM计算权重矩阵
在广义矩方法(GMM)中,权重矩阵(W)的选择是关键的一步。理想情况下,(W)应该等于矩条件的协方差矩阵的逆矩阵。这是因为使用这样的权重矩阵可以使得估计量达到最小方差,从而提高估计效率。 两步GMM计算权重矩阵(W) 第一…...
leetcode452. 用最少数量的箭引爆气球
有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出。在坐标 x 处射出一…...
【Android】使用TextView实现按钮开关代替Switch开关
介绍 Android 本身自己带的有开关控件,但是很多时候我们是不愿意使用这种开关的,感觉使用起来比较麻烦,特别是遇到需要延迟操作的情况。 比如有一个需求是这样的:我们需要打开一个设置,但是这个设置是否打开需要经过…...
(49)MATLAB实现迫零均衡器原理与代码
文章目录 前言一、迫零均衡器设计说明二、迫零均衡器MATLAB源代码1.函数说明2.代码实现3.辅助函数 前言 使用MATLAB实现迫零均衡器。给出完整的MATLAB设计源代码。 一、迫零均衡器设计说明 理想的迫零均衡器有无限多个抽头权系数,是不能实现的,本文考虑…...
滚柱导轨出现异常损坏的原因
滚柱导轨是一种精密的直线滚动导轨,具有较高的承载能力和较高的刚性,对反复动作、起动、停止往复运动频率较高情况下可减少整机重量和传动机构及动力成本。滚柱导轨可获得较高的灵敏度和高性能的平面直线运动,在重载或变载的情况下࿰…...
ESP8266+STM32远程控制实战:如何通过华为云中转指令与数据
ESP8266STM32远程控制实战:华为云物联网全链路开发指南 在智能家居和工业监控领域,远程设备控制一直是核心技术痛点。当ESP8266遇上STM32,再通过华为云物联网平台搭建通信桥梁,这个组合能爆发出怎样的生产力?本文将带您…...
Cursor Pro免费终极指南:一键破解限制,永久解锁AI编程助手完整功能
Cursor Pro免费终极指南:一键破解限制,永久解锁AI编程助手完整功能 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能:…...
忘记压缩包密码怎么办?3步找回加密文件的终极免费解决方案
忘记压缩包密码怎么办?3步找回加密文件的终极免费解决方案 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾经面对一个加…...
C# Winform高效分页实践:SunnyUI uiPagination控件详解与数据绑定
1. 初识SunnyUI uiPagination控件 第一次接触SunnyUI的uiPagination控件是在开发一个订单管理系统时。当时客户抱怨系统加载5000多条记录时会卡顿近10秒,我试过各种传统分页方案都不够理想,直到发现了这个宝藏控件。它就像Winform界的"瑞士军刀&quo…...
caffeine+redis实现多级缓存解决缓存雪崩
废话不多说直接上代码:1.依赖<dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId><version>2.9.3</version></dependency>这里版本java8所以用的2.9.32.配置类&#…...
服装吊牌变量条码打印机:优质供应商选择策略解析
“选对服装吊牌变量条码打印机供应商,比单纯比价更重要的是匹配柔性生产需求——这是超六成服装从业者反馈的采购核心准则。”中小商家面临小批量吊牌外发成本高、出货慢的困境,大企业则受限于多SKU适配难、数据不同步的痛点,如何找到能覆盖全…...
从零开始使用Taotoken CLI工具一键配置多款开发环境
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从零开始使用Taotoken CLI工具一键配置多款开发环境 对于需要接入多个大模型服务的开发者而言,管理不同项目的API密钥、…...
5分钟快速上手:roop-unleashed AI换脸神器完全指南
5分钟快速上手:roop-unleashed AI换脸神器完全指南 【免费下载链接】roop-unleashed Evolved Fork of roop with Web Server and lots of additions 项目地址: https://gitcode.com/gh_mirrors/ro/roop-unleashed 想要在几分钟内制作专业级AI换脸视频吗&…...
如何高效处理RPG Maker加密资源:纯前端解密方案深度解析
如何高效处理RPG Maker加密资源:纯前端解密方案深度解析 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https://gitco…...
用Wireshark抓包分析Powerlink协议:从数据帧看懂主站轮询与从站响应
Wireshark实战:深度解析Powerlink协议的主从站通信机制 工业以太网协议Powerlink凭借其确定性实时通信能力,在自动化控制领域占据重要地位。本文将带您通过Wireshark抓包分析,揭开Powerlink主站轮询与从站响应的核心机制。不同于基础配置教程…...
