切片方法、装置、设备及可读存储介质制造方法及图纸

技术编号:32807408 阅读:10 留言:0更新日期:2022-03-26 20:00
本申请公开了一种切片方法、装置、设备及可读存储介质,边缘推流节点每次接收到直播数据包后,若该直播数据包符合预设条件,则生成一个AMF数据包并发送给中心节点。中心节点接收到该AMF数据包后,根据AMF数据包包含的切片名等对一组直播数据包进行切片。采用该种方案,能够保证各个中心节点的切片结果一样。当边缘拉流节点拉流时,即使切换中心节点,边缘拉流节点获取到的m3u8文件指示的TS切片与不切换时获取到m3u8文件指示的TS切片一致,进而使得播放端根据m3u8文件获取TS切片并播放时,不会发生异常。不会发生异常。不会发生异常。

【技术实现步骤摘要】
切片方法、装置、设备及可读存储介质


[0001]本申请涉及直播
,特别涉及一种切片方法、装置、设备及可读存储介质。

技术介绍

[0002]目前,直播技术采用的流媒体传输协议主要包括flash视频(flash video,FLV)、HTTP动态自适应流(Dynamic Adaptive Streaming over HTTP,DASH)、HTTP实时流媒体(HTTP Live Streaming,HLS)等。其中,HLS协议因其的简洁性及针对HTTP协议的友好性,其已经成为直播上使用较为广泛的标准之一。
[0003]大多数的直播网站或直播app都会利用云厂商提供的分布式集群网络进行分发管理。分布式集群网络通常采用多层架构来保证链路稳定。主播端向边缘推流节点发送直播数据包,边缘推流节点将直播数据包推送给多个中心节点,由中心节点对直播数据包进行连续切片,得到传输流(Transport Stream,TS)切片,一个TS切片的时长一般为6S。中心节点动态生成m3u8格式的索引文件,该m3u8索引文件记录至少3个最新的TS切片。当用户在播放端观看直播时,向边缘拉流节点发送拉流请求。边缘拉流节点从中心节点获取m3u8索引文件,然后向播放端发送m3u8索引文件。播放端根据m3u8索引文件中TS切片的下载地址,下载TS切片并播放。
[0004]由于中心节点对直播数据包的切片是不一致的。当边缘拉流节点切换中心节点请求TS切片时,中心节点响应的内容不一致,导致播放端出现画面倒退、跳变甚至无法播放等问题。

技术实现思路

[0005]本申请实施例提供一种切片方法、装置、设备及可读存储介质,通过保证中心节点对直播数据包切片的一致性,保证边缘拉流节点切换中心节点时,获取到m3u8文件指示的TS切片与不切换时获取到m3u8文件指示的TS切片一致,进而使得播放端根据m3u8文件获取TS切片并播放时,不会发生异常。
[0006]第一方面,本申请实施例提供一种切片方法,应用于边缘推流节点,该方法包括:
[0007]接收来自主播端的直播数据包;
[0008]当所述直播数据包是第X个满足预设条件的直播数据包时,针对所述第X个满足预设条件的直播数据包生成第X个动作消息格式AMF数据包,所述第X个AMF数据包用于指导中心节点对第X组直播数据包切片,所述第X组直播数据包包括所述第X个满足预设条件的直播数据包,以及所述边缘推流节点接收到所述第X个满足预设条件的直播数据包之后、接收第X+1个满足预设条件的直播数据包之前接收到的直播数据包,其中,X≥1且为整数;
[0009]向所述中心节点发送所述第X个AMF数据包。
[0010]第二方面,本申请实施例提供一种切片方法,应用于中心节点,该方法包括:
[0011]接收来自边缘推流节点的第X个网络协议AMF数据包,所述第X个AMF数据包是所述边缘推流节点针对第X个满足预设条件的直播数据包生成的,所述X≥1且为整数;
[0012]根据所述第X个AMF数据包对第X组直播数据包切片,所述第X组直播数据包包括所述第X个满足预设条件的直播数据包,以及所述中心节点接收到所述第X个满足预设条件的直播数据包之后、接收第X+1个满足预设条件的直播数据包之前接收到的直播数据包。
[0013]第三方面,本申请实施例提供一种切片装置,包括:
[0014]接收模块,用于接收来自主播端的直播数据包;
[0015]处理模块,用于当所述直播数据包是第X个满足预设条件的直播数据包时,针对所述第X个满足预设条件的直播数据包生成第X个动作消息格式AMF数据包,所述第X个AMF数据包用于指导中心节点对第X组直播数据包切片,所述第X组直播数据包包括所述第X个满足预设条件的直播数据包,以及所述边缘推流节点接收到所述第X个满足预设条件的直播数据包之后、接收第X+1个满足预设条件的直播数据包之前接收到的直播数据包,其中,X≥1且为整数;
[0016]发送模块,用于向所述中心节点发送所述第X个AMF数据包。
[0017]第四方面,本申请实施例提供一种切片装置,包括:
[0018]收发模块,用于接收来自边缘推流节点的第X个网络协议AMF数据包,所述第X个AMF数据包是所述边缘推流节点针对第X个满足预设条件的直播数据包生成的,所述X≥1且为整数;
[0019]处理模块,用于根据所述第X个AMF数据包对第X组直播数据包切片,所述第X组直播数据包包括所述第X个满足预设条件的直播数据包,以及所述中心节点接收到所述第X个满足预设条件的直播数据包之后、接收第X+1个满足预设条件的直播数据包之前接收到的直播数据包。
[0020]第五方面,本申请实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时使得所述电子设备实现如上第一方面或第一方面各种可能的实现方式所述的方法。
[0021]第六方面,本申请实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时使得所述电子设备实现如上第二方面或第二方面各种可能的实现方式所述的方法。
[0022]第七方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令在被处理器执行时用于实现如上第一方面或第一方面各种可能的实现方式所述的方法。
[0023]第八方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令在被处理器执行时用于实现如上第二方面或第二方面各种可能的实现方式所述的方法。
[0024]第九方面,本申请实施例提供一种包含计算程序的计算机程序产品,所述计算机程序被处理器执行时实现如上第一方面或第一方面各种可能的实现方式所述的方法。
[0025]第十方面,本申请实施例提供一种包含计算程序的计算机程序产品,所述计算机程序被处理器执行时实现如上第二方面或第二方面各种可能的实现方式所述的方法。
[0026]本申请实施例提供的切片方法、装置、设备及可读存储介质,边缘推流节点每次接收到直播数据包后,若该直播数据包符合预设条件,则生成一个AMF数据包并发送给中心节点。中心节点接收到该AMF数据包后,根据AMF数据包包含的切片名等对一组直播数据包进
行切片。采用该种方案,各中心节点均能接收到AMF数据包以及该AMF数据包对应的一组直播数据包,中心节点根据AMF数据包对一组直播数据包进行切片,切片依据、切片方式相同,因此,能够保证各个中心节点的切片结果一样。当边缘拉流节点拉流时,即使切换中心节点,边缘拉流节点获取到的m3u8文件指示的TS切片与不切换时获取到m3u8文件指示的TS切片一致,进而使得播放端根据m3u8文件获取TS切片并播放时,不会发生异常。而且,本申请实施例不限制边缘推流节点和中心节点个数,承载能力更高。另外,本申请实施例限制编码格式,支持现本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种切片方法,其特征在于,应用于边缘推流节点,包括:接收来自主播端的直播数据包;当所述直播数据包是第X个满足预设条件的直播数据包时,针对所述第X个满足预设条件的直播数据包生成第X个动作消息格式AMF数据包,所述第X个AMF数据包用于指导中心节点对第X组直播数据包切片,所述第X组直播数据包包括所述第X个满足预设条件的直播数据包,以及所述边缘推流节点接收到所述第X个满足预设条件的直播数据包之后、接收第X+1个满足预设条件的直播数据包之前接收到的直播数据包,其中,X≥1且为整数;向所述中心节点发送所述第X个AMF数据包。2.根据权利要求1所述的方法,其特征在于,所述当所述直播数据包是第X个满足预设条件的直播数据包时,针对所述第X个满足预设条件的直播数据包生成第X个动作消息格式AMF数据包,包括:确定所述第X个满足预设条件的直播数据包与所述边缘推流节点接收到元数据的位置关系;根据所述位置关系生成第X个动作消息格式AMF数据包。3.根据权利要求2所述的方法,其特征在于,所述根据所述位置关系生成第X个动作消息格式AMF数据包,包括:当所述位置关系指示所述第X个满足预设条件的直播数据包不是所述边缘推流节点最近接收到元数据后的第一个直播数据包时,根据所述第X个满足预设条件的直播数据包的时间戳与前序时间戳的差值确定所述第X个AMF数据包包含的切片名,所述前序时间戳用于指示切片的起始位置;根据所述第X个AMF数据包包含的切片名,生成所述第X个AMF数据包。4.根据权利要求3所述的方法,其特征在于,所述根据所述第X个满足预设条件的直播数据包的时间戳与前序时间戳的差值确定所述第X个AMF数据包包含的切片名,包括:当所述第X个满足预设条件的直播数据包的时间戳与前序时间戳的差值大于或等于切片时长时,确定所述第X个AMF数据包包含的切片名大于第X

1个AMF数据包包含的切片名。5.根据权利要求3所述的方法,其特征在于,所述根据所述第X个满足预设条件的直播数据包的时间戳与前序时间戳的差值确定所述第X个AMF数据包包含的切片名,包括:当所述第X个满足预设条件的直播数据包的时间戳与前序时间戳的差值小于切片时长时,确定所述第X个AMF数据包包含的切片名等于第X

1个AMF数据包包含的切片名。6.根据权利要求2所述的方法,其特征在于,所述根据所述位置关系生成第X个动作消息格式AMF数据包,包括:当所述位置关系指示所述第X个满足预设条件的直播数据包是所述边缘推流节点最近接收到元数据后的第一个直播数据包时,确定所述第X个AMF数据包包含的切片名大于第X

1个AMF数据包包含的切片名;根据所述第X

1个AMF数据包包含的切片名,生成所述第X个AMF数据包。7.根据权利要求4或6所述的方法,其特征在于,还包括:将所述第X个AMF数据包中用于指示切片头改变的标志位置为真;将前序时间戳更新为所述第X个满足所述预设条件的直播数据包的时间戳,所述前序时间戳用于指示切片的起始位置。
8.根据权利要求1

6任一项所述的方法,其特征在于,所述当所述直播数据包是第X个满足预设条件的直播数据包时,针对所述第X个满足预设条件的直播数据包生成第X个动作消息格式AMF数据包之前,还包括:确定所述第X个满足预设条件的直播数据包对应的直播场景;根据所述直播场景,确定所述预设条件。9.根据权利要求8所述的方法,其特征在于,当所述直播场景是纯视频直播或音视频混合直播场景时,所述预设条件包括来自主播端的直播数据包为关键帧;当所述直播场景是纯视频直播场景时,所述预设条件包括来自所述主播端的直播数据包之前预设时长内的直播数据包均为纯音频数据包。10.根据权利要求1

6任一项所述的方法,其特征在于,所述当所述直播数据包是第X个满足预设条件的直播数据包时,针对所述第X个满足预设条件的直播数据包生成第X个动作消息格式AMF数据包,包括:当来自主播端的直播数据包为主播端首次推送的关键帧或纯音频数据包时,将来自主播端的直播数据包作为第1个满足预设条件的直播数据包,针对第1个满足预设条件的直播数据包生成第1个网络协议AMF数据包,并根据所述第1个直播数据包的时间戳初始化前序时间戳。11.根据权利要求10所述的方法,其特征在于,还包括:根据接收所述第1个满足预设条件的直播数据包的系统时间,初始化所述第1个AMF数据包包含的切片名。12.根据权利要求1

6任一项所述的方法,其特征在于,所述向所述中心节点发送所述第X个AMF数据包之后,还包括:当所述边缘推流节...

【专利技术属性】
技术研发人员:庄晓川
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:

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

1