利用GPU实现H264视频流转HLS视频流的方法与流程

文档序号:16547559发布日期:2019-01-08 20:55阅读:1763来源:国知局
利用GPU实现H264视频流转HLS视频流的方法与流程

本发明涉及互联网的音视频转换的技术领域,特别涉及一种利用gpu实现h264视频流转hls视频流的方法。



背景技术:

在新型智慧城市的建设中,城市运行管理中心(以下简称中心)起着关键作用,中心接入包含多种来自委办局业务数据、视频数据和传感器数据,组成了预警检测系统,其中视频数据包含重点路段的公共治安监控视频流、交通路口的卡口视频流,这些视频流通过以太网无源光网络(epon)汇聚到统一的视频平台,再通过国家标准视频共享协议(gb28181协议)接入视频综合管理平台,通过视频综合管理平台推送视频流数据到预警监测系统的展示页面上,根据实际的业务需要展示相关的视频数据。

但是,现有的浏览器存在安全机制,当前视频的播放需要采用微软公司的浏览器对象类别扩充组件ocx。在浏览器上安装ocx的插件后,浏览器前端通过js脚本调用ocx接口,再远程调用视频服务品请求视频流,获取视频数据。

然而ocx控件的方法只能在特定的浏览器(ie或兼容浏览器)上使用,存在浏览器版本兼容的问题,大大限制了视频流的应用范围和用户体验。



技术实现要素:

针对现有技术存在的问题,本发明的主要目的是提供一种利用gpu实现h264视频流转hls视频流的方法,消除浏览器对视频播放插件ocx的限制,使得视频数据可通过任何支持hls的浏览器进行播放。

为实现上述目的,本发明提出的利用gpu实现h264视频流转hls视频流的方法,其包括如下步骤:

s1、通过国标28181协议从视频服务器中获取视频设备播放目录信息,选定特定的视频流编号后再发送会话发起协议,对指定通道的视频流进行点播获取rtp视频流的数据;

s2、判断rtp视频流的数据协议中封装的数据负载类型;若rtp视频流为h264码流,则采用h264转码技术进行转码;若rtp视频流为ps码流,则采用ps解复用,将音视频分开解码,取出h264视频流数据;

s3、通过流分段器按照hls协议对h264视频流数据重新打包封装,创建满足hls协议的分片,新的分片以h264视频流的关键帧为节点进行划分,每个分片对应一个mpeg-ts包,根据分片与mpeg-ts包的对应关系生成m3u8索引文件,mpeg-ts包保存为mpeg-2传输流流文件,m3u8索引文件保存为m3u8播放列表;

s4,通过http服务器读取m3u8播放列表,按顺序请求并播放m3u8播放列表中列出的mpeg-2传输流流文件;

其中,所述步骤3中的流程在gpu内操作。

在本发明实施例中,所述步骤s3中,创建满足hls协议的分片时,判断当前分片是否应该结束,以延续新的分片的不断生成。

在本发明实施例中,所述步骤s3中,创建满足hls协议的分片时,每生成一个新的分片,将失效的分片从m3u8索引文件中移除并将新的分片更新至m3u8索引文件中。

在本发明实施例中,所述步骤s3中,创建满足hls协议的分片时,每生成一个新的分片,将该分片对应的mpeg-ts包以mpeg-2传输流流文件的形式保存至虚拟内存盘中。

在本发明实施例中,若干所述mpeg-ts包为一系列时间相等的小媒体文件。

本发明的技术方案通过将国标协议的gb28181视频流转化为hls流,消除浏览器对视频播放插件ocx的限制,可以使用任何支持hls的浏览器播放视频数据,同时支持在android手机端和苹果ios手机端查看视频;hls流媒体直播采用通用的http协议传输,不用考虑独立设定防火墙和端口代理的问题,简化部署和运维的流程;采用高性能的gpu处理视频,视频处理的速度更快,效率更高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1为本发明一实施例的流程示意图;

图2为本发明的应用原理图;

本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

本发明提出一种利用gpu实现h264视频流转hls视频流的方法。

参照图1-2,图1为本发明一实施例的流程示意图,图2为本发明的应用原理图。

如图1-2所示,在本发明实施例中,该利用gpu实现h264视频流转hls视频流的方法,其包括如下步骤:

s1、gpu视频转码服务器通过国标28181协议从视频服务器中获取视频设备播放目录信息,选定特定的视频流编号后再发送会话发起协议,对指定通道的视频流进行点播获取rtp视频流的数据。该视频服务器可以为公共治安监控视频服务器、交通路口的卡口视频服务器等,或者其他接入视频综合管理平台的视频服务器。

s2、判断rtp视频流的数据协议中封装的数据负载类型。若rtp视频流为h264码流,则采用h264转码技术进行转码,提取h264码流中的h264视频流数据;若rtp视频流为ps码流,则采用ps解复用,将音视频分开解码,取出h264视频流数据。

s3、通过流分段器按照hls协议对h264视频流数据重新打包封装,创建满足hls协议的分片,新的分片以h264视频流的关键帧为节点进行划分,每个分片对应封装成一个mpeg-ts包,根据分片与mpeg-ts包的对应关系生成m3u8索引文件,mpeg-ts包保存为mpeg-2传输流流文件,m3u8索引文件保存为m3u8播放列表。在本发明实施例中,若干mpeg-ts包为一系列时间相等的小媒体文件。

在本发明实施例中,步骤s3中,创建满足hls协议的分片时,还包括判断当前分片是否应该结束,以延续新的分片的不断生成。

s4,通过http服务器使用通用的http协议读取m3u8播放列表,按顺序请求并播放m3u8播放列表中列出的mpeg-2传输流流文件。

其中,步骤s3中的处理过程,如创建满足hls协议的分片,将分片对应封装成mpeg-ts包,生成m3u8索引文件等过程均采用gpu操作。具体地,gpu以300帧/秒的速度对h264视频流进行处理,单路gpu最高每次同时处理10路视频,大大加速了对h264视频流的处理速度。

在本发明实施例中,步骤s3中,在创建满足hls协议的分片时,每生成一个新的分片,将失效的分片从m3u8索引文件中移除并将新的分片更新至m3u8索引文件中。由此,在播放时的完整会话生命周期中,当一个新的媒体文件(即分片对应的mepg-ts包)时,更新的索引文件被http服务器接收,更新的索引文件中罗列了最新添加的媒体文件,失效的媒体文件从索引文件中移除,从而实现视频的流畅播放,避免出现暂停或者媒体文件空缺。

在本发明实施例中,步骤s3中,创建满足hls协议的分片时,每生成一个新的分片,将该分片对应的mpeg-ts包以mpeg-2传输流流文件的形式保存至虚拟内存盘中。虚拟内存盘是通过虚拟内存盘工具将一部分内存(ram)模拟为硬盘得到虚拟硬盘,将mpeg-ts包储存在虚拟内存盘可以随时进行读写操作,且速度很快,加速对视频流的处理速度。

本发明的技术方案通过将国标协议的gb28181视频流转化为hls流,消除浏览器对视频播放插件ocx的限制,可以使用任何支持hls的浏览器播放视频数据,同时支持在android手机端和苹果ios手机端查看视频;hls流媒体直播采用通用的http协议传输,不用考虑独立设定防火墙和端口代理的问题,简化部署和运维的流程;采用高性能的gpu处理视频,视频处理的速度更快,效率更高。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1