System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及互联网,具体涉及一种直播缓存处理方法及装置。
技术介绍
1、在直播业务中,对于cdn(content delivery network,内容分发网络)而言,提供给用户观看“流畅不卡”的直播效果是cdn的根本。在传统的http-flv直播流播放场景中,其缓存的视频帧的帧数或者时间较少,当用户发起拉流请求时,很有可能仅获取到寥寥几帧或几毫秒的视频数据,若用户网络情况发生轻微抖动时,必然会由于缓存过少导致直播引起卡顿。
2、因此,需要一种直播缓存处理方法,以解决卡顿问题。
技术实现思路
1、鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的直播缓存处理方法及装置。
2、根据本申请实施例的第一方面,提供了一种直播缓存处理方法,其包括:
3、接收客户端发送的包含自定义的缓存时间参数的拉流请求;缓存时间参数根据客户端的网络状态数据计算得到,与网络状态数据的网络抖动成正比;
4、根据拉流请求进行回源,按照缓存规则将多个预设视频单位的视频数据存储至缓存队列;
5、根据缓存队列中的各预设视频单位的视频数据的可播放时长与缓存时间参数的比对结果,返回对应的视频数据。
6、可选地,根据拉流请求进行回源,按照缓存规则将多个预设视频单位的视频数据存储至缓存队列进一步包括:
7、根据拉流请求进行回源,将得到的预设视频单位的视频数据存储至缓存队列,并记录缓存队列中预设视频单位的数量;缓存
8、判断缓存队列中存储的预设视频单位的个数是否达到预设个数;预设个数与预设视频单位的视频数据的可播放时长成反比;
9、若是,丢弃缓存队列中存储在先的预设视频单位的视频数据。
10、可选地,预设视频单位包括画面组;
11、根据拉流请求进行回源,将得到的预设视频单位的视频数据存储至缓存队列,并记录预设视频单位的数量进一步包括:
12、根据拉流请求进行回源,判断回源得到的视频帧是否为画面组的关键帧;
13、若是,将得到的画面组的视频数据存储至缓存队列,并记录关键帧的数量。
14、可选地,根据缓存队列中的各预设视频单位的视频数据的可播放时长与缓存时间参数的比对结果,返回对应的视频数据进一步包括:
15、确定缓存队列中各预设视频单位的视频数据的可播放时长;
16、按照缓存队列的存储倒序获取第1个可播放时长,将可播放时长作为比较时长,判断比较时长是否大于或者等于缓存时间参数;
17、若否,获取下一可播放时长,计算得到下一可播放时长与比较时长的和值,利用和值更新比较时长,重复执行判断比较时长是否大于或者等于缓存时间参数,直至比较时长大于或者等于缓存时间参数,返回比较时长对应的各预设视频单位的视频数据;
18、若是,返回比较时长对应的各预设视频单位的视频数据。
19、可选地,接收客户端发送的包含自定义的缓存时间参数的拉流请求进一步包括:
20、接收客户端发送的基于预设协议的拉流请求;预设协议包括长连接视频播放协议;预设协议中设置自定义的缓存时间参数;缓存时间参数根据客户端发起拉流请求时的网络状态数据计算得到。
21、可选地,在接收客户端发送的包含自定义的缓存时间参数的拉流请求之后,方法还包括:
22、解析拉流请求的url信息,根据自定义缓存时间字段得到对应的缓存时间参数。
23、可选地,拉流请求为长连接请求。
24、根据本申请实施例的第二方面,提供了一种直播缓存处理装置,其包括:
25、接收模块,适于接收客户端发送的包含自定义的缓存时间参数的拉流请求;缓存时间参数根据客户端的网络状态数据计算得到,与网络状态数据的网络抖动成正比;
26、缓存模块,适于根据拉流请求进行回源,按照缓存规则将多个预设视频单位的视频数据存储至缓存队列;
27、返回模块,适于根据缓存队列中的各预设视频单位的视频数据的可播放时长与缓存时间参数的比对结果,返回对应的视频数据。
28、根据本申请实施例的第三方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
29、所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述直播缓存处理方法对应的操作。
30、根据本申请实施例的第四方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述直播缓存处理方法对应的操作。
31、根据本申请实施例的第五方面,提供了一种计算机程序产品,包括至少一可执行指令,所述可执行指令使处理器执行如上述直播缓存处理方法对应的操作。
32、根据本申请的提供的直播缓存处理方法及装置,在回源时,将得到的多个预设视频单位的视频数据存储至缓存队列,可以保障缓存队列中存储的视频数据的可播放时长足够满足客户端的缓存需求。缓存时间参数与客户端自身的网络抖动成正比,客户端的网络抖动越大,缓存时间参数越大。通过在拉流请求中设置缓存时间参数,将缓存时间参数与缓存队列中各预设视频单位的视频数据的可播放时长比较,返回满足客户端需求的视频数据,兼顾直播实时性的同时提高用户拉流的抗网络抖动能力,提升观看体验。
33、上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
本文档来自技高网...【技术保护点】
1.一种直播缓存处理方法,其包括:
2.根据权利要求1所述的方法,其中,所述根据所述拉流请求进行回源,按照缓存规则将多个预设视频单位的视频数据存储至缓存队列进一步包括:
3.根据权利要求2所述的方法,其中,所述预设视频单位包括画面组;
4.根据权利要求1-3中任一项所述的方法,其中,所述根据所述缓存队列中的各预设视频单位的视频数据的可播放时长与所述缓存时间参数的比对结果,返回对应的视频数据进一步包括:
5.根据权利要求1-4中任一项所述的方法,其中,所述接收客户端发送的包含自定义的缓存时间参数的拉流请求进一步包括:
6.根据权利要求4所述的方法,其中,在所述接收客户端发送的包含自定义的缓存时间参数的拉流请求之后,所述方法还包括:
7.根据权利要求1-6中任一项所述的方法,其中,所述拉流请求为长连接请求。
8.一种直播缓存处理装置,其包括:
9.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
10
11.一种计算机程序产品,包括至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的直播缓存处理方法对应的操作。
...【技术特征摘要】
1.一种直播缓存处理方法,其包括:
2.根据权利要求1所述的方法,其中,所述根据所述拉流请求进行回源,按照缓存规则将多个预设视频单位的视频数据存储至缓存队列进一步包括:
3.根据权利要求2所述的方法,其中,所述预设视频单位包括画面组;
4.根据权利要求1-3中任一项所述的方法,其中,所述根据所述缓存队列中的各预设视频单位的视频数据的可播放时长与所述缓存时间参数的比对结果,返回对应的视频数据进一步包括:
5.根据权利要求1-4中任一项所述的方法,其中,所述接收客户端发送的包含自定义的缓存时间参数的拉流请求进一步包括:
6.根据权利要求4所述的方法,其中,在所述接收客户端发送的包...
【专利技术属性】
技术研发人员:杨成进,刘勇江,张建锋,蔡尚志,
申请(专利权)人:上海哔哩哔哩科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。