CN114697695B - 直播数据推送方法、装置、设备及存储介质 - Google Patents
直播数据推送方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114697695B CN114697695B CN202210316750.4A CN202210316750A CN114697695B CN 114697695 B CN114697695 B CN 114697695B CN 202210316750 A CN202210316750 A CN 202210316750A CN 114697695 B CN114697695 B CN 114697695B
- Authority
- CN
- China
- Prior art keywords
- live broadcast
- determining
- streaming
- buffer
- round trip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000000903 blocking effect Effects 0.000 claims abstract description 34
- 238000004590 computer program Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000009877 rendering Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2407—Monitoring of transmitted content, e.g. distribution time, number of downloads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种直播数据推送方法、装置、设备及存储介质。在直播数据推送方法中,针对单个拉流用户,服务器可获取单个拉流端的网络质量,根据网络质量,从缓存区已缓存的直播数据中确定拉流起始位置,并从该拉流起始位置开始,向所述拉流端发送直播数据。在这种实施方式中,服务器侧充分考虑了单个拉流端的实际网络状况,差异化地调整不同拉流端的拉流起始位置,从而可在利用缓存减少直播卡顿的场景下,平衡单个拉流端的直播时延与卡顿情况,有利于降低网络质量较佳的用户的直播时延,并缓解网络质量较差的用户的直播卡顿现象。
Description
技术领域
本申请涉及直播技术领域,尤其涉及一种直播数据推送方法、装置、设备及存储介质。
背景技术
在直播场景中,受网络质量影响,播放端可能出现直播卡顿现象,例如播放端的画面出现缓冲标志或者播放端的画面不连续。通常,为降低直播卡顿,可在边缘服务器节点缓存一定时长的直播数据。当新观众接入直播后,可从缓存数据的起始位置开始拉流,从而改善直播卡顿现象。但是,这种方式将引入较大的直播时延。因此,有待提出一种新的解决方案。
发明内容
本申请的多个方面提供一种直播数据推送方法、装置、设备及存储介质,用以在减少直播卡顿的情形下,降低直播时延。
本申请实施例提供一种直播数据推送方法,包括:响应拉流端的拉流请求,获取所述拉流端的网络质量;根据所述网络质量,从缓存区已缓存的直播数据中确定拉流起始位置;从所述拉流起始位置开始,向所述拉流端发送直播数据。
进一步可选地,根据所述网络质量,从已缓存的直播数据中确定拉流起始位置,包括:根据所述网络质量,确定所述拉流端的往返时延;根据所述往返时延,确定所述拉流端所需的直播缓存时长;所述往返时延与所述直播缓存时长呈正相关关系;根据所述直播缓存时长,从所述缓存区中已缓存的直播数据中确定所述拉流起始位置。
进一步可选地,根据所述往返时延,确定所述拉流端所需的直播缓存时长,包括:若所述往返时延大于或等于预设的第一时延阈值,则确定所述缓存区的缓存时长的上限值,作为所述拉流端所需的直播缓存时长;所述第一时延阈值大于或等于所述上限值。
进一步可选地,根据所述往返时延,确定所述拉流端所需的直播缓存时长,包括:若所述往返时延小于或等于预设的第二时延阈值,则确定所述缓存区的缓存时长的下限值,作为所述拉流端所需的直播缓存时长;所述第二时延阈值小于或等于所述下限值。
进一步可选地,根据所述往返时延,确定所述拉流端所需的直播缓存时长,包括:若所述往返时延小于所述缓存区的缓存时长的上限值且大于所述缓存区的缓存时长的下限值,则从预设的多个阈值范围中,确定所述往返时延所属的目标阈值范围;所述多个阈值范围各自对应的直播缓存时长不同;根据所述目标阈值范围对应的目标直播缓存时长,确定所述拉流端所需的直播缓存时长。
进一步可选地,根据所述目标阈值范围对应的目标直播缓存时长,确定所述拉流端所需的直播缓存时长,包括:获取所述拉流端的卡顿数据;若所述卡顿数据满足设定的卡顿条件,则将所述目标直播缓存时长的设定倍数,作为所述拉流端对应的直播缓存时长;所述设定倍数为大于1的正整数。
进一步可选地,所述缓存区的缓存时长为画面组的时长的倍数,所述画面组的时长由推流端设置。
本申请实施例还提供一种直播数据推送装置,包括:网络质量获取模块,响应拉流端的拉流请求,获取所述拉流端的网络质量;拉流位置确定模块,根据所述网络质量,从缓存区已缓存的直播数据中确定拉流起始位置;数据发送模块,用于从所述拉流起始位置开始,向所述拉流端发送直播数据。
本申请实施例还提供一种服务器,包括:存储器和处理器;所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行本申请实施例提供的方法中的步骤。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被处理器执行时能够实现本申请实施例提供的直播数据推送方法。
本申请实施例提供的直播数据推送方法中,针对单个拉流用户,服务器可获取单个拉流端的网络质量,根据网络质量,从缓存区已缓存的直播数据中确定拉流起始位置,并从该拉流起始位置开始,向所述拉流端发送直播数据。在这种实施方式中,服务器侧充分考虑了单个拉流端的实际网络状况,差异化地调整不同拉流端的拉流起始位置,从而可在利用缓存减少直播卡顿的场景下,平衡单个拉流端的直播时延与卡顿情况,有利于降低网络质量较佳的用户的直播时延,并缓解网络质量较差的用户的直播卡顿现象。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例提供的直播数据推送方法的流程示意图;
图2为本申请一示例性实施例提供的根据往返时延进行拉流起始位置判定的流程示意图;
图3为本申请一示例性实施例提供的根据直播缓存时长确定拉流起始位置的示意图;
图4为本申请一示例性实施例提供的直播数据推送装置的结构示意图;
图5为本申请一示例性实施例提供的服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
在直播场景中,受网络质量影响,播放端可能出现直播卡顿现象,例如播放端的画面出现缓冲标志或者播放端的画面不连续。通常,为降低直播卡顿,可在边缘服务器节点缓存一定时长的直播数据。当新观众接入直播后,可从缓存数据的起始位置开始拉流,从而改善直播卡顿现象。目前,存在一种从单域名维度调整缓存时长大小的方案,但是这种方案未考虑不同用户的网络情况下。对于部分网络状况较差的用户而言,这种方案对直播卡顿现象的改善十分有限。对于部分网络状况良好的用户而言,这种方案将引入较大的直播时延。
针对上述技术问题,在本申请一些实施例中,提供了一种解决方案,以下将结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的直播数据推送方法的流程示意图,如图1所示,该方法包括:
步骤101、响应拉流端的拉流请求,获取该拉流端的网络质量。
步骤102、根据该网络质量,从缓存区已缓存的直播数据中确定拉流起始位置。
步骤103、从该拉流起始位置开始,向该拉流端发送直播数据。
本实施例的执行主体可以是服务器,该服务器可实现为内容分发网络(ContentDelivery Network,CDN)节点。CDN节点可接收推流端发送的直播数据,在本地缓存一定时长的直播数据,并将直播数据发送至拉流端。其中,推流端,是指用于采集直播数据,并将采集阶段封包好的内容传输到服务器的设备。推流端可实现为计算机、智能手机、网络摄像机等设备。其中,拉流端,是指用于根据用户的观看操作,向服务器请求拉流的设备。拉流端可实现为计算机、智能手机、平板电脑、智能电视机等智能显示设备。
其中,服务器处设置有缓存区,该缓存区的缓存时长可固定设置或者动态设置。例如,可固定设置为8秒,也可动态设置在2秒到10秒之间。推流端推送来的直播数据流存放在缓存区中。对单个拉流端而言,可根据其实际网络质量,从缓存区中确定其对应的拉流起始位置,并从拉流起始位置开始拉流。
可选地,在一些实施例中,缓存区的缓存时长可配置为画面组(group ofpictures,GOP)的时长的倍数。假设缓存区的缓存时长为N,则N=x*GOP,x为大于等于1的正数,例如x可以取5、6、7等,本实施例不做限制。其中,GOP指的是两个I帧((intra picture),内部画面)之间的间隔。其中,画面组的时长由推流端设置,GOP的时长可以为1秒或者2秒。
其中,拉流起始位置,是指从缓存区中开始拉流的缓存位置。拉流起始位置越靠近实时推流数据的存放位置,则拉取的直播数据流的时延越小。拉流起始位置越远离实时推流数据的存放位置,则拉取的直播数据流的时延越大。
其中,服务器在获取单个拉流端的拉流请求时,可获取单个拉流端的网络质量。该网络质量可基于拉流端的连接速度、掉线率、丢包率、卡顿情况以及往返时延(round-triptime,RTT)中的至少一种指标进行评价,本实施例对此不做限制。获取单个拉流端的网络质量后,可根据该网络质量,从缓存区已缓存的直播数据中确定拉流起始位置。确定拉流起始位置后,可从该拉流起始位置开始,向拉流端发送直播数据。
在本实施例中,针对单个拉流用户,服务器可获取单个拉流端的网络质量,根据网络质量,从缓存区已缓存的直播数据中确定拉流起始位置,并从该拉流起始位置开始,向所述拉流端发送直播数据。在这种实施方式中,服务器侧充分考虑了单个拉流端的实际网络状况,差异化地调整不同拉流端的拉流起始位置,从而可在利用缓存减少直播卡顿的场景下,平衡单个拉流端的直播时延与卡顿情况,有利于降低网络质量较佳的用户的直播时延,并缓解网络质量较差的用户的直播卡顿现象。
在一些示例性的实施例中,服务器根据该网络质量,从已缓存的直播数据中确定拉流起始位置时,可根据该网络质量,确定该拉流端的往返时延(round-trip time,RTT)。其中,往返时延表示从发送端(即服务器)发送数据开始,到发送端(即服务器)收到来自接收端(即拉流端)的确认消息之间经历的总时延。通常,单向时延=传输时延t1+传播时延t2+排队时延t3。传输时延t1通常与数据块长度以及信道带宽相关。传播时延t2与信道长度以及传播速率相关。排队时延t3由途径的每一跳设备及收发两端负荷情况和吞吐排队情况相关。基于往返时延,可对拉流端的网络质量进行评价。
可选地,当服务器与拉流端基于握手机制(例如三次握手机制)建立连接时,服务器可根据握手报文的往返时间,确定拉流端的RTT。
在确定往返时延后,服务器可根据该往返时延,确定该拉流端所需的直播缓存时长;其中,该往返时延与该直播缓存时长可呈正相关关系。即,拉流端的往返时延越长,则说明网络质量越差,拉流端所需的直播缓存时长越长。反之,拉流端的往返时延越短,则说明网络质量越佳,拉流端所需的直播缓存时长越短。基于该正相关关系确定拉流端的直播缓存时长后,可根据该直播缓存时长,从该缓存区中已缓存的直播数据中确定该拉流端的拉流起始位置。直播缓存时长越长,则拉流起始位置越靠前。假设,缓存区的缓存时长为N,若拉流端所需的直播缓存时长为T,则拉流起始位置可以为N-T,其中,N、T均为正数。
可选地,根据该往返时延,确定该拉流端所需的直播缓存时长时,可采用多个阈值判断往返时延是否满足设定的要求,并根据往返时延满足的要求确定拉流端所需的直播缓存时长。
可选地,若该往返时延大于或等于预设的第一时延阈值,则服务器可确定该缓存区的缓存时长的上限值,作为该拉流端所需的直播缓存时长;该第一时延阈值大于或等于该上限值。假设,缓存区的缓存时长的上限值为N,若拉流端的往返时延大于或等于N,则服务器可将缓存时长N作为拉流端所需的直播缓存时长。服务器可从缓存区的初始缓存位置开始向拉流端发送直播数据。
可选地,若该往返时延小于或等于预设的第二时延阈值,则确定该缓存区的缓存时长的下限值,作为该拉流端所需的直播缓存时长;该第二时延阈值小于或等于该下限值。假设,缓存区的缓存时长的下限值为M,若拉流端的往返时延小于或等于M,则服务器可可将缓存时长M作为拉流端所需的直播缓存时长。服务器可从缓存区的末端缓存位置开始向拉流端发送直播数据,其中,M为正数。其中,缓存时长的下限值M可以为0秒、1秒、2秒或者其他较小的数值,从而可在拉流端网络质量较佳时降低直播时延。
在一些示例性的实施例中,若该往返时延小于该缓存区的缓存时长的上限值且大于该缓存区的缓存时长的下限值,服务器可按照正相关的线性计算方式,确定往返时延对应的直播缓存时长。例如,直播缓存时长=a*RTT+b,a为大于1的系数,b为常数。
在另一些示例性的实施例中,若该往返时延小于该缓存区的缓存时长的上限值且大于该缓存区的缓存时长的下限值,则可根据往返时延所属的阈值范围,确定拉流端对应的直播缓存时长。可选地,预先对往返时延设置多个阈值范围,该多个阈值范围各自对应的直播缓存时长不同。
在一些实施例中,多个阈值范围可根据第一时延阈值Y以及缓存区的缓存时长N确定。N=x*GOP,x≥2y,2y是可以是最接近x的整数,该多个阈值范围可以为: 相应地,上述每个阈值范围对应的直播缓存时长可以为:/>
以x=5为例,为往返时延预设的多个阈值范围以及每个阈值范围对应的直播缓存时长可以为:
相应地,若该往返时延小于该缓存区的缓存时长的上限值且大于该缓存区的缓存时长的下限值,则可从预设的多个阈值范围中确定该往返时延所属的目标阈值范围,并根据该目标阈值范围对应的目标直播缓存时长,确定该拉流端所需的直播缓存时长。
可选地,在一些实施例中,可将该目标阈值范围对应的目标直播缓存时长,直接作为该拉流端所需的直播缓存时长。
如图2所示,当接收到单连接(即单个拉流端的连接)的拉流请求后,服务器可初始化缓存区的长度为N秒,并初始化RTT阈值为Y,Y≥N。服务器可根据用户的拉流请求,获取拉流端的RTT,并判断RTT是否大于或等于阈值Y。若RTT大于或等于Y,则确定拉流端所需的直播缓存时长为N秒,可从图3所示的缓存区的初始位置开始拉流。若RTT小于或等于Y,则判断RTT是否在范围内,若为是,则确定拉流端所需的直播缓存时长为/>秒,可从图3所示的缓存总长度的/>位置处开始拉流。若RTT在/>范围内,则确定拉流端所需的直播缓存时长为/>秒,可从图3所示的缓存总长度的/>位置处开始拉流。若RTT在范围内,则确定拉流端所需的直播缓存时长为/>秒,可从图3所示的缓存总长度的/>位置处开始拉流。若/>则可确定缓存时长为0秒,可从图3所示的缓存区的末端位置开始拉流。
通过这种实施方式,可充分考虑拉流端的实际网络质量,从而在服务器侧为不同网络质量的拉流端动态地调整缓存长度,可在降低拉流端卡顿现象的同时,降低拉流端的时延,在对时延要求较高的直播场景中,提升直播画面的实时性。
在另一些实施例中,可根据拉流端的卡顿情况以及目标阈值范围对应的目标直播缓存时长,确定该拉流端所需的直播缓存时长。
可选地,服务器可获取拉流端的卡顿数据。其中,该卡顿数据可包括:拉流端的单帧解码耗时以及渲染帧率中的至少一种。单帧解码耗时,是拉流端对单帧画面进行解码所需的时长。拉流端的单帧解码耗时较大时,直播画面可能出现卡顿。渲染帧率,是拉流端单位时间内渲染的视频帧的数量,若渲染帧率较小,则直播画面也可能出现卡顿。
获取卡顿数据后,服务器可判断卡顿数据是否满足预设的卡顿条件。例如,判断拉流端的单帧解码耗时是否大于设定耗时阈值,和/或,判断渲染帧率是否小于设定的帧率阈值。若单帧解码耗时大于设定耗时阈值,或者,渲染帧率小于设定的帧率阈值,或者,单帧解码耗时大于设定耗时阈值且渲染帧率小于设定的帧率阈值,则确定卡顿数据是满足预设的卡顿条件。
若该卡顿数据满足设定的卡顿条件,则服务器将目标直播缓存时长的设定倍数,作为该拉流端对应的直播缓存时长。其中,该设定倍数为大于1的正整数。例如,拉流端的RTT在范围内,拉流端的单帧解码耗时大于设定耗时阈值且渲染帧率小于设定的帧率阈值,则服务器可设置拉流端的拉流时长为/>的2倍或者3倍,以缓解拉流端并存的网络质量问题和卡顿问题。
基于这种实施方式,服务器可通过监测单连接的传输时延以及卡顿情况,动态调整拉流端所需的缓冲时长,从而在直播流畅效果与时延之间达到较好平衡。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201至步骤204的执行主体可以为设备A;又比如,步骤201和202的执行主体可以为设备A,步骤203的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并发执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并发执行。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
除前述实施例提供的直播数据推送方法之外,本申请实施例还提供一种直播数据推送装置,如图4所示,该装置包括:
网络质量获取模块401,响应拉流端的拉流请求,获取该拉流端的网络质量。
拉流位置确定模块402,根据该网络质量,从缓存区已缓存的直播数据中确定拉流起始位置。
数据发送模块403,用于从该拉流起始位置开始,向该拉流端发送直播数据。
进一步可选地,网络质量获取模块401在根据该网络质量,从已缓存的直播数据中确定拉流起始位置时,具体用于:根据该网络质量,确定该拉流端的往返时延;根据该往返时延,确定该拉流端所需的直播缓存时长;该往返时延与该直播缓存时长呈正相关关系;根据该直播缓存时长,从该缓存区中已缓存的直播数据中确定该拉流起始位置。
进一步可选地,拉流位置确定模块402在根据该往返时延,确定该拉流端所需的直播缓存时长时,具体用于:若该往返时延大于或等于预设的第一时延阈值,则确定该缓存区的缓存时长的上限值,作为该拉流端所需的直播缓存时长;该第一时延阈值大于或等于该上限值。
进一步可选地,拉流位置确定模块402在根据该往返时延,确定该拉流端所需的直播缓存时长时,具体用于:若该往返时延小于或等于预设的第二时延阈值,则确定该缓存区的缓存时长的下限值,作为该拉流端所需的直播缓存时长;该第二时延阈值小于或等于该下限值。
进一步可选地,拉流位置确定模块402在根据该往返时延,确定该拉流端所需的直播缓存时长,包括:若该往返时延小于该缓存区的缓存时长的上限值且大于该缓存区的缓存时长的下限值,则从预设的多个阈值范围中,确定该往返时延所属的目标阈值范围;该多个阈值范围各自对应的直播缓存时长不同;根据该目标阈值范围对应的目标直播缓存时长,确定该拉流端所需的直播缓存时长。
进一步可选地,拉流位置确定模块402在根据该目标阈值范围对应的目标直播缓存时长,确定该拉流端所需的直播缓存时长时,具体用于:获取该拉流端的卡顿数据;若该卡顿数据满足设定的卡顿条件,则将该目标直播缓存时长的设定倍数,作为该拉流端对应的直播缓存时长;该设定倍数为大于1的正整数。
进一步可选地,该缓存区的缓存时长为画面组的时长的倍数,该画面组的时长由推流端设置。
在本实施例中,针对单个拉流用户,服务器可获取单个拉流端的网络质量,根据网络质量,从缓存区已缓存的直播数据中确定拉流起始位置,并从该拉流起始位置开始,向所述拉流端发送直播数据。在这种实施方式中,服务器侧充分考虑了单个拉流端的实际网络状况,差异化地调整不同拉流端的拉流起始位置,从而可在利用缓存减少直播卡顿的场景下,平衡单个拉流端的直播时延与卡顿情况,有利于降低网络质量较佳的用户的直播时延,并缓解网络质量较差的用户的直播卡顿现象。
图5示意了本申请一示例性实施例提供的服务器的结构示意图,该服务器适用于前述实施例提供的直播数据推送方法。如图5所示,该服务器包括:存储器501以及处理器502。
存储器501,用于存储计算机程序,并可被配置为存储其它各种数据以支持在服务器上的操作。这些数据的示例包括用于在服务器上操作的任何应用程序或方法的指令。
其中,存储器501可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器502,与存储器501耦合,用于执行存储器501中的计算机程序,以用于:响应拉流端的拉流请求,获取该拉流端的网络质量;根据该网络质量,从缓存区已缓存的直播数据中确定拉流起始位置;从该拉流起始位置开始,向该拉流端发送直播数据。
进一步可选地,处理器502在根据该网络质量,从已缓存的直播数据中确定拉流起始位置时,具体用于:根据该网络质量,确定该拉流端的往返时延;根据该往返时延,确定该拉流端所需的直播缓存时长;该往返时延与该直播缓存时长呈正相关关系;根据该直播缓存时长,从该缓存区中已缓存的直播数据中确定该拉流起始位置。
进一步可选地,处理器502在根据该往返时延,确定该拉流端所需的直播缓存时长时,具体用于:若该往返时延大于或等于预设的第一时延阈值,则确定该缓存区的缓存时长的上限值,作为该拉流端所需的直播缓存时长;该第一时延阈值大于或等于该上限值。
进一步可选地,处理器502在根据该往返时延,确定该拉流端所需的直播缓存时长时,具体用于:若该往返时延小于或等于预设的第二时延阈值,则确定该缓存区的缓存时长的下限值,作为该拉流端所需的直播缓存时长;该第二时延阈值小于或等于该下限值。
进一步可选地,处理器502在根据该往返时延,确定该拉流端所需的直播缓存时长时,具体用于:若该往返时延小于该缓存区的缓存时长的上限值且大于该缓存区的缓存时长的下限值,则从预设的多个阈值范围中,确定该往返时延所属的目标阈值范围;该多个阈值范围各自对应的直播缓存时长不同;根据该目标阈值范围对应的目标直播缓存时长,确定该拉流端所需的直播缓存时长。
进一步可选地,处理器502在根据该目标阈值范围对应的目标直播缓存时长,确定该拉流端所需的直播缓存时长,包括:获取该拉流端的卡顿数据;若该卡顿数据满足设定的卡顿条件,则将该目标直播缓存时长的设定倍数,作为该拉流端对应的直播缓存时长;该设定倍数为大于1的正整数。
进一步可选地,该缓存区的缓存时长为画面组的时长的倍数,该画面组的时长由推流端设置。
进一步,如图5所示,该服务器还包括:电源组件504等其它组件。图5中仅示意性给出部分组件,并不意味着服务器只包括图5所示组件。
其中,通信组件503被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G或5G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术和其他技术来实现。
其中,电源组件504,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
在本实施例中,针对单个拉流用户,服务器可获取单个拉流端的网络质量,根据网络质量,从缓存区已缓存的直播数据中确定拉流起始位置,并从该拉流起始位置开始,向所述拉流端发送直播数据。在这种实施方式中,服务器侧充分考虑了单个拉流端的实际网络状况,差异化地调整不同拉流端的拉流起始位置,从而可在利用缓存减少直播卡顿的场景下,平衡单个拉流端的直播时延与卡顿情况,有利于降低网络质量较佳的用户的直播时延,并缓解网络质量较差的用户的直播卡顿现象。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由服务器执行的各步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (8)
1.一种直播数据推送方法,其特征在于,包括:
响应拉流端的拉流请求,获取所述拉流端的网络质量;
根据所述网络质量,从缓存区已缓存的直播数据中确定拉流起始位置;
从所述拉流起始位置开始,向所述拉流端发送直播数据;
其中,根据所述网络质量,从缓存区已缓存的直播数据中确定拉流起始位置,包括:根据所述网络质量,确定所述拉流端的往返时延;根据所述往返时延,确定所述拉流端所需的直播缓存时长;所述往返时延与所述直播缓存时长呈正相关关系;根据所述直播缓存时长,从所述缓存区中已缓存的直播数据中确定所述拉流起始位置;
其中,根据所述往返时延,确定所述拉流端所需的直播缓存时长,包括:
若所述往返时延小于所述缓存区的缓存时长的上限值且大于所述缓存区的缓存时长的下限值,则从预设的多个阈值范围中,确定所述往返时延所属的目标阈值范围;所述多个阈值范围各自对应的直播缓存时长不同;根据拉流端的卡顿情况以及所述目标阈值范围对应的目标直播缓存时长,确定所述拉流端所需的直播缓存时长。
2.根据权利要求1所述的方法,其特征在于,根据所述往返时延,确定所述拉流端所需的直播缓存时长,包括:
若所述往返时延大于或等于预设的第一时延阈值,则确定所述缓存区的缓存时长的上限值,作为所述拉流端所需的直播缓存时长;所述第一时延阈值大于或等于所述上限值。
3.根据权利要求1所述的方法,其特征在于,根据所述往返时延,确定所述拉流端所需的直播缓存时长,包括:
若所述往返时延小于或等于预设的第二时延阈值,则确定所述缓存区的缓存时长的下限值,作为所述拉流端所需的直播缓存时长;所述第二时延阈值小于或等于所述下限值。
4.根据权利要求1所述的方法,其特征在于,根据所述目标阈值范围对应的目标直播缓存时长,确定所述拉流端所需的直播缓存时长,包括:
获取所述拉流端的卡顿数据;
若所述卡顿数据满足设定的卡顿条件,则将所述目标直播缓存时长的设定倍数,作为所述拉流端对应的直播缓存时长;所述设定倍数为大于1的正整数。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述缓存区的缓存时长为画面组的时长的倍数,所述画面组的时长由推流端设置。
6.一种直播数据推送装置,其特征在于,包括:
网络质量获取模块,响应拉流端的拉流请求,获取所述拉流端的网络质量;
拉流位置确定模块,根据所述网络质量,从缓存区已缓存的直播数据中确定拉流起始位置;
数据发送模块,用于从所述拉流起始位置开始,向所述拉流端发送直播数据;
其中,所述拉流位置确定模块具体用于:根据所述网络质量,确定所述拉流端的往返时延;根据所述往返时延,确定所述拉流端所需的直播缓存时长;所述往返时延与所述直播缓存时长呈正相关关系;根据所述直播缓存时长,从所述缓存区中已缓存的直播数据中确定所述拉流起始位置;
其中,所述拉流位置确定模块具体用于:若所述往返时延小于所述缓存区的缓存时长的上限值且大于所述缓存区的缓存时长的下限值,则从预设的多个阈值范围中,确定所述往返时延所属的目标阈值范围;所述多个阈值范围各自对应的直播缓存时长不同;根据拉流端的卡顿情况以及所述目标阈值范围对应的目标直播缓存时长,确定所述拉流端所需的直播缓存时长。
7.一种服务器,其特征在于,包括:存储器和处理器;
所述存储器用于存储一条或多条计算机指令;
所述处理器用于执行所述一条或多条计算机指令以用于:执行权利要求1-5任一项所述的方法中的步骤。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,计算机程序被处理器执行时能够实现权利要求1-5任一项所述的直播数据推送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210316750.4A CN114697695B (zh) | 2022-03-28 | 2022-03-28 | 直播数据推送方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210316750.4A CN114697695B (zh) | 2022-03-28 | 2022-03-28 | 直播数据推送方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114697695A CN114697695A (zh) | 2022-07-01 |
CN114697695B true CN114697695B (zh) | 2024-03-08 |
Family
ID=82141085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210316750.4A Active CN114697695B (zh) | 2022-03-28 | 2022-03-28 | 直播数据推送方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114697695B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132705B (zh) * | 2023-04-17 | 2023-06-09 | 北京盘腾科技有限公司 | 一种直播缓存量的调节方法、装置、设备及存储介质 |
CN117221617B (zh) * | 2023-09-28 | 2024-08-20 | 杭州星犀科技有限公司 | 直播推流系统、方法及计算机存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822502A (zh) * | 2020-12-28 | 2021-05-18 | 阿里巴巴(中国)有限公司 | 直播去抖动的智能缓存与直播方法、设备及存储介质 |
CN112822503A (zh) * | 2020-12-30 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 直播视频流的播放方法、装置、设备及存储介质 |
CN113259706A (zh) * | 2021-06-28 | 2021-08-13 | 北京新唐思创教育科技有限公司 | 直播处理方法、装置、电子设备以及存储介质 |
CN113645477A (zh) * | 2021-08-09 | 2021-11-12 | 杭州米络星科技(集团)有限公司 | 直播数据处理方法、装置、直播客户端设备及存储介质 |
CN113766261A (zh) * | 2021-09-06 | 2021-12-07 | 百果园技术(新加坡)有限公司 | 一种确定预拉取时长方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7733808B2 (en) * | 2006-11-10 | 2010-06-08 | Microsoft Corporation | Peer-to-peer aided live video sharing system |
CN107846633B (zh) * | 2016-09-18 | 2023-07-14 | 腾讯科技(深圳)有限公司 | 一种直播方法及系统 |
-
2022
- 2022-03-28 CN CN202210316750.4A patent/CN114697695B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822502A (zh) * | 2020-12-28 | 2021-05-18 | 阿里巴巴(中国)有限公司 | 直播去抖动的智能缓存与直播方法、设备及存储介质 |
CN112822503A (zh) * | 2020-12-30 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 直播视频流的播放方法、装置、设备及存储介质 |
CN113259706A (zh) * | 2021-06-28 | 2021-08-13 | 北京新唐思创教育科技有限公司 | 直播处理方法、装置、电子设备以及存储介质 |
CN113645477A (zh) * | 2021-08-09 | 2021-11-12 | 杭州米络星科技(集团)有限公司 | 直播数据处理方法、装置、直播客户端设备及存储介质 |
CN113766261A (zh) * | 2021-09-06 | 2021-12-07 | 百果园技术(新加坡)有限公司 | 一种确定预拉取时长方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114697695A (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114697695B (zh) | 直播数据推送方法、装置、设备及存储介质 | |
US10547659B2 (en) | Signaling and processing content with variable bitrates for adaptive streaming | |
US10764610B2 (en) | Media user client, a media user agent and respective methods performed thereby for providing media from a media server to the media user client | |
CN108063769B (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
CN111836059B (zh) | 一种媒体流发送方法、装置和设备 | |
US9967303B2 (en) | Throttling a media stream for transmission via a radio access network | |
CA2758763C (en) | Method and device for fast pushing unicast stream in fast channel change | |
US11863841B2 (en) | Video playing control method and system | |
RU2753576C2 (ru) | Способ изменения канала и соответствующее устройство | |
US9680904B2 (en) | Adaptive buffers for media players | |
CN108881931B (zh) | 一种数据缓冲方法及网络设备 | |
CN111277885B (zh) | 音视频同步方法、装置、服务器和计算机可读存储介质 | |
WO2024021777A9 (zh) | 一种数据传输的方法、相关装置、设备以及存储介质 | |
JP2023130418A (ja) | クライアント、サーバ、受信方法及び送信方法 | |
CN113573062B (zh) | 流量整形方法、装置与电子设备 | |
US20150095447A1 (en) | Serving method of cache server, cache server, and system | |
CN111866526B (zh) | 一种直播业务处理方法和装置 | |
CN101964716B (zh) | 一种实现流业务的方法及通信系统以及相关设备 | |
CN116436865A (zh) | 多路径传输的重注入控制方法、电子设备及存储介质 | |
US11910033B2 (en) | Streaming server, transmission method, and program | |
JP6890977B2 (ja) | 送信装置、送信方法、およびプログラム | |
CN117499688B (zh) | 直播连麦中音视频合流处理方法、设备及存储介质 | |
US20240236409A9 (en) | Electronic apparatus, server apparatus and control method thereof | |
US20240223832A1 (en) | Video stream bitrate adjustment method and apparatus, computer device, and storage medium | |
CN116170612A (zh) | 一种直播的实现方法、边缘节点、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |