一种实时视频转码的方法及系统与流程

文档序号:11657753阅读:304来源:国知局
一种实时视频转码的方法及系统与流程

本发明涉及视频转码的技术领域,更具体地,涉及一种实时视频转码的方法及系统。



背景技术:

视频转码,是将已压缩编码的视频码流解码后重新编码压缩,转换为另一种视频码流的过程。通过视频转码可以适应具有不同网络带宽、不同终端处理能力等不同的用户需求。随着互联网和多媒体播放技术的不断发展,视频数据量增大,用户对视频的清晰度要求增高,视频文件增大,特别是随着全景视频及虚拟现实技术的兴起,对视频转码速率及转码后所获得视频的清晰度都有较高要求。

在一些视频播放领域,例如,体育赛事直播,视频播放的时效性极为重要,过时的体育赛事视频就会极大地降低用户的观看兴趣。而不同用户端的解码处理能力及网络带宽也不相同,这对于转码后的高清晰度视频的传输,无疑会造成极大的挑战,从而使得在用户端观看视频时出现卡顿的现象,不利于用户观看体验。

传统的视频转码方式,是按事先设定的转码格式和码率对视频文件进行转码处理后进行存储,并根据用户请求向用户发送转码后的视频文件。但是这种方式的转码格式和码率均固定,不能适应所有用户环境下的视频转码播放需求,而且只能等视频转码处理好之后才能向用户发送转码过的视频,会造成视频播放的滞后,不利于现今视频的时效性要求。而目前的实时视频转码方式根据用户所请求的清晰度进行转码,但是由于视频转码格式、用户的播放屏幕大小及用户端解码能力不相同,导致最终转码后得到的视频清晰度不能完全达到用户的观看要求。

因此,提供一种基于用户端解码播放条件的实时视频解码方案是本领域亟待解决的问题。



技术实现要素:

有鉴于此,本发明提供了一种实时视频转码的方法及系统,解决了现有技术中不能基于用户视频解码播放条件进行提升画面清晰度的实时视频转码的技术问题。

为了解决上述技术问题,本发明提出一种实时视频转码的方法,包括:

接收客户端的视频播放请求,解析所述视频播放请求获得客户端的解码器型号、期望视频码率,根据所述视频播放请求从数据库中获取对应的视频;

监测所述客户端的带宽,根据所述带宽与所述期望视频码率的比值得到所述视频的码率提升率,根据所述码率提升率与预设的码率提升倍数的对应关系得到所述视频的码率提升倍数;将所述期望视频码率提升所述码率提升倍数得到目标码率;

根据所述带宽与所述目标码率的比值得到视频传输量,根据所述视频传输量与预设的转码格式对应关系得到所述视频的转码格式;

根据所述视频传输量、解码器型号与预设的视频转码切片中画面组数量对应关系得到所述视频的转码画面组数量;

以所述转码画面组数量的画面组为一个视频转码切片,将所述视频中未转码的图像帧进行切片得到待转码的视频切片;

将所述视频切片以所述目标码率及转码格式进行转码得到视频转码分片,并记录所述视频转码分片的时间戳;按时间戳从前往后的顺序将所述视频转码分片发送至所述客户端。

进一步地,其中,该方法包括:监测所述客户端的带宽,根据所述带宽与所述期望视频码率的比值得到所述视频的码率提升率,根据所述码率提升率与预设的码率提升倍数的对应关系得到所述视频的码率提升倍数;将所述期望视频码率提升所述码率提升倍数得到目标码率,进一步为:

监测所述客户端的带宽,在所述带宽大于或等于带宽阈值时,将所述期望视频码率提升固定提升倍数得到所述视频转码的目标码率;

在所述带宽小于所述带宽阈值时,根据所述带宽与所述期望视频码率的比值得到所述视频的码率提升率,根据所述码率提升率与预设的码率提升倍数的对应关系得到所述视频的码率提升倍数;将所述期望视频码率提升所述码率提升倍数得到目标码率。

进一步地,其中,监测所述客户端的带宽,在所述带宽大于或等于带宽阈值时,将所述期望视频码率提升固定提升倍数得到所述视频转码的目标码率为:

监测所述客户端的带宽,获取所述客户端在设定时间段内的历史带宽记录,计算所述历史带宽记录中带宽大于或等于带宽阈值的比例,在所述比例达到或超过比例阈值,且当前所述带宽大于或等于带宽阈值时,将所述期望视频码率提升固定提升倍数得到所述视频转码的目标码率;

在所述比例达到或超过比例阈值,且当前所述带宽小于所述带宽阈值时,将所述期望视频码率作为所述视频转码的目标码率。

进一步地,其中,以所述转码画面组数量的画面组为一个视频转码切片,将所述视频中未转码的图像帧进行切片得到待转码的视频切片为:

检测所述视频中未转码的图像帧的待转码画面组数量,在所述待转码画面组数量大于或等于所述转码画面组数量时,以所述转码画面组数量的画面组为一个视频转码切片,将所述视频中未转码的图像帧进行切片得到待转码的视频切片;

在所述待转码画面组数量小于所述转码画面组数量时,将所述未转码的图像帧作为所述待转码的视频切片。

进一步地,其中,该方法包括:

接收所述客户端的所述期望视频码率的调整请求,在调整后的所述期望视频码率小于当前所述期望视频码率时,将调整后的所述期望视频码率作为所述视频转码的目标码率。

另一方面,本发明还提供一种实时视频转码的系统,包括:视频播放请求接收模块、视频转码目标码率生成模块、视频转码格式获取模块、视频转码画面组数量获取模块、待转码视频切片模块及视频切片转码模块;其中,

所述视频播放请求接收模块,用于与所述视频转码目标码率生成模块相连接,接收客户端的视频播放请求,解析所述视频播放请求获得客户端的解码器型号、期望视频码率,根据所述视频播放请求从数据库中获取对应的视频;

所述视频转码目标码率生成模块,用于与所述视频播放请求接收模块及视频转码格式获取模块相连接,监测所述客户端的带宽,根据所述带宽与所述期望视频码率的比值得到所述视频的码率提升率,根据所述码率提升率与预设的码率提升倍数的对应关系得到所述视频的码率提升倍数;将所述期望视频码率提升所述码率提升倍数得到目标码率;

所述视频转码格式获取模块,用于与所述视频转码目标码率生成模块及视频切片转码模块相连接,根据所述带宽与所述目标码率的比值得到视频传输量,根据所述视频传输量与预设的转码格式对应关系得到所述视频的转码格式;

所述视频转码画面组数量获取模块,用于与所述视频转码目标码率生成模块及待转码视频切片模块相连接,根据所述视频传输量、解码器型号与预设的视频转码切片中画面组数量对应关系得到所述视频的转码画面组数量;

所述待转码视频切片模块,用于与所述视频转码画面组数量获取模块及视频切片转码模块相连接,以所述转码画面组数量的画面组为一个视频转码切片,将所述视频中未转码的图像帧进行切片得到待转码的视频切片;

所述视频切片转码模块,用于与所述视频转码格式获取模块及待转码视频切片模块相连接,将所述视频切片以所述目标码率及转码格式进行转码得到视频转码分片,并记录所述视频转码分片的时间戳;按时间戳从前往后的顺序将所述视频转码分片发送至所述客户端。

进一步地,其中,所述视频转码目标码率生成模块,为:固定倍数目标码率生成单元及适应性倍数目标码率生成单元;其中,

所述固定倍数目标码率生成单元,用于与所述视频播放请求接收模块、视频转码格式获取模块及适应性倍数目标码率生成单元相连接,监测所述客户端的带宽,在所述带宽大于或等于带宽阈值时,将所述期望视频码率提升固定提升倍数得到所述视频转码的目标码率;

所述适应性倍数目标码率生成单元,用于与所述视频播放请求接收模块、视频转码格式获取模块及固定倍数目标码率生成单元相连接,在所述带宽小于所述带宽阈值时,根据所述带宽与所述期望视频码率的比值得到所述视频的码率提升率,根据所述码率提升率与预设的码率提升倍数的对应关系得到所述视频的码率提升倍数;将所述期望视频码率提升所述码率提升倍数得到目标码率。

进一步地,其中,所述视频转码目标码率生成模块,为:固定倍数目标码率生成单元、目标码率调整单元及适应性倍数目标码率生成单元;其中,

所述固定倍数目标码率生成单元,用于与所述视频播放请求接收模块、视频转码格式获取模块、适应性倍数目标码率生成单元及目标码率调整单元相连接,监测所述客户端的带宽,获取所述客户端在设定时间段内的历史带宽记录,计算所述历史带宽记录中带宽大于或等于带宽阈值的比例,在所述比例达到或超过比例阈值,且当前所述带宽大于或等于带宽阈值时,将所述期望视频码率提升固定提升倍数得到所述视频转码的目标码率;

所述目标码率调整单元,用于与所述适应性倍数目标码率生成单元及固定倍数目标码率生成单元相连接,在所述比例达到或超过比例阈值,且当前所述带宽小于所述带宽阈值时,将所述期望视频码率作为所述视频转码的目标码率;

所述适应性倍数目标码率生成单元,用于与所述视频播放请求接收模块、视频转码格式获取模块、固定倍数目标码率生成单元及目标码率调整单元相连接,在所述带宽小于所述带宽阈值时,根据所述带宽与所述期望视频码率的比值得到所述视频的码率提升率,根据所述码率提升率与预设的码率提升倍数的对应关系得到所述视频的码率提升倍数;将所述期望视频码率提升所述码率提升倍数得到目标码率。

进一步地,其中,所述待转码视频切片模块,为:视频切片单元及视频切片调整单元;其中,

所述视频切片单元,用于与所述视频转码画面组数量获取模块、视频切片转码模块及视频切片调整单元相连接,检测所述视频中未转码的图像帧的待转码画面组数量,在所述待转码画面组数量大于或等于所述转码画面组数量时,以所述转码画面组数量的画面组为一个视频转码切片,将所述视频中未转码的图像帧进行切片得到待转码的视频切片;

所述视频切片调整单元,用于与所述视频转码画面组数量获取模块、视频切片转码模块及视频切片单元相连接,在所述待转码画面组数量小于所述转码画面组数量时,将所述未转码的图像帧作为所述待转码的视频切片。

进一步地,其中,该系统还包括:视频码率调整模块,用于与所述视频转码目标码率生成模块相连接,接收所述客户端的所述期望视频码率的调整请求,在调整后的所述期望视频码率小于当前所述期望视频码率时,将调整后的所述期望视频码率作为所述视频转码的目标码率。

与现有技术相比,本发明的实时视频转码的方法及系统,实现了如下的有益效果:

(1)本发明所述的实时视频转码的方法及系统,在客户端请求转码码率的基础上,分析客户端的带宽及转码处理能力等转码条件,并根据客户端的当前转码条件对视频进行适度提升码率的分片转码后传输的方式,使得在客户端能够流畅地接收转码的视频并解码播放,实现了基于客户端条件的高清晰度实时视频转码,而有利于避免视频实时转码播放出现卡顿的现象。

(2)本发明所述的实时视频转码的方法及系统,实时监测客户端带宽信息,在一定带宽条件内适应性调整视频转码的码率,在带宽较好的条件下以适度的固定码率转码,既提高了客户端视频播放的清晰度,又不至于导致转码得到的视频数据过大,不便于转码、视频传输及解码。

(3)本发明所述的实时视频转码的方法及系统,接收客户端的降低码率的请求,并以客户端想要调整得到的码率进行视频转码,在客户端遇到带宽不稳定导致视频播放卡顿的时候,能够及时根据客户端请求降低播放清晰度,以保证视频能够正常播放,提升了用户的使用体验。

当然,实施本发明的任一产品必不特定需要同时达到以上所述的所有技术效果。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1为本发明实施例1中所述实时视频转码的方法的流程示意图;

图2为本发明实施例2中所述实时视频转码的方法的流程示意图;

图3为本发明实施例3中所述实时视频转码的方法的流程示意图;

图4为本发明实施例4中所述实时视频转码的方法的流程示意图;

图5为本发明实施例5中所述实时视频转码的方法的流程示意图;

图6为本发明实施例6中所述实时视频转码的系统的结构示意图;

图7为本发明实施例7中所述实时视频转码的系统的结构示意图;

图8为本发明实施例8中所述实时视频转码的系统的结构示意图;

图9为本发明实施例9中所述实时视频转码的系统的结构示意图;

图10为本发明实施例10中所述实时视频转码的系统的结构示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

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

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

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

实施例1

如图1所示,为本实施例所述实时视频转码的方法的流程示意图,本实施例提供了一种基于用户端解码播放条件的实时视频解码方法,该方法包括如下的步骤:

步骤101、接收客户端的视频播放请求,解析视频播放请求获得客户端的解码器型号、期望视频码率,根据视频播放请求从数据库中获取对应的视频。

现在用户通过客户端观看视频已经习以为常,特别是在移动终端上通过网络观看实时视频,如体育赛事视频等,而受限于移动网络带宽,在客户端观看视频时,不能满足用户对高清晰度的要求,但是,对于每个用户而言,带宽条件及转码和解码的条件也不尽相同。通过接收客户端发送的视频播放请求,从数据库中获取所请求播放的视频、用户终端的解码能力,用户终端的解码能力可以根据终端的硬件解码器或软件解码器的型号进行确定,以及从用户对视频播放请求中对清晰度的要求得到对应的期望转码码率,都是为后续提升视频播放清晰度转码进行前期准备工作。

步骤102、监测客户端的带宽,根据带宽与期望视频码率的比值得到视频的码率提升率,根据码率提升率与预设的码率提升倍数的对应关系得到视频的码率提升倍数;将期望视频码率增加码率提升倍数得到目标码率。

不同客户端的当前带宽不一样,如果都使用同样的视频转码播放方式进行转码播放,对带宽较好的用户来讲不能获得更高清晰度的视频播放,而对于带宽不太好的用户来讲,高清晰度的视频转码播放又会导致播放卡顿的问题,不利于用户观看体验。而用户当前带宽与期望视频码率的比值在一定程度上体现出了用户当前带宽所能承受的更高清晰度转码程度,通过实际视频观看得到的码率提升率与预设的码率提升倍数的对应关系,得到当前带宽所允许的较高清晰度转码,有利于针对每个用户端定制适合的视频转码播放方式。其中,码率提升倍数可以是期望视频码率的1至1.5倍。如果码率提升倍数太大会造成服务器转码的压力,转码的成本较高。

步骤103、根据带宽与目标码率的比值得到视频传输量,根据所述视频传输量与预设的转码格式对应关系得到所述视频的转码格式。

视频传输量能够反映转码后得到的转码视频在当前带宽下的传输能力,通过不同转码格式进行转码得到的转码视频大小及清晰度也不一样。根据实际情况,将各个视频传输量与最为合适的转码格式相对应,在确定某个客户端的当前视频传输量就可以自动获取其对应的转码格式,减少了视频转码过程中的人力消耗,降低了视频转码的成本。

步骤104、根据视频传输量、解码器型号与预设的视频转码切片中画面组数量对应关系得到视频的转码画面组数量。

如果将视频整体进行转码后在客户端进行解码播放,就需要将整个视频转码后传输至客户端,再进行整体解码,在此过程中,用户需要等待视频传输后整体解码,无疑会增大在客户端的解码播放压力,同时增加用户的等待时间,还可能会导致出现视频卡顿的问题。

步骤105、以转码画面组数量的画面组为一个视频转码切片,将视频中未转码的图像帧进行切片得到待转码的视频切片。

画面组是视频播放的基本单元,对视频进行切片转码过程中,以画面组为单位不会出现视频切片组合成整体视频后丢失视频画面的问题。对于一些视频,尤其是直播视频,通常是一边获取视频文件,一边转码播放,对获得的未转码的视频进行切片后转码播放能够提升视频播放的清晰度,同时提高客户端的视频解码播放效率。

步骤106、将视频切片以目标码率及转码格式进行转码得到视频转码分片,并记录视频转码分片的时间戳;按时间戳从前往后的顺序将视频转码分片发送至客户端。

视频切片转码后得到的视频转码分片传输至客户端时不一定是按照播放顺序排列的,只有按照视频播放的时间戳顺序传输视频分片,保证在客户端的视频解码播放顺序,才能使得视频以高清晰度正常播放。

实施例2

如图2所示,为本实施例所述实时视频转码的方法的流程示意图,本实施例是在上述实施例1基础上提供的一种优选实施例,该方法包括如下步骤:

步骤201、接收客户端的视频播放请求,解析视频播放请求获得客户端的解码器型号、期望视频码率,根据视频播放请求从数据库中获取对应的视频。

步骤202、监测客户端的带宽,在带宽大于或等于带宽阈值时,将期望视频码率提升固定提升倍数得到视频转码的目标码率。

提升视频转码的码率同时也会增加转码服务器的转码压力,转码得到的视频文件也会相应地增大。因此,需要设定一个码率提升倍数的上限值,以保证服务器上进行转码的成本不至于太高。可选地,该固定提升倍数可以在期望码率的1.5倍至2倍范围内。

步骤203、根据带宽与期望视频码率的比值得到视频的码率提升率,根据码率提升率与预设的码率提升倍数的对应关系得到视频的码率提升倍数;将期望视频码率增加码率提升倍数得到目标码率。

对于固定提升倍数之外的客户端,根据该客户端的实际转码条件获取适应性的码率提升倍数,既能够满足提升客户端视频播放清晰度的要求,又避免了转码视频文件过大造成视频播放卡顿的问题。其中,适应性的码率提升倍数可以在1倍至1.5倍的范围内。

步骤204、根据带宽与目标码率的比值得到视频传输量,根据视频传输量与预设的转码格式对应关系得到视频的转码格式。

步骤205、根据视频传输量、解码器型号与预设的视频转码切片中画面组数量对应关系得到视频的转码画面组数量。

步骤206、以转码画面组数量的画面组为一个视频转码切片,将视频中未转码的图像帧进行切片得到待转码的视频切片。

步骤207、将视频切片以目标码率及转码格式进行转码得到视频转码分片,并记录视频转码分片的时间戳;按时间戳从前往后的顺序将视频转码分片发送至客户端。

实施例3

如图3所示,为本实施例所述实时视频转码的方法的流程示意图,本实施例是在上述实施例2基础上提供的一种优选实施例,该方法包括如下步骤:

步骤301、接收客户端的视频播放请求,解析视频播放请求获得客户端的解码器型号、期望视频码率,根据视频播放请求从数据库中获取对应的视频。

步骤302、监测客户端的带宽,获取客户端在设定时间段内的历史带宽记录,计算历史带宽记录中带宽大于或等于带宽阈值的比例,在比例达到或超过比例阈值,且当前带宽大于或等于带宽阈值时,将期望视频码率提升固定提升倍数得到视频转码的目标码率。

步骤303、在比例达到或超过比例阈值,且当前带宽小于带宽阈值时,将期望视频码率作为视频转码的目标码率。

根据客户端历史带宽记录中带宽大于或等于带宽阈值的比例,反映出客户端带宽的一般情况,避免因带宽偶然因素向客户端发送超过客户端解码适应能力的视频,造成视频播放卡顿的问题。

步骤304、根据带宽与期望视频码率的比值得到视频的码率提升率,根据码率提升率与预设的码率提升倍数的对应关系得到视频的码率提升倍数;将期望视频码率增加码率提升倍数得到目标码率。

步骤305、根据带宽与目标码率的比值得到视频传输量,根据视频传输量与预设的转码格式对应关系得到视频的转码格式。

步骤306、根据视频传输量、解码器型号与预设的视频转码切片中画面组数量对应关系得到视频的转码画面组数量。

步骤307、以转码画面组数量的画面组为一个视频转码切片,将视频中未转码的图像帧进行切片得到待转码的视频切片。

步骤308、将视频切片以目标码率及转码格式进行转码得到视频转码分片,并记录视频转码分片的时间戳;按时间戳从前往后的顺序将视频转码分片发送至客户端。

实施例4

如图4所示,为本实施例所述实时视频转码的方法的流程示意图,本实施例是在上述实施例1基础上提供的一种优选实施例,该方法包括如下步骤:

步骤401、接收客户端的视频播放请求,解析视频播放请求获得客户端的解码器型号、期望视频码率,根据视频播放请求从数据库中获取对应的视频。

步骤402、监测客户端的带宽,根据带宽与期望视频码率的比值得到视频的码率提升率,根据码率提升率与预设的码率提升倍数的对应关系得到视频的码率提升倍数;将期望视频码率增加码率提升倍数得到目标码率。

步骤403、根据带宽与目标码率的比值得到视频传输量,根据视频传输量与预设的转码格式对应关系得到视频的转码格式。

步骤404、根据视频传输量、解码器型号与预设的视频转码切片中画面组数量对应关系得到视频的转码画面组数量。

步骤405、检测视频中未转码的图像帧的待转码画面组数量,在待转码画面组数量大于或等于转码画面组数量时,以转码画面组数量的画面组为一个视频转码切片,将视频中未转码的图像帧进行切片得到待转码的视频切片。

在对视频进行切片时,尤其对于一些实时直播的视频切片时,会出现一部分的画面组数量不够一个视频转码切片的情况,如果不对这部分剩余的画面组进行处理,会导致转码后画面组丢失的问题。因此,本实施例中将不够一个视频转码切片的剩余画面组组合成一个视频转码切片进行转码,有利于保证视频播放画面的连续性。

步骤406、在待转码画面组数量小于转码画面组数量时,将未转码的图像帧作为待转码的视频切片。

步骤407、将视频切片以目标码率及转码格式进行转码得到视频转码分片,并记录视频转码分片的时间戳;按时间戳从前往后的顺序将视频转码分片发送至客户端。

实施例5

如图5所示,为本实施例所述实时视频转码的方法的流程示意图,本实施例是在上述实施例1基础上提供的一种优选实施例,该方法包括如下的步骤:

步骤501、接收客户端的视频播放请求,解析视频播放请求获得客户端的解码器型号、期望视频码率,根据视频播放请求从数据库中获取对应的视频。

步骤502、监测客户端的带宽,根据带宽与期望视频码率的比值得到视频的码率提升率,根据码率提升率与预设的码率提升倍数的对应关系得到视频的码率提升倍数;将期望视频码率增加码率提升倍数得到目标码率。

步骤503、根据带宽与目标码率的比值得到视频传输量,根据视频传输量与预设的转码格式对应关系得到视频的转码格式。

步骤504、根据视频传输量、解码器型号与预设的视频转码切片中画面组数量对应关系得到视频的转码画面组数量。

步骤505、以转码画面组数量的画面组为一个视频转码切片,将视频中未转码的图像帧进行切片得到待转码的视频切片。

步骤506、将视频切片以目标码率及转码格式进行转码得到视频转码分片,并记录视频转码分片的时间戳;按时间戳从前往后的顺序将视频转码分片发送至客户端。

步骤507、接收客户端的期望视频码率的调整请求,在调整后的期望视频码率小于当前期望视频码率时,将调整后的期望视频码率作为视频转码的目标码率。

客户端在播放转码视频过程中也会遇到各种不确定因素,造成出现视频播放卡顿或不顺畅的问题。这时候,用户可以通过客户端请求降低视频播放的清晰度,转码服务器端接收到客户端的降低视频播放清晰度请求后通过调整对应的转码码率即可实现视频在客户端的正常播放。

实施例6

如图6所示,为本实施例所述实时视频转码的系统的结构示意图,本实施例所述系统用于实施上述实施例中所述实时视频转码的方法,该系统包括:视频播放请求接收模块601、视频转码目标码率生成模块602、视频转码格式获取模块603、视频转码画面组数量获取模块604、待转码视频切片模块605及视频切片转码模块606。

其中,视频播放请求接收模块601与视频转码目标码率生成模块602相连接,用于接收客户端的视频播放请求,解析视频播放请求获得客户端的解码器型号、期望视频码率,根据视频播放请求从数据库中获取对应的视频。

视频转码目标码率生成模块602与视频播放请求接收模块601及视频转码格式获取模块603相连接,用于监测客户端的带宽,根据带宽与期望视频码率的比值得到视频的码率提升率,根据码率提升率与预设的码率提升倍数的对应关系得到视频的码率提升倍数;将期望视频码率提升码率提升倍数得到目标码率。

视频转码格式获取模块603与视频转码目标码率生成模块602及视频切片转码模块606相连接,用于根据带宽与目标码率的比值得到视频传输量,根据视频传输量与预设的转码格式对应关系得到视频的转码格式。

视频转码画面组数量获取模块604与视频转码目标码率生成模块603及待转码视频切片模块605相连接,用于根据视频传输量、解码器型号与预设的视频转码切片中画面组数量对应关系得到视频的转码画面组数量。

待转码视频切片模块605与视频转码画面组数量获取模块604及视频切片转码模块606相连接,用于以转码画面组数量的画面组为一个视频转码切片,将视频中未转码的图像帧进行切片得到待转码的视频切片。

视频切片转码模块606与视频转码格式获取模块603及待转码视频切片模块605相连接,用于将视频切片以目标码率及转码格式进行转码得到视频转码分片,并记录视频转码分片的时间戳;按时间戳从前往后的顺序将视频转码分片发送至客户端。

实施例7

如图7所示,为本实施例所述实时视频转码的系统的结构示意图,本实施例是在上述实施例6基础上提供的一种优选实施例,该系统包括:视频播放请求接收模块701、视频转码目标码率生成模块702、视频转码格式获取模块703、视频转码画面组数量获取模块704、待转码视频切片模块705及视频切片转码模块706。

其中,视频播放请求接收模块701与视频转码目标码率生成模块702相连接,用于接收客户端的视频播放请求,解析视频播放请求获得客户端的解码器型号、期望视频码率,根据视频播放请求从数据库中获取对应的视频。

视频转码目标码率生成模块702进一步为:固定倍数目标码率生成单元721及适应性倍数目标码率生成单元722。

固定倍数目标码率生成单元721与视频播放请求接收模块701、视频转码格式获取模块703及适应性倍数目标码率生成单元722相连接,用于监测客户端的带宽,在带宽大于或等于带宽阈值时,将期望视频码率提升固定提升倍数得到视频转码的目标码率。

适应性倍数目标码率生成单元722与视频播放请求接收模块701、视频转码格式获取模块703及固定倍数目标码率生成单元721相连接,用于在带宽小于带宽阈值时,根据带宽与期望视频码率的比值得到视频的码率提升率,根据码率提升率与预设的码率提升倍数的对应关系得到视频的码率提升倍数;将期望视频码率增加码率提升倍数得到目标码率。

视频转码格式获取模块703与视频转码目标码率生成模块702及视频切片转码模块706相连接,用于根据带宽与目标码率的比值得到视频传输量,根据视频传输量与预设的转码格式对应关系得到视频的转码格式。

视频转码画面组数量获取模块704与视频转码目标码率生成模块703及待转码视频切片模块705相连接,用于根据视频传输量、解码器型号与预设的视频转码切片中画面组数量对应关系得到视频的转码画面组数量。

待转码视频切片模块705与视频转码画面组数量获取模块704及视频切片转码模块706相连接,用于以转码画面组数量的画面组为一个视频转码切片,将视频中未转码的图像帧进行切片得到待转码的视频切片。

视频切片转码模块706与视频转码格式获取模块703及待转码视频切片模块705相连接,用于将视频切片以目标码率及转码格式进行转码得到视频转码分片,并记录视频转码分片的时间戳;按时间戳从前往后的顺序将视频转码分片发送至客户端。

实施例8

如图8所示,为本实施例所述实时视频转码的系统的结构示意图,本实施例是在上述实施例7基础上提供的一种优选实施例,该系统包括:视频播放请求接收模块801、视频转码目标码率生成模块802、视频转码格式获取模块803、视频转码画面组数量获取模块804、待转码视频切片模块805及视频切片转码模块806。

其中,视频播放请求接收模块801与视频转码目标码率生成模块802相连接,用于接收客户端的视频播放请求,解析视频播放请求获得客户端的解码器型号、期望视频码率,根据视频播放请求从数据库中获取对应的视频。

视频转码目标码率生成模块802进一步为:固定倍数目标码率生成单元821、目标码率调整单元822及适应性倍数目标码率生成单元823。

固定倍数目标码率生成单元821与视频播放请求接收模块801、视频转码格式获取模块803、适应性倍数目标码率生成单元823及目标码率调整单元822相连接,用于监测客户端的带宽,获取客户端在设定时间段内的历史带宽记录,计算历史带宽记录中带宽大于或等于带宽阈值的比例,在比例达到或超过比例阈值,且当前带宽大于或等于带宽阈值时,将期望视频码率提升固定提升倍数得到视频转码的目标码率。

目标码率调整单元822与适应性倍数目标码率生成单元823及固定倍数目标码率生成单元821相连接,在比例达到或超过比例阈值,且当前带宽小于带宽阈值时,将期望视频码率作为视频转码的目标码率。

适应性倍数目标码率生成单元823与视频播放请求接收模块801、视频转码格式获取模块803、固定倍数目标码率生成单元821及目标码率调整单元822相连接,用于在带宽小于带宽阈值时,根据带宽与期望视频码率的比值得到视频的码率提升率,根据码率提升率与预设的码率提升倍数的对应关系得到视频的码率提升倍数;将期望视频码率增加码率提升倍数得到目标码率。

视频转码格式获取模块803与视频转码目标码率生成模块802及视频切片转码模块806相连接,用于根据带宽与目标码率的比值得到视频传输量,根据视频传输量与预设的转码格式对应关系得到视频的转码格式。

视频转码画面组数量获取模块804与视频转码目标码率生成模块803及待转码视频切片模块805相连接,用于根据视频传输量、解码器型号与预设的视频转码切片中画面组数量对应关系得到视频的转码画面组数量。

待转码视频切片模块805与视频转码画面组数量获取模块804及视频切片转码模块806相连接,用于以转码画面组数量的画面组为一个视频转码切片,将视频中未转码的图像帧进行切片得到待转码的视频切片。

视频切片转码模块806与视频转码格式获取模块803及待转码视频切片模块805相连接,用于将视频切片以目标码率及转码格式进行转码得到视频转码分片,并记录视频转码分片的时间戳;按时间戳从前往后的顺序将视频转码分片发送至客户端。

实施例9

如图9所示,为本实施例所述实时视频转码的系统的结构示意图,本实施例是在上述实施例6基础上提供的一种优选实施例,该系统包括:视频播放请求接收模块901、视频转码目标码率生成模块902、视频转码格式获取模块903、视频转码画面组数量获取模块904、待转码视频切片模块905及视频切片转码模块906。

其中,视频播放请求接收模块901与视频转码目标码率生成模块902相连接,用于接收客户端的视频播放请求,解析视频播放请求获得客户端的解码器型号、期望视频码率,根据视频播放请求从数据库中获取对应的视频。

视频转码目标码率生成模块902与视频播放请求接收模块901及视频转码格式获取模块903相连接,用于监测客户端的带宽,根据带宽与期望视频码率的比值得到视频的码率提升率,根据码率提升率与预设的码率提升倍数的对应关系得到视频的码率提升倍数;将期望视频码率增加码率提升倍数得到目标码率。

视频转码格式获取模块903与视频转码目标码率生成模块902及视频切片转码模块906相连接,用于根据带宽与目标码率的比值得到视频传输量,根据视频传输量与预设的转码格式对应关系得到视频的转码格式。

视频转码画面组数量获取模块904与视频转码目标码率生成模块903及待转码视频切片模块905相连接,用于根据视频传输量、解码器型号与预设的视频转码切片中画面组数量对应关系得到视频的转码画面组数量。

待转码视频切片模块905进一步为:视频切片单元951及视频切片调整单元952。

视频切片单元951与视频转码画面组数量获取模块904、视频切片转码模块906及视频切片调整单元952相连接,用于检测视频中未转码的图像帧的待转码画面组数量,在待转码画面组数量大于或等于转码画面组数量时,以转码画面组数量的画面组为一个视频转码切片,将视频中未转码的图像帧进行切片得到待转码的视频切片。

视频切片调整单元952与视频转码画面组数量获取模块904、视频切片转码模块906及视频切片单元951相连接,在待转码画面组数量小于转码画面组数量时,将未转码的图像帧作为待转码的视频切片。

实施例10

如图10所示,为本实施例所述实时视频转码的系统的结构示意图,本实施例是在上述实施例6基础上提供的一种优选实施例,该系统包括:视频播放请求接收模块1001、视频转码目标码率生成模块1002、视频转码格式获取模块1003、视频转码画面组数量获取模块1004、待转码视频切片模块1005、视频切片转码模块1006及视频码率调整模块1007。

其中,视频播放请求接收模块1001与视频转码目标码率生成模块1002相连接,用于接收客户端的视频播放请求,解析视频播放请求获得客户端的解码器型号、期望视频码率,根据视频播放请求从数据库中获取对应的视频。

视频转码目标码率生成模块1002与视频播放请求接收模块1001、视频转码格式获取模块1003及视频码率调整模块1007相连接,用于监测客户端的带宽,根据带宽与期望视频码率的比值得到视频的码率提升率,根据码率提升率与预设的码率提升倍数的对应关系得到视频的码率提升倍数;将期望视频码率增加码率提升倍数得到目标码率。

视频转码格式获取模块1003与视频转码目标码率生成模块1002及视频切片转码模块1006相连接,用于根据带宽与目标码率的比值得到视频传输量,根据视频传输量与预设的转码格式对应关系得到视频的转码格式。

视频转码画面组数量获取模块1004与视频转码目标码率生成模块1003及待转码视频切片模块1005相连接,用于根据视频传输量、解码器型号与预设的视频转码切片中画面组数量对应关系得到视频的转码画面组数量。

待转码视频切片模块1005与视频转码画面组数量获取模块1004及视频切片转码模块1006相连接,用于以转码画面组数量的画面组为一个视频转码切片,将视频中未转码的图像帧进行切片得到待转码的视频切片。

视频切片转码模块1006与视频转码格式获取模块1003及待转码视频切片模块1005相连接,用于将视频切片以目标码率及转码格式进行转码得到视频转码分片,并记录视频转码分片的时间戳;按时间戳从前往后的顺序将视频转码分片发送至客户端。

视频码率调整模块1007与视频转码目标码率生成模块1002相连接,用于接收客户端的期望视频码率的调整请求,在调整后的期望视频码率小于当前期望视频码率时,将调整后的期望视频码率作为视频转码的目标码率。

通过上述实施例可知,本发明的实时视频转码的方法及系统,达到了如下的有益效果:

(1)本发明所述的实时视频转码的方法及系统,在客户端请求转码码率的基础上,分析客户端的带宽及转码处理能力等转码条件,并根据客户端的当前转码条件对视频进行适度提升码率的分片转码后传输的方式,使得在客户端能够流畅地接收转码的视频并解码播放,实现了基于客户端条件的高清晰度实时视频转码,而有利于避免视频实时转码播放出现卡顿的现象。

(2)本发明所述的实时视频转码的方法及系统,实时监测客户端带宽信息,在一定带宽条件内适应性调整视频转码的码率,在带宽较好的条件下以适度的固定码率转码,既提高了客户端视频播放的清晰度,又不至于导致转码得到的视频数据过大,不便于转码、视频传输及解码。

(3)本发明所述的实时视频转码的方法及系统,接收客户端的降低码率的请求,并以客户端想要调整得到的码率进行视频转码,在客户端遇到带宽不稳定导致视频播放卡顿的时候,能够及时根据客户端请求降低播放清晰度,以保证视频能够正常播放,提升了用户的使用体验。

本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

虽然已经通过例子对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上例子仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

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