一种基于RTMP的低时延直播方法与流程

文档序号:25291074发布日期:2021-06-01 17:42阅读:108来源:国知局
一种基于RTMP的低时延直播方法与流程

本发明涉及计算机互联网的音视频直播领域,具体的,涉及一种基于rtmp的直播时延优化方法。



背景技术:

网络直播技术的核心是视频传输。从图像采集到用户终端,需要经过采集、编码、推流、分发、拉流、解码等一系列数据传输处理,才能将图像显示到用户终端,而由于这些环节的传输和处理,必然会产生延时。若延时太大,人与人交互起来就很困难。

目前常用处理技术方法为:(1)降低gop间隔。编码器将原始图像编码为三种类型帧,也就是i帧、b帧、p帧。i帧指的是关键帧,保留完整的图像信息;b帧指的是双向内插帧,需要参考前后帧来还原此帧的图像信息;p帧指的是前向预测帧,需要参考前一帧图像来还原此帧图像信息。gop指视频编码中两个i帧的间隔。由于播放端解码器需要关键帧才能解码,缩短gop间隔可以降低延迟,但是这种方法会导致图像编码压缩率变低,降低图像质量。(2)减小数据缓存。由于rtmp是基于tcp的一种应用层网络协议,在网络条件差的时候,为保证传输可靠性,会将失败的包缓存起来,等待网络条件好的时候一并发出,这样就存在累积延迟的问题。减小数据缓存可以有效缓解延迟累加的问题,但由于缓存太小,数据丢失后播放端容易出现卡顿的现象。

申请号为“2017104377335”的专利公开了“一种降低网络直播延时的方法”,其降低延时所采用的方法就是根据延时跳帧播放,采用这种方法虽然可以有效降低延时时间,提高直播的实时性和交互体验,但是会降低图像质量。



技术实现要素:

本发明的目的在于,针对上述问题,提出一种基于rtmp的直播时延优化方法。

一种基于rtmp的直播时延优化方法,包括如下步骤:

步骤1:视频编码模块将摄像头采集图像进行字符叠加后的图像按h264标准进行压缩编码发送至视频推流模块;

步骤2:视频推流模块将完成压缩编码后的数据进行封包并发送至nginx服务模块;

步骤3:nginx服务模块对接收的数据进行拆包还原图像数据,转存到本地缓存;

步骤4:客户端拉流模块向nginx服务模块发送链接请求和数据传输请求,获取图像数据并将图像数据传输给客户端解码模块;

步骤5:客户端解码模块对接收到的数据进行解码播放。

优选的,所述步骤1中压缩编码默认gop长度开始编码。

优选的,所述步骤2中对压缩编码后的数据进行rtmp协议封装。

所述步骤4具体包括如下步骤:

步骤41:nginx服务模块判断服务端缓冲区余量,若服务端缓冲区余量较低则执行步骤42;若缓冲区余量高,则执行步骤43;

步骤42:当服务端缓冲区余量较低时,提高视频推流模块访问nginx服务模块的拉流频率,降低客户端拉流模块的播放速度,将本地缓冲区数据降速播放;

步骤43:当服务端缓冲区余量较高时,提高客户端拉流模块播放速度,将本地缓冲区数据提速播放,降低视频推流模块访问nginx服务模块的拉流频率。

本发明的有益效果:可以实现流媒体传输的准实时播放,从视频采集到客户端播放整体时延1~2秒;相比原来单一的缩短gop长度和减少缓存大小,本发明能根据当前网络环境实时调整gop和缓存大小减少时延,并通过调整播放速率消除累积时延,达到降低摄像头采集与客户端直播间时延的效果。

附图说明

图1为本发明的流程图。

图2为本发明的拉流模块工作流程图。

具体实施方式

下面结合附图对本发明作进一步说明。

如图1所示,一种基于rtmp的直播时延优化方法,包括如下步骤:

步骤1:视频编码模块将摄像头采集图像进行字符叠加后的图像按h264标准进行压缩编码发送至视频推流模块;

步骤2:视频推流模块将完成压缩编码后的数据进行封包并发送至nginx服务模块;

步骤3:nginx服务模块对接收的数据进行拆包还原图像数据,转存到本地缓存;

步骤4:客户端拉流模块向nginx服务模块发送链接请求和数据传输请求,获取图像数据并将图像数据传输给客户端解码模块;

步骤5:客户端解码模块对接收到的数据进行解码播放。

需要说明的是,所述步骤1中压缩编码默认gop长度开始编码。

需要说明的是,所述步骤2中对压缩编码后的数据进行rtmp协议封装。

如图2所示,客户端拉流模块的工作流程为:nginx服务模块判断服务端缓冲区余量,若服务端缓冲区余量较低则提高视频推流模块访问nginx服务模块的拉流频率,降低客户端拉流模块的播放速度,将本地缓冲区数据降速播放;当服务端缓冲区余量较高时,提高客户端拉流模块播放速度,将本地缓冲区数据提速播放,降低视频推流模块访问nginx服务模块的拉流频率。



技术特征:

1.一种基于rtmp的直播时延优化方法,其特征在于,包括如下步骤:

步骤1:视频编码模块将摄像头采集图像进行字符叠加后的图像按h264标准进行压缩编码发送至视频推流模块;

步骤2:视频推流模块将完成压缩编码后的数据进行封包并发送至nginx服务模块;

步骤3:nginx服务模块对接收的数据进行拆包还原图像数据,转存到本地缓存;

步骤4:客户端拉流模块向nginx服务模块发送链接请求和数据传输请求,获取图像数据并将图像数据传输给客户端解码模块。

2.如权利要求1所述一种基于rtmp的直播时延优化方法,其特征在于,所述步骤1中压缩编码默认gop长度开始编码。

3.如权利要求1所述一种基于rtmp的直播时延优化方法,其特征在于,所述步骤2中对压缩编码后的数据进行rtmp协议封装。

4.如权利要求1所述一种基于rtmp的直播时延优化方法,其特征在于,所述步骤4具体包括如下步骤:

步骤41:nginx服务模块判断服务端缓冲区余量,若服务端缓冲区余量较低则执行步骤42;若缓冲区余量高,则执行步骤43;

步骤42:当服务端缓冲区余量较低时,提高视频推流模块访问nginx服务模块的拉流频率,降低客户端拉流模块的播放速度,将本地缓冲区数据降速播放;

步骤43:当服务端缓冲区余量较高时,提高客户端拉流模块播放速度,将本地缓冲区数据提速播放,降低视频推流模块访问nginx服务模块的拉流频率。

5.如权利要求1所述一种基于rtmp的直播时延优化方法,其特征在于,还包括步骤5:客户端解码模块对接收到的数据进行解码播放。


技术总结
本发明公开了一种基于RTMP的低时延直播方法,涉及计算机互联网的音视频直播领域,包括如下步骤:步骤1:视频编码模块将摄像头采集图像进行字符叠加后的图像按H264标准进行压缩编码发送至视频推流模块;步骤2:视频推流模块将完成压缩编码后的数据进行封包并发送至Nginx服务模块;步骤3:Nginx服务模块对接收的数据进行拆包还原图像数据,转存到本地缓存;步骤4:客户端拉流模块向Nginx服务模块发送链接请求和数据传输请求,获取图像数据并将图像数据传输给客户端解码模块;步骤5:客户端解码模块对接收到的数据进行解码播放。本发明的有益效果:可以实现流媒体传输的准实时播放,从视频采集到客户端播放整体时延1~2秒。

技术研发人员:吴世泽
受保护的技术使用者:成都国翼电子技术有限公司
技术研发日:2021.02.04
技术公布日:2021.06.01
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1