System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及互联网,尤其涉及一种直播流切换方法、装置、计算机设备及计算机可读存储介质。
技术介绍
1、通常而言,视频码率越高,视频质量和清晰度就越高,但同时也需要更大的带宽来传输这些数据。在直播场景下,为了更好地适应播放端的网络带宽情况,例如,网络好则可以看更高清的内容,网络差则优先保证直播的流畅,通常会对直播流进行实时转码,以输出不同码率的视音频码流,如高码率、中码率、低码率等,每档视音频码流可能对应不同的分辨率、帧率。但是,现有方案中的这些实时的转码流之间是相互独立的,当切换视音频码流时,需要重新加载,用户观看时至少会有明显的卡顿的感觉,观看体验较差。
技术实现思路
1、本申请实施例的目的是提供一种直播流切换方法、装置、计算机设备及计算机可读存储介质,用于解决以下问题:现有实时的转码流之间是相互独立的,当切换视音频码流时,需要重新加载,用户观看时至少会有明显的卡顿的感觉,观看体验较差。
2、本申请实施例的一个方面提供了一种直播流切换方法,应用于直播服务器,所述方法包括:
3、对主播端推送的源流进行转码得到一个或多个转码流,其中,所述源流与所述一个或多个转码流的gop结构一一对齐;
4、根据所述源流中的关键帧对应的时间戳确定所述一个或多个转码流中的关键帧对应的时间戳;
5、响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流,并向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
6、
7、对主播端推送的源流进行解码处理以得到所述源流中的关键帧;
8、根据所述源流中的关键帧进行转码生成所述一个或多个转码流的关键帧。
9、可选地,所述对主播端推送的源流进行转码得到一个或多个转码流,包括:
10、在检测到所述直播服务器当前可用的内存资源达到预设阈值的情况下,启动预置的转码程序;
11、通过所述预置的转码程序对主播端推送的源流进行转码得到一个或多个转码流。
12、可选地,在所述响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流的步骤之前,所述方法还包括:
13、接收观众端发送的直播流获取请求;
14、根据所述直播流获取请求从所述源流和所述一个或多个转码流中确定第一直播流;
15、向所述观众端发送携带所述关键帧对应的时间戳的第一直播流。
16、可选地,所述向所述观众端发送携带所述关键帧对应的时间戳的目标直播流,包括:
17、从所述码流切换请求中提取得到下一个关键帧对应的时间戳;
18、根据所述下一个关键帧对应的时间戳,向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
19、本申请实施例的一个方面又提供了一种直播流切换方法,应用于观众端,所述方法包括:
20、在播放直播服务器分发的第一直播流的情况下,响应于用户输入的码流切换操作,确定当前播放的所述第一直播流中的下一个关键帧对应的时间戳,并向所述直播服务器发送码流切换请求;
21、接收所述直播服务器响应所述码流切换请求返回的携带关键帧对应的时间戳的目标直播流;
22、根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,将当前播放的所述第一直播流切换为播放所述目标直播流。
23、可选地,所述根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,将当前播放的所述第一直播流切换为播放所述目标直播流,包括:
24、根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,从所述目标直播流中确定与所述下一个关键帧对应的目标关键帧的位置;
25、根据所述目标关键帧的位置,将当前播放的所述第一直播流切换为播放所述目标直播流。
26、可选地,所述码流切换请求中携带所述下一个关键帧对应的时间戳,以接收所述直播服务器根据所述下一个关键帧对应的时间戳返回的目标直播流。
27、本申请实施例的一个方面又提供了一种直播流切换装置,应用于直播服务器,所述装置包括:
28、转码模块,用于对主播端推送的源流进行转码得到一个或多个转码流,其中,所述源流与所述一个或多个转码流的gop结构一一对齐;
29、时间戳确定模块,用于根据所述源流中的关键帧对应的时间戳确定所述一个或多个转码流中的关键帧对应的时间戳;
30、目标直播流发送模块,用于响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流,并向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
31、本申请实施例的一个方面又提供了一种直播流切换装置,应用于观众端,所述装置包括:
32、码流切换请求发送模块,用于在播放直播服务器分发的第一直播流的情况下,响应于用户输入的码流切换操作,确定当前播放的所述第一直播流中的下一个关键帧对应的时间戳,并向所述直播服务器发送码流切换请求;
33、目标直播流接收模块,用于接收所述直播服务器响应所述码流切换请求返回的携带关键帧对应的时间戳的目标直播流;
34、直播流切换模块,用于根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,将当前播放的所述第一直播流切换为播放所述目标直播流。
35、本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的直播流切换方法的步骤。
36、本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行所述计算机程序时实现如上述的直播流切换方法的步骤。
37、本申请实施例提供的直播流切换方法、装置、设备及计算机可读存储介质,通过直播服务器在转码时确保各个转码流与源流有完全一致的gop结构,并确保各个转码流与源流的关键帧对应的时间戳一致,从而在观众端需要切换码流时,能够依据关键帧对应的时间戳做到无缝切换;而且,不仅仅是各转码流之间对齐,更同时与主播端推送的源流对齐,从而能够做到直播时能在主播源流与各个转码流之间无缝切换,以使用户观看时能获得无缝连续的观看体验。
本文档来自技高网...【技术保护点】
1.一种直播流切换方法,其特征在于,应用于直播服务器,所述方法包括:
2.根据权利要求1所述的直播流切换方法,其特征在于,所述对主播端推送的源流进行转码得到一个或多个转码流,包括:
3.根据权利要求1所述的直播流切换方法,其特征在于,所述对主播端推送的源流进行转码得到一个或多个转码流,包括:
4.根据权利要求1所述的直播流切换方法,其特征在于,在所述响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流的步骤之前,所述方法还包括:
5.根据权利要求1所述的直播流切换方法,其特征在于,所述向所述观众端发送携带所述关键帧对应的时间戳的目标直播流,包括:
6.一种直播流切换方法,其特征在于,应用于观众端,所述方法包括:
7.根据权利要求6所述的直播流切换方法,其特征在于,所述根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,将当前播放的所述第一直播流切换为播放所述目标直播流,包括:
8.根据权利要求6所述的直播流切换方法,其特征在于,所述码流切换请求中携带所
9.一种直播流切换装置,其特征在于,应用于直播服务器,所述装置包括:
10.一种直播流切换装置,其特征在于,应用于观众端,所述装置包括:
11.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至5或6至8中任意一项所述的直播流切换方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行权利要求1至5或6至8中任意一项所述的直播流切换方法的步骤。
...【技术特征摘要】
1.一种直播流切换方法,其特征在于,应用于直播服务器,所述方法包括:
2.根据权利要求1所述的直播流切换方法,其特征在于,所述对主播端推送的源流进行转码得到一个或多个转码流,包括:
3.根据权利要求1所述的直播流切换方法,其特征在于,所述对主播端推送的源流进行转码得到一个或多个转码流,包括:
4.根据权利要求1所述的直播流切换方法,其特征在于,在所述响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流的步骤之前,所述方法还包括:
5.根据权利要求1所述的直播流切换方法,其特征在于,所述向所述观众端发送携带所述关键帧对应的时间戳的目标直播流,包括:
6.一种直播流切换方法,其特征在于,应用于观众端,所述方法包括:
7.根据权利要求6所述的直播流切换方法,其特征在于,所述根据所述下一个关键帧对应的时间戳和所述目标...
【专利技术属性】
技术研发人员:张捷,郑南岭,董浩,廖大达,
申请(专利权)人:上海哔哩哔哩科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。