基于ngx-rtmp-module模块http-flv直播流的实现

本文档介绍了基于nginx+ngx-rtmp-module如何实现http-flv直播流,包括http模块和rtmp模块的配置、ngx_http_hlf_module和ngx_rtmp_hlf_module的详细实现,以及http-flv实时流的工作流程。读者需要具备nginx、ngx-rtmp-module的基础知识。
摘要由CSDN通过智能技术生成

http-flv实时流的实现

1.概述

  • 目前我们选择的视频直播方案是nginx+ngx-rtmp-module;
  • http-flv直播流是把rtmp实时流的数据封装成flv格式,并基于http的chunked协议来传输。flv格式、http的chunked块协议及http-flv实时流优势在该文档不再赘述,建议读者在网上查阅;
  • http-flv流实现详见ngx_http_hlf_module、ngx_rtmp_hlf_module模块,以下简称hlf(http-live-flv)模块;
  • 本文档是在已经实现http-flv实时流功能后追加的补充文档,因此阐述的方式与一般的预研文档有所不同,请知悉;
  • 本文档的读者需要对nginx、ngx-rtmp-module有一定的基础,理解rtmp、flv、http的相关知识。

2.实现方案

2.1相关实现文件

Hlf查块实现有如下文件

ngx_http_hlf_module.c       #hlf入口模块,属http模块

 

ngx_rtmp_hlf_module.h            #hlf实现模块,属rtmp模块

ngx_rtmp_hlf_module.c

 

ngx_rtmp_hlf_shared.c       #相关内存块的管理

 

其它相关部分

ngx_rtmp.h                 #增加hlf相关成员

ngx_rtmp.c

 

ngx_http.h                                     #增加写完一帧(flv -tag)的回调函数

ngx_http.c

ngx_http_write_filter_module.c

 

2.2模块配置描述

2.2.1属http模块配置

hlf

Syntax: hlf on|off

Context: location

desc:(http模块)指定location是否启用hlf功能,默认off。

 

hlf_srv

Syntax: hlf_svr numbers

Context: location

desc:(http模块) rtmp server序号,默认0 。

 

备注:

代码中,见红色部分,flv_relay有识,其实有错识,纠正为hlf,但可不必理会,不影响运行结果。

//模块配置

typedef struct

{

    ngx_flag_t    hlf_relay;      //联动hlf中继,默认不启用--,纠正为hlf

   ngx_uint_t    hlf_srv;        //rtmp server序号,默认0

} ngx_http_hlf_loc_conf_t;

2.2.2属rtmp模块配置

hlf_enable

Syntax: hlf_enable on|off

Context: rtmp, server, application

desc:hlf启用选项,默认off。

 

hlf_buckets

Syntax: hlf_buckets numbers

Context: rtmp, server, application

desc:针对每个app建立hash链表,即以推流名称生成hask_key并存放入hash表,表示hash表桶大小,默认1024。

 

hlf_queue_max

Syntax: hlf_queue_max numbers

Context: rtmp, server, application

desc:针对每个http请求流建立发送缓冲,表示缓冲帧最大帧数,默认256,最小32。

 

hlf_idle_timeout

Syntax: hlf_idle_timeout time

Context: rtmp, server, application

desc:当http请求指定app的某个流不存在时,等待的时间,默认0,即直接断开。

 

hlf_relay

Syntax: hlf_relay on|off

Context: rtmp, server, application

desc: 联动中继,默认off。

***********************************************************************

3.实现方案详细描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值