视频流转码迁移方法、装置和系统转让专利

申请号 : CN201910257354.7

文献号 : CN110213617B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈钦基

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请涉及一种视频流转码迁移方法、装置和系统,方法包括:查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳;发送基准时间戳至第二转码服务器,使得第二转码服务器基于基准时间戳对原始视频流进行转码得到第二转码流;拉取第二转码流,并保持从第一转码服务器拉取第一转码流;第二转码流具有基于基准时间戳确定的时间戳;保持输出第一转码流,直到监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。采用本申请提供的方案,在进行视频流转码迁移时,可以实现实时视频播放画面的平滑过渡。

权利要求 :

1.一种视频流转码迁移方法,其特征在于,所述方法包括:实时监控第一转码服务器对原始视频进行转码时所产生的资源消耗量;

当所述资源消耗量符合转码迁移条件时,触发转码迁移指令;

响应于所述转码迁移指令,查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳;所述基准时间戳,是指所述第一转码服务器对所述原始视频流进行转码时,对所述原始视频流中各视频帧的时间戳进行重排时所需的基准时间点;所述第一转码服务器对所述原始视频流进行转码的转码方式为切片式转码方式;

获取所述原始视频流在触发转码迁移时的末尾时间戳;所述末尾时间戳,是指触发转码迁移时,所述原始视频流中最后一个视频帧的时间戳;

发送携带所述基准时间戳和末尾时间戳的转码指令至第二转码服务器;所述转码指令,用于指示所述第二转码服务器从所述原始视频流的所述末尾时间戳起进行切片转码,得到第二转码流;

拉取所述第二转码流,并保持从所述第一转码服务器拉取所述第一转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;

保持输出所述第一转码流,并将所述第一转码流与所述第二转码流的相同的视频帧的时间戳进行比对,直到监测到所述第一转码流与所述第二转码流在相同的视频帧存在相同的时间戳时,将输出的所述第一转码流切换为所述第二转码流。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当监测到即将输出所述第一转码流的关键视频帧时,从所述第二转码流中查找与即将输出的关键视频帧相同的目标关键视频帧;

将查找到的目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳进行比对;

当所述目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳相同时,确定所述第一转码流与所述第二转码流在相同的视频帧存在相同的时间戳。

3.根据权利要求1‑2任一项所述的方法,其特征在于,所述基准时间戳为所述原始视频流的起始时间戳;所述原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;所述原始视频流中的视频帧在转码为第二转码流中的视频帧时,视频帧类型保持一致。

4.一种视频流转码迁移方法,其特征在于,所述方法包括:接收转码指令,所述转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳,以及原始视频流在触发转码迁移时的末尾时间戳;所述基准时间戳,是指所述第一转码服务器对所述原始视频流进行转码时,对所述原始视频流中各视频帧的时间戳进行重排时所需的基准时间点;所述末尾时间戳,是指触发转码迁移时,所述原始视频流中最后一个视频帧的时间戳;所述第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式;所述转码指令,是当转码迁移指令被触发后生成的;所述转码迁移指令,是当监控到所述第一转码服务器对所述原始视频进行转码时所产生的资源消耗量符合转码迁移条件时触发生成的;

从所述原始视频流的所述末尾时间戳起,按照所述基准时间戳对所述原始视频流进行切片转码,得到第二转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;

发送所述第二转码流至通道管理服务器,使得所述通道管理服务器将所述第一转码流与所述第二转码流的相同的视频帧的时间戳进行比对,并在监测到所述第一转码流与所述第二转码流在相同的视频帧存在相同的时间戳时,将输出的所述第一转码流切换为所述第二转码流。

5.根据权利要求4所述的方法,其特征在于,所述从所述原始视频流的所述末尾时间戳起,按照所述基准时间戳对所述原始视频流进行切片转码,得到第二转码流包括:从所述原始视频流的所述末尾时间戳起,获取原始视频流中各个视频帧的原始时间戳;

确定所述原始时间戳与所述基准时间戳的时间差值;

按照所述时间差值确定对应视频帧的时间戳;

基于确定的所述时间戳对所述原始视频流进行转码,得到第二转码流。

6.根据权利要求4‑5中任一项所述的方法,其特征在于,所述基准时间戳为所述原始视频流的起始时间戳;所述原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;所述原始视频流中的视频帧在转码为第二转码流中的视频帧时,视频帧类型保持一致。

7.一种视频流转码迁移装置,其特征在于,所述装置包括:基准时间戳查询模块,用于实时监控第一转码服务器对原始视频进行转码时所产生的资源消耗量;当所述资源消耗量符合转码迁移条件时,触发转码迁移指令;响应于所述转码迁移指令,查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳;所述基准时间戳,是指所述第一转码服务器对所述原始视频流进行转码时,对所述原始视频流中各视频帧的时间戳进行重排时所需的基准时间点;所述第一转码服务器对所述原始视频流进行转码的转码方式为切片式转码方式;

基准时间戳发送模块,用于获取所述原始视频流在触发转码迁移时的末尾时间戳;所述末尾时间戳,是指触发转码迁移时,所述原始视频流中最后一个视频帧的时间戳;发送携带所述基准时间戳和末尾时间戳的转码指令至第二转码服务器;所述转码指令,用于指示所述第二转码服务器从所述原始视频流的所述末尾时间戳起进行切片转码,得到第二转码流;

转码流拉取模块,用于拉取所述第二转码流,并保持从所述第一转码服务器拉取所述第一转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;

转码流输出模块,用于保持输出所述第一转码流,并将所述第一转码流与所述第二转码流的相同的视频帧的时间戳进行比对,直到监测到所述第一转码流与所述第二转码流在相同的视频帧存在相同的时间戳时,将输出的所述第一转码流切换为所述第二转码流。

8.根据权利要求7所述的装置,其特征在于,所述视频流转码迁移装置还包括:视频流监测模块,用于当监测到即将输出所述第一转码流的关键视频帧时,从所述第二转码流中查找与即将输出的关键视频帧相同的目标关键视频帧;将查找到的目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳进行比对;当所述目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳相同时,确定所述第一转码流与所述第二转码流在相同的视频帧存在相同的时间戳。

9.根据权利要求7‑8任一项所述的装置,其特征在于,所述基准时间戳为所述原始视频流的起始时间戳;所述原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;所述原始视频流中的视频帧在转码为第二转码流中的视频帧时,视频帧类型保持一致。

10.一种视频流转码迁移装置,其特征在于,所述装置包括:转码指令接收模块,用于接收转码指令,所述转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳,以及原始视频流在触发转码迁移时的末尾时间戳;所述基准时间戳,是指所述第一转码服务器对所述原始视频流进行转码时,对所述原始视频流中各视频帧的时间戳进行重排时所需的基准时间点;所述末尾时间戳,是指触发转码迁移时,所述原始视频流中最后一个视频帧的时间戳;所述第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式;所述转码指令,是当转码迁移指令被触发后生成的;所述转码迁移指令,是当监控到所述第一转码服务器对所述原始视频进行转码时所产生的资源消耗量符合转码迁移条件时触发生成的;

转码模块,用于从所述原始视频流的所述末尾时间戳起,按照所述基准时间戳对所述原始视频流进行切片转码,得到第二转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;

第二转码流发送模块,用于发送所述第二转码流至通道管理服务器,使得所述通道管理服务器将所述第一转码流与所述第二转码流的相同的视频帧的时间戳进行比对,并在监测到所述第一转码流与所述第二转码流在相同的视频帧存在相同的时间戳时,将输出的所述第一转码流切换为所述第二转码流。

11.根据权利要求10所述的装置,其特征在于,所述转码模块还用于从所述原始视频流的所述末尾时间戳起,获取原始视频流中各个视频帧的原始时间戳;确定所述原始时间戳与所述基准时间戳的时间差值;按照所述时间差值确定对应视频帧的时间戳;基于确定的所述时间戳对所述原始视频流进行转码,得到第二转码流。

12.根据权利要求10‑11任一项所述的装置,其特征在于,所述基准时间戳为所述原始视频流的起始时间戳;所述原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;所述原始视频流中的视频帧在转码为第二转码流中的视频帧时,视频帧类型保持一致。

13.一种视频流转码迁移系统,所述系统包括接入服务器、第一转码服务器、控制服务器、通道管理服务器、第二转码服务器和内容分发网络服务器,所述控制服务器实时监控第一转码服务器对原始视频进行转码时所产生的资源消耗量;当所述资源消耗量符合转码迁移条件时,触发转码迁移指令;响应于所述转码迁移指令,查询所述第一转码服务器将原始视频流转码为第一转码流的基准时间戳;所述基准时间戳,是指所述第一转码服务器对所述原始视频流进行转码时,对所述原始视频流中各视频帧的时间戳进行重排时所需的基准时间点;所述第一转码服务器对所述原始视频流进行转码的转码方式为切片式转码方式;获取所述原始视频流在触发转码迁移时的末尾时间戳;所述末尾时间戳,是指触发转码迁移时,所述原始视频流中最后一个视频帧的时间戳;

发送携带所述基准时间戳和末尾时间戳的转码指令至第二转码服务器;

所述第二转码服务器接收转码指令,并从所述接入服务器拉取所述原始视频流,从所述原始视频流的所述末尾时间戳起,按照所述基准时间戳对所述原始视频流进行切片转码,得到第二转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;

所述通道管理服务器拉取所述第二转码流,并保持从所述第一转码服务器拉取所述第一转码流;

所述通道管理服务器保持输出所述第一转码流至所述内容分发网络服务器,并将所述第一转码流与所述第二转码流的相同的视频帧的时间戳进行比对,直到监测到所述第一转码流与所述第二转码流在相同的视频帧存在相同的时间戳时,将输出的所述第一转码流切换为所述第二转码流。

14.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述方法的步骤。

15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述方法的步骤。

说明书 :

视频流转码迁移方法、装置和系统

技术领域

[0001] 本申请涉及计算机技术领域,特别是涉及一种视频流转码迁移方法、装置、系统、计算机可读存储介质和计算机设备。

背景技术

[0002] 随着计算机技术的发展,出现了云端视频转码技术,可以将原始视频流转化为不同清晰度的直播视频流,不同清晰度比如不同分辨率和不同码率。用户可以根据自己的网
络情况选择蓝光、高清、标清、普清等不同清晰度的直播视频流进行观看。
[0003] 然而,云端视频转码对于转码服务器的资源消耗极大。为了更大限度地利用转码服务器的资源,传统的视频流转码迁移方法常常将转码任务切换在其他空闲的转码服务器
上,实现转码任务在转码服务器之间的任意迁移切换。
[0004] 但是,传统的视频流转码迁移方法,是在第一转码服务器停止对原始视频流的转码后,第二转码服务器重新拉取原始视频流并转码出流。这样第二转码服务器需要花费一
定的时间去拉取原始转码流,并且第二转码服务器所拉取的原始视频流可能不准确,使得
播放的视频画面容易出现画面卡顿、画面回退或画面向前跳跃的现象,不能实现视频画面
的平滑过渡。

发明内容

[0005] 基于此,有必要针对上述技术问题,提供一种能够实现视频画面的无缝平滑过渡的视频流转码迁移方法、装置、系统、计算机可读存储介质和计算机设备。
[0006] 一种视频流转码迁移方法,包括:
[0007] 查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
[0008] 发送所述基准时间戳至第二转码服务器,使得所述第二转码服务器基于所述基准时间戳对所述原始视频流进行转码得到第二转码流;
[0009] 拉取所述第二转码流,并保持从所述第一转码服务器拉取所述第一转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
[0010] 保持输出所述第一转码流,直到监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二转码流。
[0011] 一种视频流转码迁移方法,包括:
[0012] 接收转码指令,所述转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
[0013] 根据所述转码指令对所述原始视频流进行转码得到第二转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
[0014] 发送所述第二转码流至通道管理服务器,使得所述通道管理服务器在监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二
转码流。
[0015] 一种视频流转码迁移装置,所述装置包括:
[0016] 基准时间戳查询模块,用于查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
[0017] 基准时间戳发送模块,用于发送所述基准时间戳至第二转码服务器,使得所述第二转码服务器基于所述基准时间戳对所述原始视频流进行转码得到第二转码流;
[0018] 转码流拉取模块,用于拉取所述第二转码流,并保持从所述第一转码服务器拉取所述第一转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
[0019] 转码流输出模块,用于保持输出所述第一转码流,直到监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二转码流。
[0020] 一种视频流转码迁移装置,所述装置包括:
[0021] 转码指令接收模块,用于接收转码指令,所述转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
[0022] 转码模块,用于根据所述转码指令对所述原始视频流进行转码得到第二转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
[0023] 第二转码流发送模块,用于发送所述第二转码流至通道管理服务器,使得所述通道管理服务器在监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述
第一转码流切换为所述第二转码流。
[0024] 一种视频流转码迁移系统,所述系统包括接入服务器、第一转码服务器、控制服务器、通道管理服务器、第二转码服务器和内容分发网络服务器,
[0025] 所述控制服务器查询所述第一转码服务器将原始视频流转码为第一转码流的基准时间戳;发送所述基准时间戳至所述第二转码服务器;
[0026] 所述第二转码服务器从所述接入服务器拉取所述原始视频流,基于所述基准时间戳对所述原始视频流进行转码得到第二转码流;所述第二转码流具有基于所述基准时间戳
确定的时间戳;
[0027] 所述通道管理服务器拉取所述第二转码流,并保持从所述第一转码服务器拉取所述第一转码流;
[0028] 所述通道管理服务器保持输出所述第一转码流至所述内容分发网络服务器,直到监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换
为所述第二转码流。
[0029] 一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述视频流转码迁移方法的步骤。
[0030] 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述视频流转码迁移方法的步骤。
[0031] 上述转码任务迁移方法、装置、系统、计算机可读存储介质和计算机设备,第二转码服务器按照与第一转码服务器相同的基准时间戳对原始视频流进行转码,可以得到与第
一转码流存在相同基准时间戳的第二转码流。同时拉取第一转码流和第二转码流,并保持
第一转码流的输出。由于第一转码流与第二转码流的基准时间戳相同,可以准确地监测第
一转码流与第二转码流的时间戳是否对齐。直到监测到第一转码流与第二转码流在时间轴
上对齐时,代表第一转码流与第二转码流完全同步,则停止第一转码流的输出,并输出第二
转码流。这样终端播放出来的视频完全不会出现画面卡顿、画面回退或画面向前跳跃的现
象,实现了画面的平滑过渡。

附图说明

[0032] 图1为一个实施例中视频流转码迁移方法的应用环境图;
[0033] 图2为一个实施例中视频流转码迁移方法的流程示意图;
[0034] 图3为一个实施例中转码流的示例图;
[0035] 图4为另一个实施例中转码流的示例图;
[0036] 图5为一个实施例中视频流转码迁移方法的时序图;
[0037] 图6为再一个实施例中转码流的示例图;
[0038] 图7为再一个实施例中视频流转码迁移方法的流程示意图;
[0039] 图8为一个实施例中各视频帧的时间戳的示例图;
[0040] 图9为一个实施例中视频流转码迁移装置的结构框图;
[0041] 图10为另一个实施例中视频流转码迁移装置的结构框图;
[0042] 图11为一个实施例中计算机设备的结构框图。

具体实施方式

[0043] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并
不用于限定本申请。
[0044] 图1为一个实施例中视频流转码迁移方法的应用环境图。参照图1,该视频流转码迁移方法应用于视频流转码迁移系统100。视频流转码迁移系统100包括接入服务器110、第
一转码服务器120、转码迁移服务器130、第二转码服务器140和内容分发网络服务器150。接
入服务器110、第一转码服务器120、转码迁移服务器130、第二转码服务器140和内容分发网
络服务器150通过网络连接。
[0045] 转码迁移服务器130包括控制服务器1301和通道管理服务器1302。接入服务器110、第一转码服务器120、控制服务器1301、通道管理服务器1302、第二转码服务器140和内
容分发网络服务器150可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0046] 其中,接入服务器指提供主播终端输入的实时视频的原始视频流的服务器。控制服务器指具有对其他服务器进行控制的功能的服务器。第一转码服务器和第二转码服务器
是具有对视频流进行转码的功能的服务器。通道管理服务器指具有至少两个用于拉取转码
流的拉流通道的服务器。内容分发网络(CDN,英文全称为Content Delivery Network)服务
器指具有内容存储功能和分发功能的服务器。内容分发网络服务器用于将输入的转码流分
发至各观众终端进行播放。
[0047] 上述视频流转码迁移系统中,控制服务器1301查询第一转码服务器120将原始视频流转码为第一转码流的基准时间戳,发送基准时间戳至第二转码服务器140。第二转码服
务器140从接入服务器110拉取原始视频流,基于基准时间戳对原始视频流进行转码得到第
二转码流。第二转码流具有基于基准时间戳确定的时间戳。
[0048] 通道管理服务器1302拉取第二转码流,并保持从第一转码服务器拉取第一转码流。通道管理服务器1302保持输出第一转码流至内容分发网络服务器150,直到监测到第一
转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
[0049] 如图2所示,在一个实施例中,提供了一种视频流转码迁移方法。本实施例主要以该方法应用于上述图1中的转码迁移服务器130来举例说明。参照图2,该视频流转码迁移方
法具体包括如下步骤:
[0050] S202,查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳。
[0051] 其中,原始视频流指接入服务器提供的未进行过转码的视频流。转码是指以适应不同的网络带宽、不同的终端处理能力和不同的用户需求,对已经压缩编码的原始视频流
进行先解码再编码,得到另一个视频流的过程。另一个视频流指本申请中所提到的转码流。
第一转码流指第一转码服务器对原始视频流进行转码所得到的转码流。基准时间戳指转码
服务器对原始视频流进行转码时,对原始视频流中各视频帧的时间戳进行重排时所需的基
准时间点,转码服务器需要基于基准时间戳去确定各视频帧重排后的时间戳。
[0052] 具体地,第一转码服务器对原始视频流进行解码并重新编码时,会基于基准时间戳对原始视频流中各视频帧的原始时间戳进行重排。例如基准时间戳为10000(毫秒),则第
一转码服务器可以基于基准时间戳“10000(毫秒)”和原始视频流中各视频帧的原始时间戳
确定转码得到的第一转码流中各视频帧对应的时间戳,按照确定的时间戳对各视频帧的原
始时间戳进行重排。当转码迁移服务器中的控制服务器检测到转码迁移指令被触发时,控
制服务器便查询第一转码服务器对原始视频流进行转码得到第一转码流的基准时间戳。
[0053] 在一个实施例中,控制服务器可以实时监测第一转码服务器对原始视频流进行转码时所产生的资源消耗量。当控制服务器监测到资源消耗量符合转码迁移条件时,触发转
码迁移指令。资源消耗量指服务器的CPU资源和内存资源所消耗的量。
[0054] 在一个实施例中,转码迁移条件可以为CPU使用率与平均CPU使用率的使用率差值达到预设差值阈值。第一转码服务器在转码过程中,每个转码任务即为一个转码进程,每个
转码进程可以有一个或多个转码线程,每个转码线程都运行在第一转码服务器的一个CPU
上。每个转码线程的CPU使用率不同。
[0055] 控制服务器可以获取第一转码服务器的平均CPU使用率,将各个转码进程中的各个转码线程所在CPU的CPU使用率与平均CPU使用率进行比对。当存在至少一个转码线程所
在CPU的CPU使用率大于平均CPU使用率时,计算该转码线程所在CPU的CPU使用率与平均CPU
使用率的使用率差值。当使用率差值大于或等于预设差值阈值时,说明该CPU负载较高,符
合转码迁移条件,则控制服务器触发转码迁移指令。
[0056] 在一个实施例中,第一转码服务器上可以有两个或者多于两个的CPU。控制服务器可以实时获取第一转码服务器上各个CPU当前的CPU使用率,将获取到的各个CPU当前的CPU
使用率进行加和,再除以第一转码服务器中的CPU总数,得到第一转码服务器的平均CPU使
用率。
[0057] 在一个实施例中,第一转码服务器上可以设置有CPU表,CPU表中记录了第一转码服务器上所有CPU的CPU ID、CPU使用率以及平均CPU使用率,CPU表中记录的数据会根据第
一转码服务器上各CPU的CPU使用率变化情况不断更新。控制服务器可以周期性地从CPU表
中获取第一转码服务器的平均CPU使用率。
[0058] S204,发送基准时间戳至第二转码服务器,使得第二转码服务器基于基准时间戳对原始视频流进行转码得到第二转码流。
[0059] 其中,第二转码流指第二转码服务器对原始视频流进行转码所得到的转码流。
[0060] 具体地,控制服务器将查询到的基准时间戳发送至第二转码服务器,这样第二转码服务器可以基于与第一转码服务器对原始视频流转码时所采用的相同的基准时间戳对
原始视频流进行转码,得到具有基于基准时间戳确定的时间戳的第二转码流。
[0061] 进一步地,第二转码服务器接收到基准时间戳后,开始从接入服务器拉取原始视频流,并基于基准时间戳对拉取的原始视频流进行转码。例如第一转码服务器对原始视频
流进行转码时所采用的基准时间戳为10000(毫秒),则第二转码服务器也基于该基准时间
戳“10000(毫秒)”确定转码得到的第二转码流中每一视频帧对应的时间戳,按照确定的时
间戳对每一视频帧对应的原始时间戳进行重排。
[0062] S206,拉取第二转码流,并保持从第一转码服务器拉取第一转码流;第二转码流具有基于基准时间戳确定的时间戳。
[0063] 具体地,控制服务器发送拉流指令至转码迁移服务器中的通道管理服务器,拉流指令中携带有第二转码服务器的服务器标识。通道管理服务器响应于该拉流指令,建立第
二拉流通道。通道管理服务器通过建立的第二拉流通道从第二转码服务器拉取第二转码
流,同时保持通过建立的第一拉流通道从第一转码服务器继续拉取第一转码流,进入双通
道同时拉流阶段。
[0064] S208,保持输出第一转码流,直到监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
[0065] 其中,时间戳指转码流中每一视频帧所对应的时间点。
[0066] 具体地,通道管理服务器在处于双通道同时拉流阶段时,仍然保持输出第一转码流至内容分发网络服务器,内容分发网络服务器将输入的第一转码流分发至观众终端,观
众终端仍然以接收到的第一转码流播放实时视频。并且,通道管理服务器在处于双通道同
时拉流阶段时,将第一转码流与第二转码流的相同的视频帧的时间戳进行比对。第一转码
流中的各个视频帧与第二转码流中的各个视频帧均有基于相同的基准时间戳确定的重排
后的时间戳。
[0067] 当通道管理服务器监测到第一转码流与第二转码流在相同的视频帧存在相同的时间戳时,说明第二转码流与第一转码流已经同步,则通道管理服务器将输出的第一拉流
通道的第一转码流切换为第二拉流通道的第二转码流。通道管理服务器将输出的第一转码
流切换为第二转码流后,内容分发网络服务器将输入的第二转码流分发至观众终端,观众
终端以接收到的第二转码流继续播放实时视频。
[0068] 在一个实施例中,在通道管理服务器将输出的第一拉流通道的第一转码流切换为第二拉流通道的第二转码流后,通道管理服务器关闭第一拉流通道。当第一拉流通道关闭
后,第一转码服务器停止对原始视频流的转码,并上报转码迁移完毕信息至控制服务器。转
码迁移完毕信息用于通知控制服务器转码迁移任务已执行完毕。
[0069] 上述转码任务迁移方法,第二转码服务器按照与第一转码服务器相同的基准时间戳对原始视频流进行转码,可以得到与第一转码流存在相同基准时间戳的第二转码流。同
时拉取第一转码流和第二转码流,并保持第一转码流的输出。由于第一转码流与第二转码
流的基准时间戳相同,可以准确地监测第一转码流与第二转码流的时间戳是否对齐。直到
监测到第一转码流与第二转码流在时间轴上对齐时,代表第一转码流与第二转码流完全同
步,则停止第一转码流的输出,并输出第二转码流。这样终端播放出来的视频完全不会出现
画面卡顿、画面回退或画面向前跳跃的现象,实现了画面的平滑过渡。
[0070] 在一个实施例中,第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式;发送基准时间戳至第二转码服务器,使得第二转码服务器基于基准时间戳对原始
视频流进行转码得到第二转码流包括:获取原始视频流在触发转码迁移时的末尾时间戳;
发送携带基准时间戳和末尾时间戳的转码指令至第二转码服务器;转码指令用于指示第二
转码服务器从原始视频流的末尾时间戳起进行切片转码,得到第二转码流。
[0071] 其中,切片式转码方式指将原始视频流进行切片,并对切片得到的各个子原始视频流进行转码,得到多个切片文件的转码方式。末尾时间戳指触发转码迁移时,实时视频的
原始视频流中最后一个视频帧的时间戳。例如触发转码迁移时,原始视频流中各个视频帧
的时间戳依次为“10000(毫秒)、10001、10002、10003、10004……10118、10119、10200”,则
“10200(毫秒)”便为触发转码迁移时原始视频流的末尾时间戳。
[0072] 具体地,转码服务器对原始视频流进行转码的转码方式可以为流式转码方式,也可以为切片式转码方式。当第一转码服务器对原始视频流进行转码的转码方式为流式转码
方式时,第二转码服务器对原始视频流进行转码的转码方式也为流式转码方式。当第一转
码服务器对原始视频流进行转码的转码方式为切片式转码方式时,第二转码服务器对原始
视频流进行转码的转码方式也为切片式转码方式。流式转码方式指直接对原始视频流进行
转码得到转码流的转码方式。
[0073] 当第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式时,控制服务器可以获取原始视频流在触发转码迁移时的末尾时间戳。控制服务器生成携带有获取
到的末尾时间戳和查询到的基准时间戳的转码指令,并将生成的转码指令发送至第二转码
服务器。
[0074] 第二转码服务器根据该转码指令从接入服务器拉取原始视频流,从拉取的原始视频流的该末尾时间戳起,实时对原始视频流进行切片,并基于基准时间戳实时对切片得到
的子原始视频流进行转码,得到第二转码流。可以理解的是,按照切片式转码方式得到的第
二转码流分为多个子第二转码流,各个子第二转码流分别存储在各自对应的切片文件中。
[0075] 在一个实施例中,控制服务器在获取原始视频流在触发转码迁移时的末尾时间戳时,还可以获取第一转码服务器对原始视频流进行转码得到的多个切片文件的文件标识,
文件标识比如可以是切片文件的序列号。则控制服务器生成的转码指令中,还携带有获取
到的文件标识。这样,第二转码服务器便可以根据该文件标识对得到的第二转码流对应的
各个切片文件进行标识。
[0076] 在一个实施例中,例如在触发转码迁移时原始视频流的末尾时间戳为2000(毫秒),切片的间隔时间为1秒,则第二转码服务器在原始视频流的2000毫秒处切一次片,间隔
1秒后,在原始视频流的3000毫秒处切一次片,得到2000(毫秒)‑3000(毫秒)的子原始视频
流。
[0077] 第二转码服务器对2000(毫秒)‑3000(毫秒)的子原始视频流的视频帧进行转码,得到该段子原始视频流对应的切片文件,该切片文件中存储有对2000(毫秒)‑3000(毫秒)
的子原始视频流的视频帧进行转码得到的子第二转码流以及该子第二转码流中的各视频
帧对应的时间戳。例如控制服务器获取的第一转码服务器对原始视频流进行转码得到的多
个切片文件的文件标识分别为1、2、3、4……55、56、57,则2000(毫秒)‑3000(毫秒)的子原始
视频流对应的切片文件的文件标识应为“58”。
[0078] 上述实施例中,当第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式时,第二转码服务器对原始视频流进行转码的转码方式也为切片式转码方式。并且
第二转码服务器从原始视频流在触发转码迁移时的末尾时间戳起对原始视频流进行切片。
这样第一转码流对应的切片文件和第二转码流对应的切片文件便可以准确地衔接上。
[0079] 在一个实施例中,该视频流转码迁移方法还包括:当监测到即将输出第一转码流的关键视频帧时,从第二转码流中查找与即将输出的关键视频帧相同的目标关键视频帧;
将查找到的目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳进行比对;当目标
关键视频帧的时间戳与即将输出的关键视频帧的时间戳相同时,确定第一转码流与第二转
码流的时间戳对齐。
[0080] 其中,关键视频帧指视频画面中的角色或物体变化中的关键动作所处的那一帧。
[0081] 具体地,转码迁移服务器中的通道管理服务器会对拉取的第一转码流和第二转码流实时进行存储,并将第一转码流作为输出。可以理解的是,通道管理服务器在输出第一转
码流时,第一转码流中的视频帧是按照顺序依次进行输出的。通道管理服务器可以实时对
输出的第一转码流进行监测。当通道管理服务器监测到即将输出的第一转码流的视频帧为
关键视频帧时,从第二转码流的存储队列中查找与即将输出的关键视频帧相同的目标关键
视频帧。
[0082] 通道管理服务器将即将输出的关键视频帧在第一转码流中对应的时间戳与目标关键视频帧在第二转码流中对应的时间戳进行比对。若即将输出的关键视频帧的时间戳与
目标关键视频帧的时间戳相同,说明第一转码流与第二转码流在相同的关键视频帧存在相
同的时间戳,则通道管理服务器确定从目标关键视频帧起,第一转码流与第二转码流的时
间戳已对齐。
[0083] 在一个实施例中,例如通道管理服务器即将输出的关键视频帧为关键视频帧A,则通道管理服务器从第二转码流的存储队列中查找的目标关键视频帧也为关键视频帧A。进
一步地,通道管理服务器可以确定即将输出的关键视频帧的序列号,根据确定的序列号在
第二转码流中查找与即将输出的关键视频帧相同的目标关键视频帧。
[0084] 例如即将输出的关键视频帧的序列号为9,代表第一转码流中即将输出的关键视频帧为原始视频流中的第9个关键视频帧被第一转码服务器转码后得到的关键视频帧。则
通道管理服务器需要从第二转码流的存储队列中查找序列号为9的目标关键视频帧,目标
关键视频帧为原始视频流中的第9个关键视频帧被第二转码服务器转码后得到的关键视频
帧。
[0085] 由于第二转码流具有基于第一转码服务器将原始视频流转码为第一转码流的基准时间戳确定的时间戳,只要即将输出的关键视频帧的时间戳与目标关键视频帧的时间戳
相同时,便代表第一转码流与第二转码流在目标关键视频帧之后的所有关键视频帧的时间
戳一定是对齐的。
[0086] 在一个实施例中,若即将输出的关键视频帧的时间戳与目标关键视频帧的时间戳不相同时,代表第一转码流与第二转码流在目标关键视频帧时还未对齐,需要继续将下一
即将输出的关键视频帧与对应的目标关键帧做比较。因此,管理服务器继续执行当监测到
即将输出第一转码流的关键视频帧时,从第二转码流中查找与即将输出的关键视频帧相同
的目标关键视频帧的步骤。直到监测到即将输出的关键视频帧的时间戳与目标关键视频帧
的时间戳相同。
[0087] 上述实施例中,通道管理服务器将第一转码流中即将输出的关键视频帧与第二转码流中与即将输出的关键视频帧相同的目标关键视频帧做比较,若即将输出的关键视频帧
的时间戳与目标关键视频帧的时间戳相同,便代表第一转码流与第二转码流的时间戳从目
标关键视频帧起已对齐。无需将第一转码流中的所有视频帧依次与第二转码流中的视频帧
作比较,高效地确定了第一转码流与第二转码流的时间戳是否对齐。
[0088] 在一个实施例中,基准时间戳为原始视频流的起始时间戳;原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;原始视频流中的视频帧在转
码为第二转码流中的视频帧时,视频帧类型保持一致。
[0089] 其中,起始时间戳指原始视频流中第一个视频帧的时间戳。例如原始视频流从第一个视频帧起,每一视频帧对应的时间戳依次为:10000(毫秒)、10001、10002、10003、
10004……,则10000(毫秒)为该原始视频流的起始时间戳。
[0090] 具体地,视频帧类型包括关键视频帧和参考视频帧。参考视频帧是参考相邻的前一参考视频帧或关键视频帧来编码得到的视频帧。例如图3所示的转码流中,关键视频帧为
图3中的I帧,参考视频帧为图3中的P帧。参考视频帧302是转码服务器参考关键视频帧301
进行编码得到的,参考视频帧303是转码服务器参考参考视频帧302进行编码得到的。
[0091] 在原始视频流中的视频帧类型为关键视频帧的视频帧,经过第一转码服务器或第二转码服务器转码后,在第一转码流或第二转码流中的视频帧类型仍然为关键视频帧。在
原始视频流中的视频帧类型为参考视频帧的视频帧,经过第一转码服务区或第二转码服务
器转码后,在第一转码流或第二转码流中的视频帧类型仍然为参考视频帧。由于第一转码
服务器或第二转码服务器是依次对原始视频流中的各视频帧进行转码,因此,得到的第一
转码流或第二转码流中各视频帧的序列与在原始视频流中各视频帧的序列相比是保持不
变的。
[0092] 如图4所示,原始视频流的关键视频帧A1,经过第一服务器转码后,在第一转码流中对应的仍然是关键视频帧B1。原始视频流的关键视频帧A2,经过第一服务器转码后,在第
一转码流中对应的仍然是关键视频帧B2。原始视频流经过转码后,第一转码流中两个关键
视频帧之间的参考视频帧数量与在原始视频流中这两个关键视频帧之间的参考视频帧数
量相同。例如图4中,原始视频流的关键视频帧A1与关键视频帧A2之间的参考视频帧数量和
关键视频帧B1与关键视频帧A2之间的参考视频帧数量相同。
[0093] 上述实施例中,第一转码服务器和第二转码服务器直接基于原始视频流的起始时间戳对原始视频流进行转码,并且原始视频流中的视频帧在转码为第一转码流或第二转码
流中的视频帧时,视频帧类型保持一致,使得通道管理服务器可以更加便捷地比较第一转
码流与第二转码流的时间戳是否对齐。
[0094] 在一个实施例中,如图5所示,该视频流转码迁移方法可以包括以下步骤:
[0095] S502,转码迁移服务器中的控制服务器查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳。
[0096] S504,控制服务器发送基准时间戳至第二转码服务器。
[0097] S506,第二转码服务器从接入服务器拉取原始视频流。
[0098] S508,第二转码服务器基于基准时间戳对原始视频流进行转码得到第二转码流。
[0099] S510,控制服务器发送第二转码服务器的服务器标识至通道管理服务器。
[0100] S512,通道管理服务器建立第二拉流通道。
[0101] S514,通道管理服务器根据接收到的服务器标识,通过第二拉流通道从第二转码服务器拉取第二转码流。
[0102] S516,通道管理服务器保持通过第一拉流通道从第一转码服务器拉取第一转码流,进入双通道同时拉流阶段。
[0103] S518,通道管理服务器保持输出第一转码流至内容分发网络服务器。
[0104] S520,通道管理服务器监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
[0105] 具体地,如图6所示,第一转码流中的关键视频帧601与第二转码流中的关键视频帧602为原始视频流中的同一关键视频帧转码后得到的关键视频帧,则通道管理服务器可
以确定关键视频帧601与关键视频帧602为相同的关键视频帧。若通道管理服务器监测到关
键视频帧601为即将输出的关键视频帧,并且关键视频帧601与关键视频帧602的时间戳相
同,则代表第二视频流从关键视频帧602起,之后的所有视频帧与第一转码流均会对齐。因
此,通道管理服务器从关键视频帧602起,将输出的第一转码流切换为第二转码流。通道管
理服务器输出至内容分发网络服务器的转码流如图6中的600所示。
[0106] 如图7所示,在一个实施例中,提供了一种视频流转码迁移方法。本实施例主要以该方法应用于上述图1中的第二转码服务器140来举例说明。参照图7,该视频流转码迁移方
法具体包括如下步骤:
[0107] S702,接收转码指令,转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳。
[0108] 具体地,当转码迁移服务器中的控制服务器检测到转码迁移指令被触发时,控制服务器便查询第一转码服务器当前对原始视频流进行转码得到第一转码流的基准时间戳。
控制服务器生成携带有该基准时间戳的转码指令并发送至第二转码服务器。第二转码服务
器接收携带有该基准时间戳的转码指令。
[0109] S704,根据转码指令对原始视频流进行转码得到第二转码流;第二转码流具有基于基准时间戳确定的时间戳。
[0110] 具体地,第二转码服务器接收到转码指令后,响应于该转码指令,开始从接入服务器拉取原始视频流,并对拉取的原始视频流进行转码。第二转码服务器对原始视频流进行
转码时,是基于与第一转码服务器对原始视频流转码时所采用的相同的基准时间戳对原始
视频流进行转码,得到具有基于基准时间戳确定的时间戳的第二转码流。
[0111] 例如,第一转码服务器对原始视频流进行转码时所采用的基准时间戳为10000(毫秒),则第二转码服务器也基于该基准时间戳“10000(毫秒)”确定转码得到的第二转码流中
每一视频帧对应的时间戳,按照确定的时间戳对每一视频帧对应的原始时间戳进行重排。
[0112] S706,发送第二转码流至通道管理服务器,使得通道管理服务器在监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
[0113] 具体地,控制服务器发送拉流指令至转码迁移服务器中的通道管理服务器,拉流指令中携带有第二转码服务器的服务器标识。通道管理服务器响应于该拉流指令,建立第
二拉流通道,并向第二转码服务器发送拉流请求。第二转码服务器响应于该拉流请求,通过
通道管理服务器建立的第二拉流通道发送第二转码流至通道管理服务器,并且通道管理服
务器同时保持通过建立的第一拉流通道从第一转码服务器继续拉取第一转码流,使得通道
管理服务器进入双通道同时拉流阶段。
[0114] 进一步地,通道管理服务器在处于双通道同时拉流阶段时,仍然保持输出第一转码流至内容分发网络服务器,内容分发网络服务器将输入的第一转码流发送至观众终端,
观众终端仍然以接收到的第一转码流播放实时视频。并且,通道管理服务器在处于双通道
同时拉流阶段时,将第一转码流与第二转码流的相同的视频帧的时间戳进行比对。第一转
码流中的各个视频帧与第二转码流中的各个视频帧均有基于相同的基准时间戳确定的重
排后的时间戳。
[0115] 当通道管理服务器监测到第一转码流与第二转码流在相同的视频帧存在相同的时间戳时,说明第二转码流与第一转码流已经同步,则通道管理服务器将输出的第一拉流
通道的第一转码流切换为第二拉流通道的第二转码流。通道管理服务器将输出的第一转码
流切换为第二转码流后,内容分发网络服务器将输入的第二转码流发送至观众终端,观众
终端以接收到的第二转码流继续播放实时视频。
[0116] 在一个实施例中,在通道管理服务器将输出的第一拉流通道的第一转码流切换为第二拉流通道的第二转码流后,通道管理服务器关闭第一拉流通道。当第一拉流通道关闭
后,第一转码服务器停止对原始视频流的转码,并上报转码迁移完毕信息至控制服务器。转
码迁移完毕信息用于通知控制服务器转码迁移任务已执行完毕。
[0117] 上述转码任务迁移方法,第二转码服务器按照与第一转码服务器相同的基准时间戳对原始视频流进行转码,可以得到与第一转码流存在相同基准时间戳的第二转码流。同
时拉取第一转码流和第二转码流,并保持第一转码流的输出。由于第一转码流与第二转码
流的基准时间戳相同,可以准确地监测第一转码流与第二转码流的时间戳是否对齐。直到
监测到第一转码流与第二转码流在时间轴上对齐时,代表第一转码流与第二转码流完全同
步,则停止第一转码流的输出,并输出第二转码流。这样终端播放出来的视频完全不会出现
画面卡顿、画面回退或画面向前跳跃的现象,实现了画面的平滑过渡。
[0118] 在一个实施例中,根据转码指令对原始视频流进行转码,得到具有基于基准时间戳确定的时间戳的第二转码流包括:获取原始视频流中各个视频帧的原始时间戳;确定原
始时间戳与基准时间戳的时间差值;按照时间差值确定对应视频帧的时间戳;基于确定的
时间戳对原始视频流进行转码,得到第二转码流。
[0119] 其中,原始时间戳指视频帧在原始视频流中对应的时间戳。
[0120] 具体地,第二转码服务器可以获取原始视频流中各视频帧的原始时间戳,第二转码服务器可以根据以下公式得到原始视频流中各视频帧转码后的时间戳:原始时间戳‑基
准时间戳=转码后的时间戳。这样例如基准时间戳为10100(毫秒),原始视频流中的视频帧
A的原始时间戳为10200(毫秒),则10200‑10100=100(毫秒)便为视频帧A转码后对应的时
间戳。
[0121] 在一个实施例中,第一转码服务器对原始视频流进行转码时,包括以下步骤:获取原始视频流中各个视频帧的原始时间戳;确定原始时间戳与基准时间戳的时间差值;按照
时间差值确定对应视频帧的时间戳;基于确定的时间戳对原始视频流进行转码,得到第一
转码流。
[0122] 具体地,第一转码服务器可以获取原始视频流中各视频帧的原始时间戳,第一转码服务器可以根据以下公式得到原始视频流中各视频帧转码后的时间戳:原始时间戳‑基
准时间戳=转码后的时间戳。这样例如基准时间戳为10100(毫秒),原始视频流中的视频帧
A的原始时间戳为10200(毫秒),则10200‑10100=100(毫秒)便为视频帧A转码后对应的时
间戳。
[0123] 上述实施例中,直接通过视频帧在原始视频流中的原始时间戳与基准时间戳的差值来确定该视频帧转码后对应的时间戳,并且第一转码服务器与第二转码服务器是基于相
同的基准时间戳对原始视频流进行转码,使得通道管理服务器可以更加便捷地比较第一转
码流与第二转码流的时间戳是否对齐。
[0124] 在一个实施例中,第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式;转码指令还携带有原始视频流在触发转码迁移时的末尾时间戳;根据转码指令对
原始视频流进行转码,得到具有基于基准时间戳确定的时间戳的第二转码流包括:从原始
视频流的末尾时间戳起,按照基准时间戳对原始视频流进行切片转码,得到具有基于基准
时间戳确定的时间戳的第二转码流。
[0125] 具体地,当第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式时,控制服务器可以获取原始视频流在触发转码迁移时的末尾时间戳。控制服务器生成携
带有获取到的末尾时间戳和查询到的基准时间戳的转码指令,并将生成的转码指令发送至
第二转码服务器。
[0126] 第二转码服务器接收携带有末尾时间戳和基准时间戳的转码指令,根据该转码指令从接入服务器拉取原始视频流,从拉取的原始视频流的该末尾时间戳起,实时对原始视
频流进行切片,并基于基准时间戳实时对切片得到的子原始视频流进行转码,得到第二转
码流。可以理解的是,按照切片式转码方式得到的第二转码流分为多个子第二转码流,各个
子第二转码流分别存储在各自对应的切片文件中。
[0127] 在一个实施例中,控制服务器在获取原始视频流在触发转码迁移时的末尾时间戳时,还可以获取第一转码服务器对原始视频流进行转码得到的多个切片文件的文件标识,
文件标识比如可以是切片文件的序列号。则控制服务器生成的转码指令中,还携带有获取
到的文件标识。这样,第二转码服务器接收到的转码指令中该携带有文件标识,第二转码服
务器便可以根据该文件标识对得到的第二转码流对应的各个切片文件进行标识。
[0128] 在一个实施例中,例如在触发转码迁移时原始视频流的末尾时间戳为2000(毫秒),切片的间隔时间为1秒,则第二转码服务器在原始视频流的2000毫秒处切一次片,间隔
1秒后,在原始视频流的3000毫秒处切一次片,得到2000(毫秒)‑3000(毫秒)的子原始视频
流。
[0129] 第二转码服务器对2000(毫秒)‑3000(毫秒)的子原始视频流的视频帧进行转码,得到该段子原始视频流对应的切片文件,该切片文件中存储有对2000(毫秒)‑3000(毫秒)
的子原始视频流的视频帧进行转码得到的子第二转码流以及该子第二转码流中的各视频
帧对应的时间戳。例如控制服务器获取的第一转码服务器对原始视频流进行转码得到的多
个切片文件的文件标识分别为1、2、3、4……55、56、57,则2000(毫秒)‑3000(毫秒)的子原始
视频流对应的切片文件的文件标识应为“58”。
[0130] 上述实施例中,当第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式时,第二转码服务器对原始视频流进行转码的转码方式也为切片式转码方式。并且
第二转码服务器从原始视频流在触发转码迁移时的末尾时间戳起对原始视频流进行切片。
这样第一转码流对应的切片文件和第二转码流对应的切片文件便可以准确地衔接上。
[0131] 在一个实施例中,基准时间戳为原始视频流的起始时间戳;原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;原始视频流中的视频帧在转
码为第二转码流中的视频帧时,视频帧类型保持一致。
[0132] 具体地,视频帧类型包括关键视频帧和参考视频帧。参考视频帧是参考相邻的前一参考视频帧或关键视频帧来编码得到的视频帧。例如图3所示的转码流中,关键视频帧为
图3中的I帧,参考视频帧为图3中的P帧。参考视频帧302是转码服务器参考关键视频帧301
进行编码得到的,参考视频帧303是转码服务器参考参考视频帧302进行编码得到的。
[0133] 在原始视频流中的视频帧类型为关键视频帧的视频帧,经过第一转码服务器或第二转码服务器转码后,在第一转码流或第二转码流中的视频帧类型仍然为关键视频帧。在
原始视频流中的视频帧类型为参考视频帧的视频帧,经过第一转码服务区或第二转码服务
器转码后,在第一转码流或第二转码流中的视频帧类型仍然为参考视频帧。由于第一转码
服务器或第二转码服务器是依次对原始视频流中的各视频帧进行转码,因此,得到的第一
转码流或第二转码流中各视频帧的序列是不变的。
[0134] 如图4所示,原始视频流的关键视频帧A1,经过第一服务器转码后,对应的仍然是关键视频帧B1,原始视频流的关键视频帧A2,经过第一服务器转码后,对应的仍然是关键视
频帧B2。原始视频流经过转码后,第一转码流中两个关键视频帧之间的参考视频帧数量与
在原始视频流中这两个关键视频帧之间的参考视频帧数量相同。例如原始视频流的关键视
频帧A1与关键视频帧A2之间的参考视频帧数量和关键视频帧B1与关键视频帧A2之间的参
考视频帧数量相同。
[0135] 在一个实施例中,如图8所示,例如,原始视频流中各视频帧对应的原始时间戳依次为:10000(毫秒)、10100、10200、10300、10400、10500、10600、10700……,若基准时间戳为
原始视频流的起始时间戳,则第一转码服务器根据“原始时间戳‑10000=转码后的时间戳”
确定各个视频帧转码后的时间戳依次为:0(毫秒)、100、200、300、400、500、600、700……。
[0136] 例如触发转码迁移时,第一转码服务器刚好转码到原始视频流中的视频帧的原始时间戳为10600,则第二转码服务器可以从时间戳为10600的视频帧起,对原始视频流进行
转码,如图8所示,第二转码服务器根据“原始时间戳‑10000=转码后的时间戳”确定各个视
频帧转码后的时间戳依次为:600(毫秒)、700、800、900……。
[0137] 上述实施例中,第一转码服务器和第二转码服务器直接基于原始视频流的起始时间戳对原始视频流进行转码,并且原始视频流中的视频帧在转码为第一转码流或第二转码
流中的视频帧时,视频帧类型保持一致,使得通道管理服务器可以更加便捷地比较第一转
码流与第二转码流的时间戳是否对齐。
[0138] 在一个实施例中,如图9所示,提供了一种视频流转码迁移装置900,该装置包括基准时间戳查询模块901、基准时间戳发送模块902、转码流拉取模块903和转码流输出模块
904,其中:
[0139] 基准时间戳查询模块901,用于查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
[0140] 基准时间戳发送模块902,用于发送基准时间戳至第二转码服务器,使得第二转码服务器基于基准时间戳对原始视频流进行转码得到第二转码流;
[0141] 转码流拉取模块903,用于拉取第二转码流,并保持从第一转码服务器拉取第一转码流;第二转码流具有基于基准时间戳确定的时间戳;
[0142] 转码流输出模块904,用于保持输出第一转码流,直到监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
[0143] 在一个实施例中,第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式;基准时间戳发送模块902还用于获取原始视频流在触发转码迁移时的末尾时间戳;
发送携带基准时间戳和末尾时间戳的转码指令至第二转码服务器;转码指令用于指示第二
转码服务器从原始视频流的末尾时间戳起进行切片转码,得到第二转码流。
[0144] 在一个实施例中,视频流转码迁移装置还包括视频流监测模块,用于当监测到即将输出第一转码流的关键视频帧时,从第二转码流中查找与即将输出的关键视频帧相同的
目标关键视频帧;将查找到的目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳
进行比对;当目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳相同时,确定第
一转码流与第二转码流的时间戳对齐。
[0145] 在一个实施例中,基准时间戳为原始视频流的起始时间戳;原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;原始视频流中的视频帧在转
码为第二转码流中的视频帧时,视频帧类型保持一致。
[0146] 在一个实施例中,如图10所示,提供了一种视频流转码迁移装置1000,该装置包括转码指令接收模块1001、转码模块1002和第二转码流发送模块1003,其中:
[0147] 转码指令接收模块1001,用于接收转码指令,转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
[0148] 转码模块1002,用于根据转码指令对原始视频流进行转码得到第二转码流;第二转码流具有基于基准时间戳确定的时间戳;
[0149] 第二转码流发送模块1003,用于发送第二转码流至通道管理服务器,使得通道管理服务器在监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为
第二转码流。
[0150] 在一个实施例中,转码模块1002还用于获取原始视频流中各个视频帧的原始时间戳;确定原始时间戳与基准时间戳的时间差值;按照时间差值确定对应视频帧的时间戳;基
于确定的时间戳对原始视频流进行转码,得到第二转码流。
[0151] 在一个实施例中,第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式;转码指令还携带有原始视频流在触发转码迁移时的末尾时间戳;转码模块1002还
用于从原始视频流的末尾时间戳起,按照基准时间戳对原始视频流进行切片转码,得到具
有基于基准时间戳确定的时间戳的第二转码流。
[0152] 在一个实施例中,基准时间戳为原始视频流的起始时间戳;原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;原始视频流中的视频帧在转
码为第二转码流中的视频帧时,视频帧类型保持一致。
[0153] 图2、5和7为一个实施例中视频流转码迁移方法的流程示意图。应该理解的是,虽然图2、5和7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按
照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺
序限制,这些步骤可以以其它的顺序执行。而且,图2、5和7中的至少一部分步骤可以包括多
个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以
在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其
它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0154] 在一个实施例中,如图1所示,提供了一种视频流转码迁移系统,该视频流转码迁移系统包括接入服务器110、第一转码服务器120、控制服务器1301、通道管理服务器1302、
第二转码服务器140和内容分发网络服务器150,其中:
[0155] 控制服务器1301查询第一转码服务器120将原始视频流转码为第一转码流的基准时间戳;发送基准时间戳至第二转码服务器140;
[0156] 第二转码服务器140从接入服务器110拉取原始视频流,基于基准时间戳对原始视频流进行转码得到第二转码流;第二转码流具有基于基准时间戳确定的时间戳;
[0157] 通道管理服务器1302拉取第二转码流,并保持从第一转码服务器120拉取第一转码流;
[0158] 通道管理服务器1302保持输出第一转码流至内容分发网络服务器150,直到监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
[0159] 图11示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的转码迁移服务器130或第二转码服务器140。如图11所示,该计算机设备包括通过系统
总线连接的处理器、存储器、网络接口。其中,存储器包括非易失性存储介质和内存储器。该
计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序
被处理器执行时,可使得处理器实现视频流转码迁移方法。该内存储器中也可储存有计算
机程序,该计算机程序被处理器执行时,可使得处理器执行视频流转码迁移方法。
[0160] 本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设
备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0161] 在一个实施例中,本申请提供的视频流转码迁移装置可以实现为一种计算机程序的形式,计算机程序可在如图11所示的计算机设备上运行。计算机设备的存储器中可存储
组成该视频流转码迁移装置的各个程序模块,比如,图9所示的基准时间戳查询模块901、基
准时间戳发送模块902、转码流拉取模块903和转码流输出模块904。比如,图10所示的转码
指令接收模块1001、转码模块1002和第二转码流发送模块1003。各个程序模块构成的计算
机程序使得处理器执行本说明书中描述的本申请各个实施例的视频流转码迁移方法中的
步骤。
[0162] 例如,图11所示的计算机设备可以通过如图9所示的视频流转码迁移装置中的基准时间戳查询模块901执行查询第一转码服务器将原始视频流转码为第一转码流的基准时
间戳。计算机设备可通过基准时间戳发送模块902执行发送基准时间戳至第二转码服务器,
使得第二转码服务器基于基准时间戳对原始视频流进行转码得到第二转码流。计算机设备
可通过转码流拉取模块903执行拉取第二转码流,并保持从第一转码服务器拉取第一转码
流;第二转码流具有基于基准时间戳确定的时间戳。计算机设备可通过转码流输出模块904
执行保持输出第一转码流,直到监测到第一转码流与第二转码流的时间戳对齐时,将输出
的第一转码流切换为第二转码流。
[0163] 例如,图11所示的计算机设备可以通过如图10所示的视频流转码迁移装置中的转码指令接收模块1001执行接收转码指令,转码指令携带有第一转码服务器将原始视频流转
码为第一转码流的基准时间戳。计算机设备可以通过转码模块1002执行根据转码指令对原
始视频流进行转码得到第二转码流;第二转码流具有基于基准时间戳确定的时间戳。计算
机设备可以通过第二转码流发送模块1003执行发送第二转码流至通道管理服务器,使得通
道管理服务器在监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切
换为第二转码流。
[0164] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视频流转码迁移方法的步骤。
此处视频流转码迁移方法的步骤可以是上述各个实施例的视频流转码迁移方法中的步骤。
[0165] 在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视频流转码迁移方法的步骤。此处XX方法的步骤
可以是上述各个实施例的视频流转码迁移方法中的步骤。
[0166] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取
存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供
的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性
和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编
程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器
(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM
(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM
(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直
接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0167] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛
盾,都应当认为是本说明书记载的范围。
[0168] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员
来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保
护范围。因此,本申请专利的保护范围应以所附权利要求为准。