Windows搭建Nginx实现RTMP转为HLS流

所需软件

  • nginx-1.7.11.3-Gryphon(这个包含必须的RTMP模块,普通的Ngxin没有这个)
  • ffmpeg
  • VLC

配置Nginx
1·为Nginx配置RTMP和HLS
这里定义了一个叫live的RTMP路径。同时设置其开启HLS功能,那么所有推送到这个地址的RTMP流都会自动生成一条对应HLS流。

rtmp {
    server {
        listen 1935;  # 监听端口 1935,用于 RTMP 数据流传输
        chunk_size 4000;  # 数据传输分块大小
        
        application live {  # 定义RTMP的路径名
             live on;  # 开启 RTMP 直播功能
             hls on;  # 开启 HLS 功能
             hls_path html/hls;  # HLS 分片文件存储路径
             hls_fragment 2s;  # 每个 HLS 分片的时长为 2 秒。
             hls_playlist_length 6s;  # HLS 播放列表长度为 6 秒
        }
    }
}

接着需要在http中的指定服务中添加HLS对应的路径信息

http{
  server {
        listen       80;
        server_name  localhost;
 
		# 定义HLS的路径
		 location /my-hls {
			#配置MIME 类型
			types {
				application/vnd.apple.mpegurl m3u8;
				video/mp2t ts;
			}
			#指定请求路径对应的文件路径(HLS 分片文件存储的位置)
			alias html/hls/;
			#响应头设置 禁止缓存 HLS 分片文件
			add_header Cache-Control no-cache;
		}
  }
}

保存配置文件后,启动Nginx

.\nginx.exe -c .\conf\nginx这里是你刚编辑的配置.conf

查看是否启动成功

tasklist /fi "imagename eq nginx.exe"

如果输出了几个nginx线程则说明ok

PS C:\devTool\nginx-1.7.11.3-Gryphon> tasklist /fi "imagename eq nginx.exe"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
nginx.exe                    32120 Console                   18      8,548 K
nginx.exe                    29340 Console                   18     11,472 K
nginx.exe                    29964 Console                   18      9,576 K

使用FFmpeg创建一个RTMP流
这里我将本地MP4文件推送到本机的RTMP端口下的live路径上,因为Nginx中我们为这个路径开启了HLS功能,所以正常情况下,这时HLS流就已经准备好了。

.\ffmpeg.exe -re -stream_loop -1 -i .\orange.mp4 -c copy -f flv rtmp://127.0.0.1:1935/live/orange2

首先我们可以在live对应的存在ts文件的路径中看到生成的ts文件
在这里插入图片描述
然后通过VLC播放HLS流看看效果,
因为hls的路径我是配在http80服务下的,所以地址也是80端口http://127.0.0.1:80/my-hls/orange2.m3u8
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/39268.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Apifox】国产测试工具雄起

在开发过程中,我们总是避免不了进行接口的测试, 而相比手动敲测试代码,使用测试工具进行测试更为便捷,高效 今天发现了一个非常好用的接口测试工具Apifox 相比于Postman,他还拥有一个非常nb的功能, 在接…

编程小白的自学笔记九(python爬虫入门+代码详解)

系列文章目录 编程小白的自学笔记八(python中的多线程) 编程小白的自学笔记七(python中类的继承) 编程小白的自学笔记六(python中类的静态方法和动态方法) 编程小白的自学笔记五(Python类的…

Navicat分配子用户及权限管理

一、创建用户,分配权限 新建用户 输入要创建的子用户的信息 主机名 表示访问本服务的方式,%表示即可以本机访问,也可以远程访问 之后,我们给创建的用户分配权限(在该数据库的可操作空间) 为用户分配增删改…

SPEC CPU 2017 1.0.5 不同版本CentOS 7 8 安装笔记

CentOS 7.9.2009 x86_64 gcc版本 安装成功 runcpu编译报错 gcc版本太低,不识别-fno-tree-loop-vectorize 去掉config/gcc.cfg中 -fno-tree-loop-vectorize编译优化参数。 用例编译中 CentOS 8.3.2011 x86_64 gcc版本 安装失败,需要自行编译tools 手动…

Visual Studio 自定义的颜色字体不生效

问题描述: 1、dll1中引用第三方库的类不识别,颜色黑白,自定义颜色不生效;定义的是结构体 2、在dll2引用另一个dll1中的结构体。结构体不识别,今天成员函数cpp中自定义颜色不生效。 问题解决方式: 全部清…

黑客学习笔记(自学)

一、首先,什么是黑客? 黑客泛指IT技术主攻渗透窃取攻击技术的电脑高手,现阶段黑客所需要掌握的远远不止这些。 二、为什么要学习黑客技术? 其实,网络信息空间安全已经成为海陆空之外的第四大战场,除了国…

抖音账号矩阵系统源码-开源部署开发者分享

抖音账号矩阵系统,短视频账号矩阵系统源码, 短视频矩阵是一种常见的视频编码标准,它通过将视频分成多个小块并对每个小块进行压缩来实现高效的视频传输。短视频多账号矩阵系统,通过多账号一键授权管理的方式,为运营人员…

vue+element Cascader 级联选择器 > 实现省市区三级联动

vueelement Cascader 级联选择器 > 实现省市区三级联动 先看下实现效果吧&#xff08;嘻嘻&#xff09; 看完我们就开始啦 安装element-china-area-data1 npm install element-china-area-data5.0.2 -S上代码 <el-cascadersize"large":options"options…

腾讯、飞书等在线表格自动化编辑--python

编辑在线表格 一 目的二 实现效果三 实现过程简介1、本地操作表格之后进入导入在线文档2、直接操作在线文档 四 实现步骤讲解1、实现方法的选择2、导入类库3、设置浏览器代理直接操作已打开浏览器4、在线文档登录5、在线文档表格数据操作6、行数不够自动添加行数 五 代码实现小…

数据采集专家----4通道AD采集子卡推荐

FMC136是一款4通道250MHz采样率16位AD采集FMC子卡&#xff0c;符合VITA57规范&#xff0c;可以作为一个理想的IO模块耦合至FPGA前端&#xff0c;4通道AD通过高带宽的FMC连接器&#xff08;HPC&#xff09;连接至FPGA从而大大降低了系统信号延迟。 该板卡支持板上可编程采样时钟…

css 禁止多次点击导致的选中了目标div的文字

像下面这样的情况&#xff0c;就可以用这种方法避免掉 禁止多次点击&#xff0c;导致的&#xff0c;选中了目标div的文字 或者 禁止多次点击&#xff0c;导致&#xff0c;html结构被选中显示出来 .targetDiv {-webkit-user-select: none;-moz-user-select: none;-ms-user-sel…

6.3.6 利用Wireshark进行协议分析(六)----网页提取过程的协议分析

6.3.6 利用Wireshark进行协议分析&#xff08;六&#xff09;----网页提取过程的协议分析 利用Wireshark捕获网页访问过程中产生的应用协议报文&#xff0c;还原Web服务中报文的交互过程&#xff0c;为了防止网页直接从本地缓存中获取&#xff0c;我们首先需要清空浏览器保存的…

Vue3 概述

文章目录 Vue3 概述概述Vue3对比Vue2优势选项式API和组合式API使用create-vue创建项目概述创建项目目录结构 使用vue-cli创建项目概述创建项目目录结构 Vue3 概述 概述 Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTM…

关于 Eclipse 的一场 “三角关系”

上个世纪 90 年代&#xff0c;世界上的计算机要么不联网&#xff0c;要么在企业内部联网。但是&#xff0c;在互联网的概念下&#xff0c;计算机之间共享信息和资源的需求成为了必要。 1995 年 5 月&#xff0c;Java 横空出世。Java 的父亲是当时凭借 Solaris 操作系统风头正盛…

go初识iris框架(二) - get,post请求和数据格式

继初步了解iris后 文章目录 获取url路径获取数据get请求post请求获取JSON数据格式JSON返回值获取XML数据格式XML返回值 获取url路径 package mainimport "github.com/kataras/iris/v12"func main(){app : iris.New()app.Get("/hello",func(ctx iris.Conte…

Vue 安装 Vue-router 路由安装以及使用

vue-router 是 Vue 的一个插件库&#xff0c;适用于构建单页面应用。 单页面应用&#xff1a;整个应用中只有一个完整的页面&#xff0c;切换页面就是替换页面中的内容。 工作原理&#xff1a;当浏览器的路径发生改变时&#xff0c;路由器会自动显示路径所对应的组件。 嵌套…

Redis的数据淘汰策略了解吗?

面试官&#xff1a;Redis数据淘汰策略了解吗&#xff1f; 我&#xff1a;知道。嗯~~ 当Redis中的内存不够用时&#xff0c;此时再向Redis中添加新的key&#xff0c;Redis就会按照某种规则将内存中的数据删除掉。这种数据的删除规则被称为内存的淘汰策略。 面试官&#xff1a;…

JAVA开发(记一次504 gateway timeout错误排查过程)

一、问题与背景&#xff1a; 最近在发布一个web项目&#xff0c;在测试环境都是可以的&#xff0c;发布到生产环境通过IP访问也是可以的&#xff0c;但是通过域名访问就出现504 gateway timeout。通过postman去测试接口也是一样。ip和端口都可以通&#xff0c;域名却不行&…

C#List转IList方法

最近工作中使用到了C#的List和IList。 这里参考百度上的资料&#xff0c;总结一下。 IList使用命名空间&#xff1a; using System.Collections; List<T>类:表示可通过索引访问的对象的强类型列表&#xff0c;提供用于对列表进行搜索、排序和操作的方法。 IList<T&…

3.10 Bootstrap 标签

文章目录 Bootstrap 标签标签 Bootstrap 标签 下面将讲解 Bootstrap 标签。标签可用于计数、提示或页面上其他的标记显示。使用 class .label 来显示标签&#xff0c;如下面的实例所示&#xff1a; <span class"label label-default">Label</span></…