CN109495768A - 一种视频内容下发方法、服务器及限速器 - Google Patents
一种视频内容下发方法、服务器及限速器 Download PDFInfo
- Publication number
- CN109495768A CN109495768A CN201710811290.1A CN201710811290A CN109495768A CN 109495768 A CN109495768 A CN 109495768A CN 201710811290 A CN201710811290 A CN 201710811290A CN 109495768 A CN109495768 A CN 109495768A
- Authority
- CN
- China
- Prior art keywords
- target
- code rate
- source code
- rate
- video
- 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.)
- Pending
Links
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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/23805—Controlling the feeding rate to the network, e.g. by controlling the video pump
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施方式公开了一种视频内容下发方法、服务器及限速器,其中,所述方法包括:接收客户端发来的视频加载请求,所述视频加载请求指向目标视频,所述目标视频中包括至少一个视频片段;基于所述视频加载请求,确定当前需要向所述客户端反馈的目标视频片段;确定所述目标视频片段对应的目标源码率,并根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率;按照所述目标下发码率向所述客户端下发所述目标视频片段。本申请提供的技术方案,能够有效地控制下发码率的大小,进而提高视频内容下发的效率。
Description
技术领域
本申请涉及互联网技术领域,特别涉及一种视频内容下发方法、服务器及限速器。
背景技术
随着互联网技术的不断发展,人们越来越习惯于在视频播放网站中在线观看视频。视频播放网站的服务器在接收到用户的客户端发来的视频加载请求后,可以将视频内容下发到用户的客户端。当前的视频播放网站为了提高视频内容下发的稳定性,通常可以采用内容分发网络(Content Delivery Network,CDN)的架构。
在CDN中可以包括多个边缘节点,该边缘节点可以按照地理位置进行划分,并且在边缘节点上可以存储视频内容。这样,当用户的客户端发起视频加载请求后,该视频加载请求可以由距离该客户端较近的边缘节点接收,然后可以通过该较近的边缘节点向客户端下发相应的视频内容,从而保证数据传输网络的稳定。
当前,边缘节点在向客户端下发视频内容时,可以基于客户端所具备的网络带宽来决定视频内容的下发码率。通常而言,边缘节点会最大化地利用客户端的网络带宽,使得视频内容的下发码率达到最大,从而能够在较短的时间内向客户端下发较多的视频内容。
然而,这样最大化利用客户端的网络带宽的方式,会使得客户端在短时间内无法流畅地从事其它网络活动。例如,在一开始加载视频内容时,客户端的网络带宽会全部被占用,在这种情况下用户便无法在客户端中流畅地浏览网页或者玩网络游戏。
为了解决上述的问题,部分视频网站方会对边缘节点的下发码率进行限速。例如,可以将边缘节点的下发码率限制在8Mbps以下。然而,视频在播放过程中,视频的源码率是在不断变化的,很有可能在某个时间段视频的源码率就高于边缘节点限制的下发码率,这样会导致视频播放卡顿。
由上可见,当前视频内容的下发方法,无论是最大化地利用客户端的网络带宽,还是简单地对边缘节点的下发码率进行限速,都无法有效地控制下发码率的大小,从而导致视频内容下发的效率不高。
发明内容
本申请实施方式的目的是提供一种视频内容下发方、服务器及限速器,能够有效地控制下发码率的大小,进而提高视频内容下发的效率。
为实现上述目的,本申请实施方式提供一种视频内容下发方法,所述方法包括:接收客户端发来的视频加载请求,所述视频加载请求指向目标视频,所述目标视频中包括至少一个视频片段;基于所述视频加载请求,确定当前需要向所述客户端反馈的目标视频片段;确定所述目标视频片段对应的目标源码率,并根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率;按照所述目标下发码率向所述客户端下发所述目标视频片段。
为实现上述目的,本申请实施方式还提供一种视频内容下发服务器,所述服务器包括:网络通信端口、存储器及处理器,其中:所述网络通信端口,用于与客户端进行数据交互;所述存储器,用于存储目标视频,所述目标视频中包括至少一个视频片段;所述处理器,用于通过所述网络通信端口接收所述客户端发来的视频加载请求,所述视频加载请求指向所述目标视频;基于所述视频加载请求,确定当前需要向所述客户端反馈的目标视频片段;确定所述目标视频片段对应的目标源码率,并根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率;控制所述网络通信端口按照所述目标下发码率向所述客户端下发所述目标视频片段。
为实现上述目的,本申请实施方式还提供一种视频内容下发方法,所述方法包括:接收服务器提供的目标视频片段,并确定所述目标视频片段对应的目标源码率;根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率;按照所述目标下发码率向客户端下发所述目标视频片段。
为实现上述目的,本申请实施方式还提供一种限速器,所述限速器包括:存储器和处理器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:接收服务器提供的目标视频片段,并确定所述目标视频片段对应的目标源码率;根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率;按照所述目标下发码率向客户端下发所述目标视频片段。
由上可见,本申请提供的技术方案,服务器在向客户端下发目标视频时,可以依次向客户端下发该目标视频中的各个视频片段。针对当前准备向客户端下发的目标视频片段而言,服务器可以确定该目标视频片段对应的目标源码率。该目标源码率可以表征所述目标视频片段在播放时对应的平均源码率。为了使得目标视频片段能够流畅播放,可以保证服务器下发目标视频片段的目标下发码率能够大于所述目标源码率。而为了保证不过分占用客户端的网络带宽,可以在所述目标源码率的基础上,确定出与该目标源码率相适配的目标下发码率。所述目标下发码率可以大于所述目标源码率,而又不会导致目标下发码率与目标源码率之间相差过大。这样,按照该目标下发码率下发目标视频片段时,能够有效地控制下发码率的大小,进而提高视频内容下发的效率。
附图说明
为了更清楚地说明本申请实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施方式中视频内容下发方法交互图;
图2为本申请实施方式中目标下发码率与源码率均值示意图;
图3为本申请实施方式中视频内容下发服务器的结构示意图;
图4为本申请实施方式中包含限速器的***架构示意图;
图5为本申请实施方式中限速器的视频内容下发方法交互图;
图6为本申请实施方式中限速器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都应当属于本申请保护的范围。
本申请实施方式提供一种视频内容下发方法,所述方法可以应用于服务器和客户端的***架构中。其中,所述服务器可以是视频播放网站的业务服务器,也可以是CDN中的边缘节点服务器。所述服务器可以是单独的服务器,也可以是由多个服务器构成的服务器集群。所述客户端可以是用户使用的具备网络通信功能和图像显示功能的电子设备。具体地,所述客户端例如可以是台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备、导购终端、智能电视机等。或者,所述客户端也可以为能够运行于上述电子设备中的视频网站的软件。例如,所述客户端可以是哔哩哔哩、Acfun、腾讯视频等。
请参阅图1,本申请提供一种视频内容下发方法,所述下发方法可以应用于服务器中,所述方法包括以下步骤。
S11:接收客户端发来的视频加载请求,所述视频加载请求指向目标视频,所述目标视频中包括至少一个视频片段。
在本实施方式中,用户通过客户端浏览视频播放网站的页面时,可以选中页面中目标视频的缩略图或者链接。这样,所述客户端便可以向视频播放网站的服务器发送指向该目标视频的视频加载请求。
在本实施方式中,所述视频加载请求可以是遵循网络通信协议进行编写的字符串。例如,所述视频加载请求可以是HTTP请求。所述网络通信协议可以限定所述视频加载请求中包含的字段以及各个字段的排列顺序。例如,所述视频加载请求中从左向右依次可以包括目标地址字段、源地址字段以及视频标识字段。其中,所述目标地址字段中可以填写视频播放网站的服务器的IP地址,所述源地址字段中可以填写客户端自身的IP地址,所述视频标识字段可以填写所述目标视频在所述服务器中存储的路径或者名称。这样,所述视频加载请求便可以从所述客户端发送至所述服务器中。
在本实施方式中,客户端从服务器处获取目标视频时,可以分段获取所述目标视频的内容。具体地,所述目标视频可以被划分为至少一个视频片段。客户端向服务器发送视频加载请求后,服务器可以向客户端提供相应的视频片段。这样,服务器在向客户端下发完当前的视频片段之后,可以中止向客户端提供更多的视频内容,而是等到客户端换再次发来视频加载请求时,再向客户端下发后续的视频片段。需要说明的是,客户端一开始向服务器发送的视频加载请求可以是通过用户的行为触发的。而客户端后续向服务器发送的视频加载请求可以是客户端根据视频的播放进度自动向服务器发送的。例如,客户端首次加载目标视频时,服务器可以向客户端下发播放时间在0秒至20秒的视频片段。当该视频片段播放至15秒时,客户端可以自动向服务器再次发送视频加载请求,以从所述服务器中获取播放时间在20秒至40秒的视频片段。
S13:基于所述视频加载请求,确定当前需要向所述客户端反馈的目标视频片段。
在本实施方式中,服务器在接收到所述客户端发来的视频加载请求后,可以确定当前需要向客户端反馈的目标视频片段。具体地,在一个实施方式中,所述目标视频中包含的各个视频片段可以具备各自的片段标识。例如,所述目标视频包括10个视频片段,那么这10个视频片段的片段标识便可以是从1至10。当然,在实际应用场景中,为了与其它视频中视频片段的片段标识进行区分,可以在1至10之前加上所述目标视频的标识。例如,所述目标视频中的10个视频片段的片段标识可以依次为A1至A10,其中A就可以是所述目标视频的标识。这样,服务器在向客户端提供视频片段时,可以将该视频片段的片段标识一并提供给客户端。这样,客户端在接收到视频片段的信息时,便可以知晓当前加载的是目标视频中的哪个视频片段。在后续向服务器再次发送视频加载请求时,可以基于之前接收到的片段标识,确定出当前所需加载的视频片段的片段标识,并将确定出的片段标识添加于视频加载请求中。例如,客户端之前接收到的视频片段的片段标识为A6,那么再次向服务器发送视频加载请求时,可以在该视频加载请求中添加A7的片段标识。这样,服务器在接收到所述视频加载请求时,可以识别该视频加载请求中是否携带片段标识。如果携带,服务器便可以将所述目标视频中具备所述视频加载请求中携带的片段标识的视频片段作为需要向客户端提供的目标视频片段。此外,客户端首次向服务器发送视频加载请求时,还可以在视频加载请求中缺省片段标识。这样,当所述视频加载请求中没有携带片段标识时时,服务器便可以知晓客户端是首次加载所述目标视频,此时,服务器可以将所述目标视频中的第一个视频片段作为需要向客户端下发的目标视频片段。
需要说明的是,所述视频加载请求中携带的片段标识也可以是最近一次完成接收的视频片段的片段标识。例如,服务器向客户端提供了片段标识为A4的视频片段后,客户端需要继续向服务器请求加载片段标识为A5的视频片段,而客户端可以不对片段标识进行处理,只将服务器上次提供的片段标识A4添加于本次即将发送的视频加载请求中。此时,所述视频加载请求中携带的片段标识便可以是已经完成加载的视频片段的片段标识。这样,服务器在接收到本次发送的视频加载请求后,可以知晓片段标识为A4的视频片段已经完成了下发,从而可以向客户端下发片段标识为A5的视频片段。
S15:确定所述目标视频片段对应的目标源码率,并根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率。
在本实施方式中,为了能够合理地设置所述目标视频片段的下发码率,可以预先确定所述目标视频片段对应的目标源码率。所述目标源码率可以表征所述目标视频片段在播放时的平均码率。
在本实施方式中,服务器可以根据所述目标视频片段的总数据量以及总时长来估算所述目标源码率。具体地,目标视频中的各个视频片段可以具备各自的数据信息,所述数据信息中可以包括视频片段的总数据量以及视频片段的总时长。这样,服务器可以读取所述数据信息,从而可以获取所述目标视频片段的总数据量以及所述目标视频片段的总时长。在计算目标视频片段的目标源码率时,可以将所述总数据量与所述总时长的比值作为所述目标视频片段对应的目标源码率。例如,所述目标视频片段的总数据量为20兆,总时长为10秒,那么计算出的所述目标源码率便可以是2Mbps。此外,在一个实施方式中,视频片段的文件头信息(header)中可以存储所述视频片段的源码率。这样,在确定所述目标视频片段的目标源码率时,可以读取所述目标视频片段的文件头信息,并将从所述文件头信息中提取的源码率作为所述目标视频片段对应的目标源码率。
在本实施方式中,所述目标视频片段可以由多个数据包构成,每个数据包可以具备各自的时间戳,所述时间戳用于表征所述数据包在目标视频片段播放时所对应的时间节点。例如,所述目标视频片段包括10个数据包,那么这10个数据包分别可以对应ts1至ts10这10个时间戳。这样,在确定所述目标视频片段的总时长时,可以读取所述目标视频片段中第一个数据包的第一时间戳以及最后一个数据包的第二时间戳,将所述第二时间戳与所述第一时间戳的差值作为所述目标视频片段的总时长。
在本实施方式中,在确定所述目标视频片段对应的目标源码率时,除了可以按照上述对所述目标视频片段的总数据量和总时长进行分析外,还可以通过已经完成下发的视频片段的源码率来预测所述目标视频片段的目标源码率。这样处理的原因在于,有时候在所述目标视频片段未完成下发时,其总数据量和总时长可能无法获取。考虑到目标视频中相邻视频片段之间的内容通常会存在一定的关联性,视频画面的构成也存在相似之处,那么相邻两个视频片段的源码率也可能比较接近。基于此,在确定所述目标视频片段的目标源码率时,可以获取向所述客户端下发的上一个视频片段的信息。在所述服务器中,每当有视频片段完成下发后,便可以在本地记录该视频片段的信息。所述信息中可以包括所述上一个视频片段的总数据量以及所述上一个视频片段的总时长。这样,服务器便可以计算所述信息中的所述总数据量与所述总时长的比值,该比值便可以作为所述上一个视频片段的源码率均值。在本实施方式中,可以将计算出的该源码率均值作为所述目标视频片段对应的目标源码率。当然,该目标源码率是基于上一个视频片段预测的,在实际应用中可能并不准确,但可以通过一些校正手段对该预测的目标源码率进行调整,具体的调整方式在后文再说明。
在本实施方式中,确定了所述目标视频片段的目标源码率之后,可以根据所述目标源码率确定用于下发所述目标视频片段的目标下发码率。具体地,为了保证用户观看视频的流畅性,又要保证下发码率不会过分占用客户端的带宽,可以使得所述目标下发码率大于所述目标源码率,而所述目标下发码率又不会比所述目标源码率大太多。在实际应用场景中,可以将所述目标源码率与第一波动系数的乘积作为所述目标下发码率。所述第一波动系数可以是大于1的数值,所述第一波动系数可以根据所述目标视频片段实际播放时的码率来确定。具体地,可以获取所述目标视频片段在播放过程中的码率最大值和码率均值,然后可以将所述码率最大值与所述码率均值的比值作为所述第一波动系数。例如,所述目标视频片段在播放过程中,码率最大值为4Mbps,而码率均值为2Mbps,那么所述第一波动系数便可以是2。通过将所述目标源码率与所述第一波动系数相乘得到目标下发码率,从而可以使得目标下发码率始终大于或者等于目标视频片段在播放过程中的实时码率,并且所述目标下发码率也不会比所述目标视频片段的实时码率大太多,这样即可以保证用户观看视频的流畅性,又可以保证下发码率不会过分占用客户端的带宽。
S17:按照所述目标下发码率向所述客户端下发所述目标视频片段。
在本实施方式中,在确定出所述目标下发码率后,服务器便可以按照所述目标下发码率向所述客户端下发所述目标视频片段。由于所述目标下发码率比所述目标视频片段的目标源码率大,因此在所述目标视频片段还未播放结束时,服务器便可以将所述目标视频片段下发至客户端中。当所述目标视频片段下发完成时,服务器可以中止向所述客户端下发数据,直至所述客户端发来下一个视频加载请求为止。这样,服务器在向客户端下发所述目标视频时,实际的下发码率变化曲线可以如图2所示。在图2中,虚线可以表示服务器下发视频片段时所采用的下发码率,实线则表示视频片段在播放时的平均源码率。从图2中可以看出,在下发完一个视频片段后,服务器的下发码率便会降至0(实际应用场景中可能不会严格为0),直至接收到下一个视频加载请求后,再开始下发下一个视频片段。从图2中可以看出,服务器下发视频片段的下发码率被控制在一个合理的范围内。
在本实施方式中,步骤S15中确定出的目标源码率可能会存在不准确的情况,从而导致在实际下发目标视频片段时,目标下发码率会小于目标视频片段当前的实际源码率,此时就需要对目标下发码率进行调整,以保证客户端中可以播放流畅的视频。具体地,服务器在下发目标视频片段时,可以将所述目标下发码率与所述目标视频片段当前的实际源码率进行对比,当所述目标下发码率小于所述实际源码率时,可以对所述目标下发码率进行调整,以使得调整后的目标下发码率大于所述实际源码率,并按照所述调整后的目标下发码率继续向所述客户端下发所述目标视频片段。具体地,在调整所述目标下发码率时,服务器可以将所述目标源码率与第二波动系数的乘积作为调整后的目标下发码率。其中,所述第二波动系数可以是根据历史传输情况总结出的一个数值,并且所述第二波动系数往往大于所述第一波动系数,从而可以通过所述第二波动系数对所述目标下发码率进行提速。具体地,所述第二波动系数可以是一个固定数值。例如所述第二波动系数常用的数值可以为8。此外,所述第二波动系数还可以与所述第一波动系数具备倍数关系。例如,所述第二波动系数可以是所述第一波动系数的2倍。
在一个实施方式中,还可以根据所述实际源码率与所述目标下发码率之间的差值来对所述目标下发码率进行调整。具体地,服务器可以计算所述实际源码率与所述目标下发码率之间的差值,并将所述差值放大指定倍数后得到增益码率。所述指定倍数可以是预先设定的一个大于1的常量。例如,所述指定倍数为1.5。这样,可以将所述目标下发码率与所述增益码率之和作为调整后的目标下发码率,从而保证调整后的目标下发码率能够大于实际源码率,并且采用指定倍数的冗余处理,可以进一步应对后续实际源码率的波动。
在一个实施方式中,在根据上一个完成下发的视频片段的源码率来确定目标视频片段的目标下发码率时,可能会由于上一个视频片段的源码率过小,而导致确定出的目标下发码率也过小。相邻两个视频片段之间也可能存在场景切换的情况,这就导致相邻两个视频片段的实际源码率相差也较大。如果按照较小的目标下发码率来下发所述目标视频片段,会导致目标下发码率会远小于所述目标视频片段实际的源码率。基于此,在本实施方式中,当所述目标源码率小于指定码率阈值时,可以获取所述目标视频对应的至少一个历史下发码率。其中,所述指定码率阈值可以是预先设定的常量。例如,所述指定码率阈值可以为500kbps。当目标下发码率小于该指定码率阈值时,则可以认为确定出的目标下发码率过小,需要进行调整。在进行调整时,可以参考已经完成下发的视频片段对应的历史下发码率。这样,所述目标视频对应的至少一个历史下发码率便可以是已经完成下发的视频片段对应的历史下发码率。在获取了所述至少一个历史下发码率后,服务器可以将所述至少一个历史下发码率中的最大码率作为所述目标下发码率,或者可以将所述至少一个历史下发码率的码率均值作为所述目标下发码率,以使得调整后的目标下发码率不会过小。
请参阅图3,本申请还提供一种视频内容下发服务器,所述服务器包括:网络通信端口100、存储器200及处理器300。
其中,所述网络通信端口100,用于与客户端进行数据交互。
所述存储器200,用于存储目标视频,所述目标视频中包括至少一个视频片段。
所述处理器300,用于通过所述网络通信端口接收所述客户端发来的视频加载请求,所述视频加载请求指向所述目标视频;基于所述视频加载请求,确定当前需要向所述客户端反馈的目标视频片段;确定所述目标视频片段对应的目标源码率,并根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率;控制所述网络通信端口按照所述目标下发码率向所述客户端下发所述目标视频片段。
在本实施方式中,所述网络通信端口可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的80号端口,也可以是负责进行FTP数据通信的21号端口,还可以是负责进行邮件数据通信的25号端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施方式中,所述存储器包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。
在本实施方式中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
本说明书实施方式提供的视频内容下发服务器,其网络通信端口、存储器和处理器实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
在本申请中,对下发的目标视频片段的限速过程还可以通过限速器来完成。请参阅图4,所述限速器可以与视频网站的服务器保持通信连接,并且可以向客户端下发相应的视频片段。具体地,请参阅图5,所述限速器执行的视频内容下发方法可以包括以下步骤。
S21:接收服务器提供的目标视频片段,并确定所述目标视频片段对应的目标源码率。
S23:根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率。
S25:按照所述目标下发码率向客户端下发所述目标视频片段。
在本实施方式中,当服务器需要向客户端下发目标视频片段时,可以将需要下发的目标视频片段发送至限速器中,然后由所述限速器来限定所述目标视频片段的下发码率。这样,当所述限速器接收到所述服务器提供的目标视频片段后,可以确定所述目标视频片段对应的目标源码率。具体地可以按照前述实施方式中描述的方案来确定所述目标源码率。并且可以按照前述实施方式中描述的方案来基于所述目标源码率确定所述目标视频片段对应的目标下发码率,以及按照所述目标下发码率向客户端下发所述目标视频片段。
在本实施方式中,具体步骤的实现过程与前述实施方式中描述的方案均一致,这里便不再赘述。由上可见,本申请中对目标下发码率进行限定的功能,可以集成于视频网站的服务器中,还可以由独立的限速器来完成。因此,本领域技术人员在领会本申请的技术精髓后,将部分技术步骤进行组合或者分割,或者将部分技术步骤的执行主体进行更改,只要其实现的具体功能与本申请一致或者类似,均应当属于本申请的保护范围内。
请一并参阅图5和图6,本申请还提供一种限速器,所述限速器包括:存储器和处理器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤。
S21:接收服务器提供的目标视频片段,并确定所述目标视频片段对应的目标源码率。
S23:根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率。
S25:按照所述目标下发码率向客户端下发所述目标视频片段。
在本实施方式中,所述存储器包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。
在本实施方式中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
本说明书实施方式提供的限速器,其存储器和处理器实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
由上可见,本申请提供的技术方案,服务器在向客户端下发目标视频时,可以依次向客户端下发该目标视频中的各个视频片段。针对当前准备向客户端下发的目标视频片段而言,服务器可以确定该目标视频片段对应的目标源码率。该目标源码率可以表征所述目标视频片段在播放时对应的平均源码率。为了使得目标视频片段能够流畅播放,可以保证服务器下发目标视频片段的目标下发码率能够大于所述目标源码率。而为了保证不过分占用客户端的网络带宽,可以在所述目标源码率的基础上,确定出与该目标源码率相适配的目标下发码率。所述目标下发码率可以大于所述目标源码率,而又不会导致目标下发码率与目标源码率之间相差过大。这样,按照该目标下发码率下发目标视频片段时,能够有效地控制下发码率的大小,进而提高视频内容下发的效率。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现服务器和限速器以外,完全可以通过将方法步骤进行逻辑编程来使得服务器和限速器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种服务器和限速器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对服务器和限速器的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施方式描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (18)
1.一种视频内容下发方法,其特征在于,所述方法包括:
接收客户端发来的视频加载请求,所述视频加载请求指向目标视频,所述目标视频中包括至少一个视频片段;
基于所述视频加载请求,确定当前需要向所述客户端反馈的目标视频片段;
确定所述目标视频片段对应的目标源码率,并根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率;
按照所述目标下发码率向所述客户端下发所述目标视频片段。
2.根据权利要求1所述的方法,其特征在于,确定所述目标视频片段对应的目标源码率包括:
读取所述目标视频片段的文件头信息,并将从所述文件头信息中提取的源码率作为所述目标视频片段对应的目标源码率;
或者
获取所述目标视频片段的总数据量以及所述目标视频片段的总时长,并将所述总数据量与所述总时长的比值作为所述目标视频片段对应的目标源码率。
3.根据权利要求2所述的方法,其特征在于,所述目标视频片段中包括多个数据包;相应地,所述目标视频片段的总时长按照下述方式确定:
读取所述多个数据包中第一个数据包的第一时间戳以及最后一个数据包的第二时间戳,将所述第二时间戳与所述第一时间戳的差值作为所述目标视频片段的总时长。
4.根据权利要求1所述的方法,其特征在于,确定所述目标视频片段对应的目标源码率包括:
获取向所述客户端下发的上一个视频片段的信息,所述信息中包括所述上一个视频片段的总数据量以及所述上一个视频片段的总时长;
将所述信息中的所述总数据量与所述总时长的比值作为所述目标视频片段对应的目标源码率。
5.根据权利要求1所述的方法,其特征在于,根据所述目标源码率确定目标下发码率包括:
将所述目标源码率与第一波动系数的乘积作为所述目标下发码率;
其中,所述第一波动系数按照下述方式确定:
获取所述目标视频片段在播放过程中的码率最大值和码率均值,并将所述码率最大值与所述码率均值的比值作为所述第一波动系数。
6.根据权利要求1或5所述的方法,其特征在于,按照所述目标下发码率向所述客户端下发所述目标视频片段时,所述方法还包括:
将所述目标下发码率与所述目标视频片段当前的实际源码率进行对比,当所述目标下发码率小于所述实际源码率时,对所述目标下发码率进行调整,以使得调整后的目标下发码率大于所述实际源码率;
按照所述调整后的目标下发码率继续向所述客户端下发所述目标视频片段。
7.根据权利要求6所述的方法,其特征在于,对所述目标下发码率进行调整包括:
将所述目标源码率与第二波动系数的乘积作为调整后的目标下发码率;其中,所述第二波动系数大于第一波动系数;
或者
计算所述实际源码率与所述目标下发码率之间的差值,并将所述差值放大指定倍数后得到增益码率;
将所述目标下发码率与所述增益码率之和作为调整后的目标下发码率。
8.根据权利要求1所述的方法,其特征在于,根据所述目标源码率确定目标下发码率包括:
当所述目标源码率小于指定码率阈值时,获取所述目标视频对应的至少一个历史下发码率;
将所述至少一个历史下发码率中的最大码率作为所述目标下发码率或者将所述至少一个历史下发码率的码率均值作为所述目标下发码率。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目标视频片段下发完成时,中止向所述客户端下发数据,直至所述客户端发来下一个视频加载请求为止。
10.根据权利要求1所述的方法,其特征在于,所述目标视频中的视频片段具备片段标识;
相应地,基于所述视频加载请求,确定当前需要向所述客户端反馈的目标视频片段包括:
当所述视频加载请求中携带片段标识时,将所述目标视频中具备所述视频加载请求中携带的片段标识的视频片段作为所述目标视频片段;
当所述视频加载请求中没有携带片段标识时时,将所述目标视频中的第一个视频片段作为所述目标视频片段。
11.一种视频内容下发服务器,其特征在于,所述服务器包括:网络通信端口、存储器及处理器,其中:
所述网络通信端口,用于与客户端进行数据交互;
所述存储器,用于存储目标视频,所述目标视频中包括至少一个视频片段;
所述处理器,用于通过所述网络通信端口接收所述客户端发来的视频加载请求,所述视频加载请求指向所述目标视频;基于所述视频加载请求,确定当前需要向所述客户端反馈的目标视频片段;确定所述目标视频片段对应的目标源码率,并根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率;控制所述网络通信端口按照所述目标下发码率向所述客户端下发所述目标视频片段。
12.一种视频内容下发方法,其特征在于,所述方法包括:
接收服务器提供的目标视频片段,并确定所述目标视频片段对应的目标源码率;
根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率;
按照所述目标下发码率向客户端下发所述目标视频片段。
13.根据权利要求12所述的方法,其特征在于,确定所述目标视频片段对应的目标源码率包括:
读取所述目标视频片段的文件头信息,并将从所述文件头信息中提取的源码率作为所述目标视频片段对应的目标源码率;
或者
获取所述目标视频片段的总数据量以及所述目标视频片段的总时长,并将所述总数据量与所述总时长的比值作为所述目标视频片段对应的目标源码率;
或者
获取向所述客户端下发的上一个视频片段的信息,所述信息中包括所述上一个视频片段的总数据量以及所述上一个视频片段的总时长;将所述信息中的所述总数据量与所述总时长的比值作为所述目标视频片段对应的目标源码率。
14.根据权利要求12所述的方法,其特征在于,根据所述目标源码率确定目标下发码率包括:
将所述目标源码率与第一波动系数的乘积作为所述目标下发码率;
其中,所述第一波动系数按照下述方式确定:
获取所述目标视频片段在播放过程中的码率最大值和码率均值,并将所述码率最大值与所述码率均值的比值作为所述第一波动系数。
15.根据权利要求12或14所述的方法,其特征在于,按照所述目标下发码率向客户端下发所述目标视频片段时,所述方法还包括:
将所述目标下发码率与所述目标视频片段当前的实际源码率进行对比,当所述目标下发码率小于所述实际源码率时,对所述目标下发码率进行调整,以使得调整后的目标下发码率大于所述实际源码率;
按照所述调整后的目标下发码率继续向所述客户端下发所述目标视频片段。
16.根据权利要求15所述的方法,其特征在于,对所述目标下发码率进行调整包括:
将所述目标源码率与第二波动系数的乘积作为调整后的目标下发码率;其中,所述第二波动系数大于第一波动系数;
或者
计算所述实际源码率与所述目标下发码率之间的差值,并将所述差值放大指定倍数后得到增益码率;
将所述目标下发码率与所述增益码率之和作为调整后的目标下发码率。
17.根据权利要求12所述的方法,其特征在于,根据所述目标源码率确定目标下发码率包括:
当所述目标源码率小于指定码率阈值时,获取所述目标视频对应的至少一个历史下发码率;
将所述至少一个历史下发码率中的最大码率作为所述目标下发码率或者将所述至少一个历史下发码率的码率均值作为所述目标下发码率。
18.一种限速器,其特征在于,所述限速器包括:存储器和处理器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:
接收服务器提供的目标视频片段,并确定所述目标视频片段对应的目标源码率;
根据所述目标源码率确定目标下发码率;其中,所述目标下发码率大于所述目标源码率;
按照所述目标下发码率向客户端下发所述目标视频片段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710811290.1A CN109495768A (zh) | 2017-09-11 | 2017-09-11 | 一种视频内容下发方法、服务器及限速器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710811290.1A CN109495768A (zh) | 2017-09-11 | 2017-09-11 | 一种视频内容下发方法、服务器及限速器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109495768A true CN109495768A (zh) | 2019-03-19 |
Family
ID=65687601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710811290.1A Pending CN109495768A (zh) | 2017-09-11 | 2017-09-11 | 一种视频内容下发方法、服务器及限速器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109495768A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050091696A1 (en) * | 2003-09-15 | 2005-04-28 | Digital Networks North America, Inc. | Method and system for adaptive transcoding and transrating in a video network |
CN101765003A (zh) * | 2008-12-23 | 2010-06-30 | 上海茂碧信息科技有限公司 | 在不同速率网络环境下传输音频和视频的方法 |
CN106210925A (zh) * | 2015-05-05 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 一种实时媒体流的编解码方法和装置 |
CN106851337A (zh) * | 2017-02-21 | 2017-06-13 | 聚好看科技股份有限公司 | 视频缓冲控制方法及装置 |
-
2017
- 2017-09-11 CN CN201710811290.1A patent/CN109495768A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050091696A1 (en) * | 2003-09-15 | 2005-04-28 | Digital Networks North America, Inc. | Method and system for adaptive transcoding and transrating in a video network |
CN101765003A (zh) * | 2008-12-23 | 2010-06-30 | 上海茂碧信息科技有限公司 | 在不同速率网络环境下传输音频和视频的方法 |
CN106210925A (zh) * | 2015-05-05 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 一种实时媒体流的编解码方法和装置 |
CN106851337A (zh) * | 2017-02-21 | 2017-06-13 | 聚好看科技股份有限公司 | 视频缓冲控制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9510043B2 (en) | Pre-buffering audio streams | |
US9979772B2 (en) | Data streaming method of an electronic device and the electronic device thereof | |
CN110636346B (zh) | 一种码率自适应切换方法、装置、电子设备及存储介质 | |
US9401968B2 (en) | Method and apparatus for enabling pre-fetching of media | |
CN102948126B (zh) | 生成和处理流媒体体验质量度量的方法和装置 | |
US10104704B2 (en) | Dynamic acceleration of prioritized mobile application traffic | |
CN109314793B (zh) | 提供自适应流服务的方法及流服务器 | |
US20160072713A1 (en) | Load balancing and migration of transport connections | |
US9356985B2 (en) | Streaming video to cellular phones | |
US11582146B2 (en) | High-quality adaptive bitrate video through multiple links | |
WO2013150378A1 (en) | Systems and methods for loading more than one video contient at a time | |
CN110662017B (zh) | 一种视频播放质量检测方法和装置 | |
CN107920274A (zh) | 一种视频处理方法、客户端及服务器 | |
CN104113770A (zh) | 网页视频点播方法和装置 | |
EP2903260A1 (en) | Multi-speed playing method, device and system | |
US10375444B2 (en) | Partial video pre-fetch | |
CN108270807A (zh) | 一种数据传输方法及装置 | |
US10291943B2 (en) | Node interworking with base station and method for providing streaming data through the node | |
CN103561013B (zh) | 流媒体的数据分发*** | |
EP3235258B1 (en) | Adjusting quality level of media streaming | |
CN109495768A (zh) | 一种视频内容下发方法、服务器及限速器 | |
CN108141804A (zh) | 用于使用异构网络提供数据服务的装置和方法 | |
CN114844870B (zh) | 一种媒体流获取方法、装置、电子设备及存储介质 | |
US20230388590A1 (en) | Playback optimization method and system | |
JP6740110B2 (ja) | データ配信システム、通信端末、及びプログラム |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200513 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C Applicant before: Youku network technology (Beijing) Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190319 |