视频推送方法、装置、电子设备和可读存储介质制造方法及图纸

技术编号:30018226 阅读:26 留言:0更新日期:2021-09-11 06:31
本公开提供了一种视频推送方法、装置、电子设备和计算机可读存储介质,涉及多媒体技术领域。其中,视频推送方法包括:响应于播放端对媒体流数据的拉流请求,第二源站向第一源站对媒体流数据进行拉流操作;第二源站确定与拉流请求的网络协议匹配的拉流数量,拉流数量为拉取流媒体数据所需的历史画面组GOP的数量;第一源站基于拉流操作向第二源站反馈视频帧,视频帧包括历史GOP;第二源站基于视频帧生成拉流数量的TS文件,以基于拉流数量的TS文件生成媒体流数据,并将媒体流数据推送至播放端。通过本公开的技术方案,返回至播放端的媒体流数据可以直接解析出满足播放需求的TS文件,从而能够实现媒体流的快速播放,以缩短视频直播时产生的延迟。产生的延迟。产生的延迟。

【技术实现步骤摘要】
视频推送方法、装置、电子设备和可读存储介质


[0001]本公开涉及多媒体
,尤其涉及一种视频推送方法、装置、电子设备和计算机可读存储介质。

技术介绍

[0002]RTMP协议(Real Time Messaging Protocol)是目前主流的流媒体传输协议,广泛用于直播领域。HLS协议(HTTP Live Streaming)的工作原理是把整个媒体流分成多个基于HTTP的小媒体分片下载,每次只下载一些分片,分片中包括一个m3u8的索引文件,TS媒体分片文件和key加密串文件。
[0003]相关技术中,计算机流媒体直播技术的主流方案是使用RTMP协议实现推拉流,在播放端使用HLS协议到节点拉流进行播放时,根据HLS标准的建议,需要获取到3个以上的TS格式文件才可以开始播放。并且在通常情况下,必须使用I帧作为TS文件的第一个视频帧以保证TS文件在播放端正常解码,播放端播放HLS格式地址的时候,节点通过RTMP协议去源站拉流的时候,源站只会缓存最后一个I帧之后的数据,节点启动转码之后拿到的数据没有办法快速生成TS文件,只能等到收到足够的视频数据之后才能开始生成TS文件,因此播放端使用HLS格式接入之后只能等到节点产生了足够的TS文件之后才能开始正常播放视频,从而导致视频直播存在延迟。
[0004]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0005]本公开的目的在于提供一种视频推送方法、装置、电子设备和计算机可读存储介质,至少在一定程度上克服由于相关技术中视频直播存在延迟的问题。
[0006]本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
[0007]根据本公开的一个方面,提供一种视频推送方法,包括:响应于播放端对媒体流数据的拉流请求,所述第二源站向所述第一源站对所述媒体流数据进行拉流操作;所述第二源站确定与所述拉流请求的网络协议匹配的拉流数量,所述拉流数量为拉取所述流媒体数据所需的历史画面组GOP的数量;所述第一源站基于所述拉流操作向所述第二源站反馈视频帧,所述视频帧包括所述拉流数量的历史GOP,其中,所述第一源站中配置有视频帧缓存队列,所述视频帧缓存队列用于提供所述历史GOP;所述第二源站基于所述视频帧生成所述拉流数量的TS文件,以基于所述拉流数量的TS文件生成所述媒体流数据,并将所述媒体流数据推送至所述播放端,以由所述播放端解析出所述拉流数量的TS文件,并进行播放。
[0008]在本公开的一个实施例中,所述第二源站确定与所述拉流请求的网络协议匹配的拉流数量,具体包括:所述第二源站检测所述拉流请求的网络协议的类型;在检测到所述拉流请求的网络协议为第一网络协议时,将第一数量确定为所述拉流数量;在检测到所述拉
流请求的网络协议为第二网络协议时,将第二数量确定为所述拉流数量;基于所述拉流数量生成拉流参数,以将所述拉流参数发送至所述第一源站,其中,所述第一数量小于所述第二数量。
[0009]在本公开的一个实施例中,所述第一源站中配置有视频帧缓存队列,所述视频帧缓存队列用于提供所述历史GOP,还包括:在所述视频帧缓存队列的头部存储所述视频帧中的编辑帧;所述第一源站基于所述拉流操作向所述第二源站反馈视频帧,具体包括:所述第一源站自所述视频帧缓存队列的头部起,提取所述历史GOP。
[0010]在本公开的一个实施例中,所述第一源站中配置有视频帧缓存队列,所述视频帧缓存队列用于提供所述历史GOP,还包括:所述第一源站基于推流端的推流操作接收推流数据;在检测到所述推流数据中的当前编辑帧时,将所述当前编辑帧的上一个GOP作为历史GOP存储在所述视频帧缓存队列,其中,在所述拉流请求的网络协议为第一网络协议时,所述第一源站直接将所述推流数据反馈至所述第二源站,以由所述第二源站基于所述推流数据生成所述媒体流数据。
[0011]在本公开的一个实施例中,还包括:所述在检测到所述推流数据中的当前编辑帧时,将所述当前编辑帧的上一个GOP作为历史GOP存储在所述视频帧缓存队列,还包括:在接收到所述当前编辑帧的下一编辑帧时,将基于所述当前编辑帧生成的GOP存储在所述视频帧缓存队列的尾部;以及确定处于所述视频帧缓存队列的头部的第一编辑帧,以及与所述第一编辑帧相邻的第二编辑帧;以及删除所述第一编辑帧与所述第二编辑帧之间的所有所述视频帧。
[0012]在本公开的一个实施例中,所述第二源站包括转码节点、转码源站和边缘节点,所述第二源站向所述第一源站对所述媒体流数据进行拉流操作,具体包括:所述边缘节点向所述转码源站请求所述媒体流数据;在所述转码源站未存储所述媒体流数据时,所述转码源站通知所述转码节点基于所述第一网络协议向所述第一源站对所述视频帧进行拉流操作。
[0013]在本公开的一个实施例中,所述第二源站基于所述视频帧生成所述拉流数量的TS文件,以基于所述拉流数量的TS文件生成所述媒体流数据,并将所述媒体流数据推送至所述播放端,具体包括:所述转码节点接收所述第一源站反馈的所述视频帧,并对所述视频帧进行转码操作,得到转码文件;所述转码节点基于所述第一网络协议将所述转码文件推送至所述转码源站;所述转码源站将所述转码文件转换为所述拉流数量的TS文件,并基于所述拉流数量的TS文件生成媒体分片,以将所述媒体分片作为指定格式的媒体流推送至所述播放端。
[0014]根据本公开的另一个方面,提供一种视频推送装置,包括:拉流模块,用于响应于播放端对媒体流数据的拉流请求,所述第二源站向所述第一源站对所述媒体流数据进行拉流操作;确定模块,用于所述第二源站根据所述拉流请求的网络协议确定拉取所述流媒体数据所需的拉流数量;反馈模块,用于所述第一源站基于所述拉流操作向所述第二源站反馈视频帧,所述视频帧包括所述拉流数量的历史GOP,其中,所述第一源站中配置有视频帧缓存队列,所述视频帧缓存队列用于提供所述历史GOP;推送模块,用于所述第二源站基于所述视频帧生成所述拉流数量的TS文件,以基于所述拉流数量的TS文件生成所述媒体流数据,并将所述媒体流数据推送至所述播放端,以由所述播放端解析出所述拉流数量的TS文
件,并进行播放。
[0015]根据本公开的再一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的视频推送方法。
[0016]根据本公开的又一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一项的视频推送方法。
[0017]本公开的实施例所提供的视频推送方案,通过在接收到播放端的拉流请求时,基于播放端的拉流请求所使用的网络协议确定第一源站基于第二源站的拉流操作反馈的拉流数量,以使第二源站将拉流数量的历史GOP转换为媒体流数据,这样返回至播放端的媒体流数据可以直接解析出满足播放需求的TS文件,对于需要多个TS本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种视频推送方法,应用于服务端,所述服务端包括第一源站和第二源站,其特征在于,包括:响应于播放端对媒体流数据的拉流请求,所述第二源站向所述第一源站对所述媒体流数据进行拉流操作;所述第二源站确定与所述拉流请求的网络协议匹配的拉流数量,所述拉流数量为拉取所述流媒体数据所需的历史画面组GOP的数量;所述第一源站基于所述拉流操作向所述第二源站反馈视频帧,所述视频帧包括所述拉流数量的历史GOP,其中,所述第一源站中配置有视频帧缓存队列,所述视频帧缓存队列用于提供所述历史GOP;所述第二源站基于所述视频帧生成所述拉流数量的TS文件,以基于所述拉流数量的TS文件生成所述媒体流数据,并将所述媒体流数据推送至所述播放端,以由所述播放端解析出所述拉流数量的TS文件,并进行播放。2.根据权利要求1所述的视频推送方法,其特征在于,所述第二源站确定与所述拉流请求的网络协议匹配的拉流数量,具体包括:所述第二源站检测所述拉流请求的网络协议的类型;在检测到所述拉流请求的网络协议为第一网络协议时,将第一数量确定为所述拉流数量;在检测到所述拉流请求的网络协议为第二网络协议时,将第二数量确定为所述拉流数量;基于所述拉流数量生成拉流参数,以将所述拉流参数发送至所述第一源站。3.根据权利要求2所述的视频推送方法,其特征在于,所述第一源站中配置有视频帧缓存队列,所述视频帧缓存队列用于提供所述历史GOP,还包括:在所述视频帧缓存队列的头部存储所述视频帧中的编辑帧;所述第一源站基于所述拉流操作向所述第二源站反馈视频帧,具体包括:所述第一源站自所述视频帧缓存队列的头部起,提取所述历史GOP。4.根据权利要求3所述的视频推送方法,其特征在于,所述第一源站中配置有视频帧缓存队列,所述视频帧缓存队列用于提供所述历史GOP,还包括:所述第一源站基于推流端的推流操作接收推流数据;在检测到所述推流数据中的当前编辑帧时,将所述当前编辑帧的上一个GOP作为历史GOP存储在所述视频帧缓存队列,其中,在所述拉流请求的网络协议为第一网络协议时,所述第一源站直接将所述推流数据反馈至所述第二源站,以由所述第二源站基于所述推流数据生成所述媒体流数据。5.根据权利要求4所述的视频推送方法,其特征在于,所述在检测到所述推流数据中的当前编辑帧时,将所述当前编辑帧的上一个GOP作为历史GOP存储在所述视频帧缓存队列,还包括:在接收到所述当前编辑帧的下一编辑帧时,将基于所述当前编辑帧生成的GOP存储在所述视频帧缓存队列的...

【专利技术属性】
技术研发人员:钟龙山陈成斌黄润怀李旭
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:

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

1