基于GOP转码和虚拟文件实现低延迟HLS直播的方法技术

技术编号:37331358 阅读:32 留言:0更新日期:2023-04-21 23:08
本发明专利技术公开了基于GOP转码和虚拟文件实现低延迟HLS直播的方法,属于安防视频直播技术领域。基于GOP转码和虚拟文件实现低延迟HLS直播的方法,包括以下步骤:获取原始视频:服务端接入前端摄像机并获取原始视频帧;原始视频转码:服务端对原始视频帧进行基于极小GOP的转码;封装视频流:服务端对转码出的视频流进行MPEG2

【技术实现步骤摘要】
基于GOP转码和虚拟文件实现低延迟HLS直播的方法


[0001]本专利技术涉及安防视频直播
,特别涉及基于GOP转码和虚拟文件实现低延迟HLS直播的方法。

技术介绍

[0002]用户对安防视频的应用越来越广,不仅仅希望通过C/S的客户端可以调阅到视频,更希望结合云、浏览器来调阅。但是前有IE不再支持Flash,后有微软抛弃IE令ActiveX作古。传统的通过插件在浏览器端调阅视频的方式遇到巨大挑战。如何通过新技术变革,继续可以让用户通过浏览器自由地调阅视频,成为一个新的可持续探索的课题。
[0003]目前可行的方案有Http

FLV,WebSocket,HLS等。其中的HLS(Http Live Streaming),相对而言,普适性最好,不仅仅适用于PC端,也可以无缝应用于移动端,无论安卓系统还是苹果系统。但是HLS按照苹果公司提出的工作原理去实现,会遇到令人难以忍受的弊端,延迟非常大,超过30秒以上。
[0004]目前的各种方案中,有的甚至能让延迟降低到1秒左右。
[0005]但是各种方案都有以下一个或几个缺陷:
[0006]1.现有的方案,需要让服务端通过RTMP拉流后转成HLS。众所周知Flash已经不被支持,而Flash的流媒体技术基础是RTMP。因此Flash在Web端是不需要的,就导致了RTMP在Web端直接被作废,RTMP只剩下在服务端的应用,但是对于安防监控行业,本身行业标准都是应用GB28181,RTSP和厂商SDK的模式,RTMP对于安防监控的服务端根本是多余的。
[0007]2.现有的方案,都是基于文件切割的。无论是硬盘文件切分,或者内存文件切分,或者是大文件的文件切片,本质都是相同的,必须依赖文件,而文件的生成,切割,读写都需要IO参与,都会影响到系统性能,都会产生理论的等待时间,这会增加Web端播放延迟,会让服务端由于对过多切片文件的管理导致性能下降,产生接入瓶颈。
[0008]3.现有的方案,传给Web端的m3u8文件和视频文件都是真实的文件。m3u8里不是已经生成的文件列表就是将要生成的文件列表,反正就是文件列表里只要包含该文件名肯定会生成该文件,这种做法过于迂腐、死板,m3u8与具体文件绑定,无论已经生成或者将要生成,都限制了降低Web延迟的可能。
[0009]公开号为CN114727130A的中国专利公开了一种将TS文件虚拟切割提供HLS点播服务的方法及系统,其中的文件列表是使用了虚拟的TS切片信息,此方案使用了两层m3u8,但最终仍然是基于真实文件定位后的再切割,并没有根本的改善。
[0010]4.现有的方案,是不会调整原始视频流的编码参数的,尤其是GOP。而GOP是导致文件切割粒度过大的关键,粒度过大会像多米诺骨牌一样,影响到Web端的延迟增加。

技术实现思路

[0011]本专利技术的目的在于提供基于GOP转码和虚拟文件实现低延迟HLS直播的方法,令HLS在Web端的延迟降至500

600毫秒级别,在安防实时播放领域更具竞争力,成为用户Web
端播放安防实时视频的可选项,以解决上述
技术介绍
中提出的问题。
[0012]为实现上述目的,本专利技术提供如下技术方案:基于GOP转码和虚拟文件实现低延迟HLS直播的方法,包括以下步骤:
[0013]获取原始视频:服务端接入前端摄像机并获取原始视频帧;
[0014]原始视频转码:服务端对原始视频帧进行基于极小GOP的转码;
[0015]封装视频流:服务端对转码出的视频流进行MPEG2

TS封装,送入消息队列发布端;
[0016]接收请求:服务端接收Web端的Http长连接请求,维持会话并保活;
[0017]反馈文件:服务端对会话中Web端m3u8请求,反馈符合m3u8规范的虚拟文件列表,文件列表中包含3个虚拟文件;
[0018]发送订阅数据:服务端对会话中Web端ts视频文件请求,解析后从消息队列订阅端获取所有数据,发送给Web端并清空订阅端;
[0019]处理缓存:Web端判断持续缓存触发条件以及相应处理;
[0020]调整播放速率:Web端实现动态调整播放速率。
[0021]优选的,所述获取原始视频的前置条件为查询系统的独显与核显信息,汇总出GPU编解码资源池以及CPU解码资源池。
[0022]优选的,所述获取原始视频帧的视频接入方式包括但不限于GB28181、RTSP/ONVIF以及各厂商SDK。
[0023]优选的,所述原始视频转码具体包括以下步骤:
[0024]查询GPU编解码资源池和CPU解码资源池;
[0025]如果GPU编解码资源池中既存在可用独显解码单元又存在可用独显编码单元,选出独显解码单元和独显编码单元,并进行硬件加速初始化,即硬件加速模式;
[0026]如果GPU编解码资源池中存在可用核显编码单元并且CPU解码资源池中存在可用CPU解码单元,选出CPU解码单元和核显编码单元,即半加速模式;
[0027]通过设置编码参数极小GOP=2,即包含1个I帧和1个P帧,根据以上过程选出的转码模式转码出H264 BaseLine。
[0028]优选的,所述封装视频流具体包括以下步骤:
[0029]对转码出的视频流进行逐帧获取;
[0030]对每一帧封装为MPEG2

TS,并以帧为单位送入消息队列的发布端。
[0031]优选的,所述反馈文件具体包括以下步骤:
[0032]解析Web端“视频编号.m3u8”的请求获取视频编号;
[0033]对于每个长连接会话,根据视频编号单独汇总出符合m3u8规范的虚拟视频文件列表(包含3个虚拟文件)字符串,虚拟文件中包含的序号默认从1开始自动递增;
[0034]将虚拟视频文件列表字符串发送给Web端。
[0035]优选的,所述发送订阅数据具体包括以下步骤:
[0036]解析Web端“视频编号_序号.ts”的请求获取视频编号;
[0037]对于每个长连接会话,根据视频编号获取对应的消息队列订阅;
[0038]从订阅端获取数据并发送给Web端。
[0039]优选的,所述从订阅端获取数据并发送给Web端具体包括以下步骤:
[0040]如果订阅端包含大于一个GOP的数据(至少包含1个I帧和2个P帧),提取所有订阅
端数据发送给Web端;
[0041]如果订阅端包含等于一个GOP的数据(包含1个I帧和1个P帧),提取此GOP数据发送给Web端;
[0042]如果订阅端包含小于一个GOP的数据(包含1个I帧或1个P帧),提取此数据发送给Web端;
[0043]如果订阅端不包含数据,订阅端等待数据到来并重复上述所有过程。
[0044]优选的,所述处理缓存具体包括以下步骤:
[0045]设定触发持续缓存规则的条本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于GOP转码和虚拟文件实现低延迟HLS直播的方法,其特征在于,包括以下步骤:获取原始视频,用于服务端接入前端摄像机并获取原始视频帧;原始视频转码,用于服务端对原始视频帧进行基于极小GOP的转码;封装视频流,用于服务端对转码出的视频流进行MPEG2

TS封装,送入消息队列发布端;接收请求,用于服务端接收Web端的Http长连接请求,维持会话并保活;反馈文件,用于服务端对会话中Web端m3u8请求,反馈符合m3u8规范的虚拟文件列表,文件列表中包含3个虚拟文件;发送订阅数据,用于服务端对会话中Web端ts视频文件请求,解析后从消息队列订阅端获取所有数据,发送给Web端并清空订阅端;处理缓存,用于Web端判断持续缓存触发条件以及相应处理;调整播放速率,用于Web端实现动态调整播放速率。2.如权利要求1所述的基于GOP转码和虚拟文件实现低延迟HLS直播的方法,其特征在于:获取原始视频的前置条件为查询系统的独显与核显信息,汇总出GPU编解码资源池以及CPU解码资源池。3.如权利要求2所述的基于GOP转码和虚拟文件实现低延迟HLS直播的方法,其特征在于:获取原始视频帧的视频接入方式包括但不限于GB28181、RTSP/ONVIF以及各厂商SDK。4.如权利要求1所述的基于GOP转码和虚拟文件实现低延迟HLS直播的方法,其特征在于:所述原始视频转码具体包括以下步骤:查询GPU编解码资源池和CPU解码资源池;如果GPU编解码资源池中既存在可用独显解码单元又存在可用独显编码单元,选出独显解码单元和独显编码单元,并进行硬件加速初始化,即硬件加速模式;如果GPU编解码资源池中存在可用核显编码单元并且CPU解码资源池中存在可用CPU解码单元,选出CPU解码单元和核显编码单元,即半加速模式;通过设置编码参数极小GOP=2,包含1个I帧和1个P帧,根据以上过程选出的转码模式转码出H264 BaseLine。5.如权利要求1所述的基于GOP转码和虚拟文件实现低延迟HLS直播的方法,其特征在于:所述封装视频流具体包括以下步骤:对转码出的视频流进行逐帧获取;对每一帧封装为MPEG2

TS,并以帧为单位送入消息队列的发布...

【专利技术属性】
技术研发人员:黄剑李鹏李滨孔令宇郭磊
申请(专利权)人:北极星云空间技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1