视频码率调整方法、设备和系统、视频编码方法和服务器与流程

文档序号:14072328阅读:237来源:国知局

本发明涉及视频传送技术领域,尤其是一种视频码率调整方法和系统、视频编码方法、客户端、及视频服务器。



背景技术:

在视频直播或其他视频分发领域中,为了保障用户的视频体验,视频服务器须根据承载网络的实际性能或用户需求,采用不同的码率编码或前向纠错编码等应用层编码优化技术来调整视频码率,以便个性化的服务于全部用户。

但是,为了实现用户定制化和个性化服务,视频服务器需要动态监控、维护全部用户的网络状态和个性化需求,这严重制约了视频服务器提供大规模服务时的可扩展性。并且,服务器侧的状态监控受限于监控的精准度和实时性,很难完全符合全部用户的实际需求,优化效果受限。



技术实现要素:

本发明的一个目的是:提出一种视频码率调整方法,能够通过客户端来实现视频码率的调整。

根据本发明的一方面,提供一种视频码率调整方法,包括:客户端向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率;其中,播放的视频包括主码流或者包括主码流和所述可叠加码流。

在一个实施例中,客户端响应于用户对视频码率的需求向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率;或者客户端根据监测到的网络质量自动向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率。

在一个实施例中,所述可叠加码流包括一个或多个用于增加视频清晰度的码流,每个用于增加视频清晰度的码流对应不同的组播频道,用于增加不同程度的视频清晰度。

在一个实施例中,所述客户端响应于用户对视频码率的需求向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率包括:响应于用户增大视频清晰度的需求,客户端确定要获取的一个或多个用于增加视频清晰度的码流,并向承载网络请求加入要获取的用于增加视频清晰度的码流对应的组播频道;响应于用户减小视频清晰度的需求,客户端确定要舍弃的一个或多个用于增加视频清晰度的码流,并向承载网络请求离开要舍弃的用于增加视频清晰度的码流对应的组播频道。

在一个实施例中,所述客户端根据监测到的网络质量自动向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率包括:客户端确定与网络质量匹配的视频清晰度对应的目标视频码率;若目标视频码率大于当前视频码率,则客户端根据目标视频码率与当前视频码率的差异确定要获取的用于增加视频清晰度的码流,并向承载网络请求加入要获取的用于增加视频清晰度的码流对应的组播频道;若目标视频码率小于当前视频码率,则客户端根据目标视频码率与当前视频码率的差异确定要舍弃的用于增加视频清晰度的码流,并向承载网络请求离开要舍弃的用于增加视频清晰度的码流对应的组播频道。

在一个实施例中,所述可叠加码流包括一个或多个用于提供更高冗余度的码流;每个用于提供更高冗余度的码流对应不同的组播频道,用于提供不同程度的冗余度;所述客户端根据监测到的网络质量自动向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率包括:客户端比较网络丢包率与预设值的大小;若网络丢包率大于预设值,则客户端根据网络丢包率确定要获取的一个或多个用于提供更高冗余度的码流,并向承载网络请求加入要获取的用于提供更高冗余度的码流对应的组播频道;在客户端加入要获取的用于提供更高冗余度的码流对应的组播频道后,若网络丢包率变得小于或等于预设值,则客户端向承载网络请求离开所加入的用于提供更高冗余度的码流对应的组播频道。

根据本发明的另一方面,提供一种视频编码方法,包括:视频服务器将原始视频流拆分为主码流和可叠加码流;视频服务器将所述主码流和所述可叠加码流分别封装到承载网络中不同的组播频道。

在一个实施例中,所述可叠加码流包括用于增加视频清晰度的码流和用于提供更高冗余度的码流,每个可叠加码流对应不同的组播频道。

在一个实施例中,所述主码流对应的组播频道地址与所述可叠加码流对应的组播频道地址相互关联。

根据本发明的又一方面,提供一种客户端,包括:码率调整单元,用于向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率;其中,播放的视频包括主码流或者包括主码流和所述可叠加码流。

在一个实施例中,所述码率调整单元具体用于响应于用户对视频码率的需求向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率;或者根据监测到的网络质量自动向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率。

在一个实施例中,所述可叠加码流包括一个或多个用于增加视频清晰度的码流,每个用于增加视频清晰度的码流对应不同的组播频道,用于增加不同程度的视频清晰度。

在一个实施例中,所述码率调整单元包括:需求分析模块,用于响应于用户增大视频清晰度的需求,确定要获取的一个或多个用于增加视频清晰度的码流;响应于用户减小视频清晰度的需求,确定要舍弃的一个或多个用于增加视频清晰度的码流;组播请求模块,用于向承载网络请求加入要获取的用于增加视频清晰度的码流对应的组播频道;向承载网络请求离开要舍弃的用于增加视频清晰度的码流对应的组播频道。

在一个实施例中,所述码率调整单元包括:网络质量分析模块,用于确定与网络质量匹配的视频清晰度对应的目标视频码率;码流确定模块,用于若目标视频码率大于当前视频码率,则根据目标视频码率与当前视频码率的差异确定要获取的用于增加视频清晰度的码流;若目标视频码率小于当前视频码率,则根据目标视频码率与当前视频码率的差异确定要舍弃的用于增加视频清晰度的码流;组播请求模块,用于向承载网络请求加入要获取的用于增加视频清晰度的码流对应的组播频道;向承载网络请求离开要舍弃的用于增加视频清晰度的码流对应的组播频道。

在一个实施例中,所述可叠加码流包括一个或多个用于提供更高冗余度的码流;每个用于提供更高冗余度的码流对应不同的组播频道,用于提供不同程度的冗余度;所述码率调整单元包括:网络质量分析模块,用于比较网络丢包率与预设值的大小;码流确定模块,用于若网络丢包率大于预设值,则根据网络丢包率确定要获取的一个或多个用于提供更高冗余度的码流;组播请求模块,用于向承载网络请求加入要获取的用于提供更高冗余度的码流对应的组播频道在客户端加入要获取的用于提供更高冗余度的码流对应的组播频道后,若网络丢包率变得小于或等于预设值,则客户端向承载网络请求离开所加入的用于提供更高冗余度的码流对应的组播频道。

根据本发明的再一方面,提供一种视频服务器,包括:拆分单元,用于将原始视频流拆分为主码流和可叠加码流;封装单元,用于将所述主码流和所述可叠加码流分别封装到承载网络中不同的组播频道。

在一个实施例中,所述可叠加码流包括用于增加视频清晰度的码流和用于提供更高冗余度的码流,每个可叠加码流对应不同的组播频道。

在一个实施例中,所述主码流和所述可叠加码流的组播频道地址相互关联。

根据本发明的还一方面,提供一种视频码率调整系统,包括:上述任意一个实施例所述的客户端和上述任意一个实施例所述的视频服务器。

本发明实施例提出利用客户端来实现视频码率的调整,具体地,客户端通过加入或离开可叠加码流对应的组播频道即可调整播放视频的视频码率,与现有技术中通过视频服务器实现视频码率的调整相比,本发明视频码率调整方法无需服务器干预,准确度和实时性都更好,并且大幅度降低了服务器的负担,可有效提升大规模视频服务的可扩展性。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明一个实施例的视频编码方法的流程示意图;

图2示出了视频编码方法的一个例子的示意图;

图3是根据本发明一个实施例的视频码率调整方法的流程示意图;

图4是根据本发明一个实施例的客户端的结构示意图;

图5是根据发明一个实施例的码率调整单元的结构示意图;

图6是根据发明另一个实施例的码率调整单元的结构示意图;

图7是根据发明又一个实施例的码率调整单元的结构示意图;

图8是根据本发明一个实施例的视频服务器的结构示意图;

图9是根据本发明一个实施例的视频码率调整系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1是根据本发明一个实施例的视频编码方法的流程示意图。如图1所示,该方法包括如下步骤:

步骤102,视频服务器将原始视频流拆分为主码流和可叠加码流。

这里,可以通过视频编码器将原始视频流拆分为主码流和可叠加码流。主码流为适合主流用户需求和网络条件的码流。可叠加码流可以包括但不限于用于增加视频清晰度的码流、以及用于提供更高冗余度的码流等等(如图2所示)。例如,可以通过可变码率编码技术得到用于增加视频清晰度的码流。又例如,可以通过前向纠错(fec)编码技术得到用于提供更高冗余度的码流,以适应不同的网络条件。

主码流与用于增加视频清晰度的码流叠加后可以提高视频清晰度,例如视频码率从480p提高到720p等。主码流与用于提供更高冗余度的码流叠加后可以克服不同程度的网络丢包,例如1%丢包率、5%丢包率等。

需要说明的是,上述可叠加码流的类型可以根据实际情况进行增加或删减,以满足用户更多的个性化需求。

步骤104,视频服务器将主码流和可叠加码流分别封装到承载网络中不同的组播频道。

参考图2,例如,可以通过网络编码器将主码流和可叠加码流分别封装到承载网络中不同的组播频道,每个可叠加码流可以对应不同的组播频道。在一个实施例中,主码流对应的组播频道地址与可叠加码流对应的组播频道地址可以相互关联,也即主频道的地址与组播频道1-1、组播频道1-2、组播频道2-1、组播频道2-2的地址可以相互关联。例如,可以通过预设算法(例如哈希算法等)将可叠加码流的关键字(例如类型、码率等)映射成一个单独的数值,然后将该数值与主码流对应的组播频道地址相加,从而得到每个可叠加码流的组播频道地址。

在完成网络层编码后,该视频节目即可为用户提供服务。

本实施例将应用层编码技术与网络层组播技术结合,将应用层的视频流拆分,进而将拆分的码流分别映射到不同的组播频道中,从而可以在客户端实现分布式的视频码率的动态调整。

下面介绍通过客户端实现视频码率调整方法。

图3是根据本发明一个实施例的视频码率调整方法的流程示意图。如图3所示,该方法包括:

步骤302,客户端向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率。这里,播放的视频可以包括主码流或者可以包括主码流和可叠加码流。主码流和可叠加码流被封装到承载网络中不同的组播频道。在一个实施例中,可叠加码流可以包括一个或多个用于增加视频清晰度的码流,每个用于增加视频清晰度的码流对应不同的组播频道,用于增加不同程度的视频清晰度。在另一个实施例中,可叠加码流可以包括一个或多个用于提供更高冗余度的码流;每个用于提供更高冗余度的码流对应不同的组播频道,用于提供不同程度的冗余度。应理解,可叠加码流并不限于上述两种类型的码流,在其他的实施例中,可叠加码流还可以根据实际情况包括其他类型的码流。

例如,客户端当前播放的视频仅包括主码流,通过向承载网络请求加入可叠加码流对应的组播频道,客户端可以获取到相应的可叠加码流,例如,客户端加入图2所示的组播频道1-1后,视频码率可以从480p增加到720p,此时播放的视频包括主码流和组播频道1-1对应的可叠加码流。

又例如,客户端当前播放的视频包括主码流和图2所示的组播频道1-1对应的可叠加码流,通过向承载网络请求离开可叠加码流对应的组播频道,客户端可以舍弃相应的可叠加码流,例如,客户端离开图2所示的组播频道1-1后,视频码率便从720p减小到480p,此时播放的视频仅包括主码流。

本实施例中,客户端通过加入或离开可叠加码流对应的组播频道即可调整播放视频的视频码率,这种视频码率调整方法无需视频服务器干预,准确度和实时性都更好,并且大幅度降低了视频服务器的负担,可有效提升大规模视频服务的可扩展性。

在实际应用中,可以通过不同的方式来触发客户端进行视频码率的调整,本发明提供了如下两种方式。

在一种触发方式下,客户端可以响应于用户对视频码率的需求向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率。

例如,响应于用户增大视频清晰度的需求,客户端可以确定要获取的一个或多个用于增加视频清晰度的码流,并向承载网络请求加入要获取的用于增加视频清晰度的码流对应的组播频道。响应于用户减小视频清晰度的需求,客户端确定要舍弃的一个或多个用于增加视频清晰度的码流,并向承载网络请求离开要舍弃的用于增加视频清晰度的码流对应的组播频道。

举例来说,参考图2,假设当前视频码率为480p,若用户请求将视频码率增大到720p,则客户端据此可以确定要获取的可叠加码流,之后可以请求加入对应的组播频道1-1。这里,客户端在确定要获取的可叠加码流后,可以根据预设算法(例如哈希算法)来确定要获取的可叠加码流对应的组播频道,然后请求加入所确定的组播频道;或者,客户端中可以预先保存有服务器发送的不同的可叠加码流对应的组播频道,在确定要获取的可叠加码流后可以直接请求加入对应的组播频道。若用户继续请求将视频码率增大到1080p,则客户端可以再请求加入组播频道1-2。

在另一种触发方式下,客户端可以根据监测到的网络质量自动向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率。

在一个具体实现方式中,客户端可以确定与网络质量匹配的视频清晰度对应的目标视频码率;若目标视频码率大于当前视频码率,则客户端根据目标视频码率与当前视频码率的差异确定要获取的用于增加视频清晰度的码流,并向承载网络请求加入要获取的用于增加视频清晰度的码流对应的组播频道;若目标视频码率小于当前视频码率,则客户端根据目标视频码率与当前视频码率的差异确定要舍弃的用于增加视频清晰度的码流,并向承载网络请求离开要舍弃的用于增加视频清晰度的码流对应的组播频道。

在另一个具体实现方式中,客户端可以比较网络丢包率与预设值的大小;若网络丢包率大于预设值,则客户端根据网络丢包率确定要获取的一个或多个用于提供更高冗余度的码流,并向承载网络请求加入要获取的用于提供更高冗余度的码流对应的组播频道;在客户端加入要获取的用于提供更高冗余度的码流对应的组播频道后,若网络丢包率变得小于或等于预设值,则客户端向承载网络请求离开所加入的用于提供更高冗余度的码流对应的组播频道。

上述两种触发方式只需每个客户端根据用户需求和自身所处的网络质量即可触发视频码率的调整,这种方式能够更好地适应用户个性化需求和网络环境,并且无需视频服务器来监测每个用户的需求以及所处网络环境,大大降低了视频服务器的压力,提升了视频服务器的可扩展性。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于客户端和服务器实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

图4是根据本发明一个实施例的客户端的结构示意图。如图4所示,客户端可以包括码率调整单元401,用于向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率,播放的视频可以包括主码流或者可以包括主码流和可叠加码流。

本实施例的客户端通过加入或离开可叠加码流对应的组播频道即可调整播放视频的视频码率,这种视频码率调整方法无需服务器干预,准确度和实时性都更好,并且大幅度降低了服务器的负担,可有效提升大规模视频服务的可扩展性。

在一个实现方式中,码率调整单元401具体可以用于响应于用户对视频码率的需求向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率;或者可以根据监测到的网络质量自动向承载网络请求加入或离开可叠加码流对应的组播频道,以调整播放视频的视频码率。每个客户端可以根据用户需求和自身所处的网络质量即可触发视频码率的调整,这种方式能够更好地适应用户个性化需求和网络环境,并且无需视频服务器来监测每个用户的需求以及所处网络环境,大大降低了视频服务器的压力,提升了视频服务器的可扩展性。图5是根据发明一个实施例的码率调整单元的结构示意图。图6是根据发明另一个实施例的码率调整单元的结构示意图。在图5和图6所示实施例中,可叠加码流可以包括一个或多个用于增加视频清晰度的码流,每个用于增加视频清晰度的码流对应不同的组播频道,用于增加不同程度的视频清晰度。

如图5所示,码率调整单元401可以包括需求分析模块411和组播请求模块421。

需求分析模块411用于响应于用户增大视频清晰度的需求,确定要获取的一个或多个用于增加视频清晰度的码流;响应于用户减小视频清晰度的需求,确定要舍弃的一个或多个用于增加视频清晰度的码流。组播请求模块421用于向承载网络请求加入要获取的用于增加视频清晰度的码流对应的组播频道;向承载网络请求离开要舍弃的用于增加视频清晰度的码流对应的组播频道。

如图6所示,码率调整单元401可以包括网络质量分析模块431、码流确定模块441和组播请求模块451。

网络质量分析模块431用于确定与网络质量匹配的视频清晰度对应的目标视频码率。码流确定模块441用于若目标视频码率大于当前视频码率,则根据目标视频码率与当前视频码率的差异确定要获取的用于增加视频清晰度的码流;若目标视频码率小于当前视频码率,则根据目标视频码率与当前视频码率的差异确定要舍弃的用于增加视频清晰度的码流。组播请求模块451用于向承载网络请求加入要获取的用于增加视频清晰度的码流对应的组播频道;向承载网络请求离开要舍弃的用于增加视频清晰度的码流对应的组播频道。

图7是根据发明又一个实施例的码率调整单元的结构示意图。该实施例中,可叠加码流包括一个或多个用于提供更高冗余度的码流;每个用于提供更高冗余度的码流对应不同的组播频道,用于提供不同程度的冗余度。

如图7所示,码率调整单元401可以包括网络质量分析模块461、码流确定模块471和组播请求模块481。

网络质量分析模块461用于比较网络丢包率与预设值的大小。码流确定模块471,用于若网络丢包率大于预设值,则根据网络丢包率确定要获取的一个或多个用于提供更高冗余度的码流。组播请求模块481用于向承载网络请求加入要获取的用于提供更高冗余度的码流对应的组播频道在客户端加入要获取的用于提供更高冗余度的码流对应的组播频道后,若网络丢包率变得小于或等于预设值,则客户端向承载网络请求离开所加入的用于提供更高冗余度的码流对应的组播频道。

图8是根据本发明一个实施例的视频服务器的结构示意图。如图8所示,视频服务器可以包括拆分单元801和封装单元802。拆分单元801用于将原始视频流拆分为主码流和可叠加码流。封装单元802用于将主码流和可叠加码流分别封装到承载网络中不同的组播频道。在一个实施例中,可叠加码流可以包括用于增加视频清晰度的码流和用于提供更高冗余度的码流,每个可叠加码流对应不同的组播频道。在一个实施例中,主码流和可叠加码流的组播频道地址可以相互关联。

图9是根据本发明一个实施例的视频码率调整系统的结构示意图。如图9所示,视频码率调整系统可以包括上述任意一个实施例所述的客户端901和上述任意一个实施例所述的视频服务器902。

本实施例中,视频服务器将应用层的视频流拆分成主码流和可叠加码流,进而将拆分后的码流分别映射到不同的组播频道中,客户端通过加入或离开可叠加码流对应的组播频道即可调整播放视频的视频码率,这种视频码率调整方法无需视频服务器干预,准确度和实时性都更好,并且大幅度降低了视频服务器的负担,可有效提升大规模视频服务的可扩展性。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

本发明提供的视频码率调整方法和视频编码方法适于但不限于视频直播领域。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1