CN110213617A - 视频流转码迁移方法、装置和系统 - Google Patents
视频流转码迁移方法、装置和系统 Download PDFInfo
- Publication number
- CN110213617A CN110213617A CN201910257354.7A CN201910257354A CN110213617A CN 110213617 A CN110213617 A CN 110213617A CN 201910257354 A CN201910257354 A CN 201910257354A CN 110213617 A CN110213617 A CN 110213617A
- Authority
- CN
- China
- Prior art keywords
- transcoding
- stream
- server
- timestamp
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000005012 migration Effects 0.000 claims abstract description 40
- 238000013508 migration Methods 0.000 claims abstract description 40
- 238000012544 monitoring process Methods 0.000 claims abstract description 28
- 230000005540 biological transmission Effects 0.000 claims abstract description 9
- 238000007726 management method Methods 0.000 claims description 73
- 238000004590 computer program Methods 0.000 claims description 14
- 230000001617 migratory effect Effects 0.000 claims description 6
- 230000007704 transition Effects 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- 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/242—Synchronization processes, e.g. processing of PCR [Program Clock References]
-
- 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/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请涉及一种视频流转码迁移方法、装置和系统,方法包括:查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳;发送基准时间戳至第二转码服务器,使得第二转码服务器基于基准时间戳对原始视频流进行转码得到第二转码流;拉取第二转码流,并保持从第一转码服务器拉取第一转码流;第二转码流具有基于基准时间戳确定的时间戳;保持输出第一转码流,直到监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。采用本申请提供的方案,在进行视频流转码迁移时,可以实现实时视频播放画面的平滑过渡。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种视频流转码迁移方法、装置、系统、计算机可读存储介质和计算机设备。
背景技术
随着计算机技术的发展,出现了云端视频转码技术,可以将原始视频流转化为不同清晰度的直播视频流,不同清晰度比如不同分辨率和不同码率。用户可以根据自己的网络情况选择蓝光、高清、标清、普清等不同清晰度的直播视频流进行观看。
然而,云端视频转码对于转码服务器的资源消耗极大。为了更大限度地利用转码服务器的资源,传统的视频流转码迁移方法常常将转码任务切换在其他空闲的转码服务器上,实现转码任务在转码服务器之间的任意迁移切换。
但是,传统的视频流转码迁移方法,是在第一转码服务器停止对原始视频流的转码后,第二转码服务器重新拉取原始视频流并转码出流。这样第二转码服务器需要花费一定的时间去拉取原始转码流,并且第二转码服务器所拉取的原始视频流可能不准确,使得播放的视频画面容易出现画面卡顿、画面回退或画面向前跳跃的现象,不能实现视频画面的平滑过渡。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现视频画面的无缝平滑过渡的视频流转码迁移方法、装置、系统、计算机可读存储介质和计算机设备。
一种视频流转码迁移方法,包括:
查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
发送所述基准时间戳至第二转码服务器,使得所述第二转码服务器基于所述基准时间戳对所述原始视频流进行转码得到第二转码流;
拉取所述第二转码流,并保持从所述第一转码服务器拉取所述第一转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
保持输出所述第一转码流,直到监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二转码流。
一种视频流转码迁移方法,包括:
接收转码指令,所述转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
根据所述转码指令对所述原始视频流进行转码得到第二转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
发送所述第二转码流至通道管理服务器,使得所述通道管理服务器在监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二转码流。
一种视频流转码迁移装置,所述装置包括:
基准时间戳查询模块,用于查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
基准时间戳发送模块,用于发送所述基准时间戳至第二转码服务器,使得所述第二转码服务器基于所述基准时间戳对所述原始视频流进行转码得到第二转码流;
转码流拉取模块,用于拉取所述第二转码流,并保持从所述第一转码服务器拉取所述第一转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
转码流输出模块,用于保持输出所述第一转码流,直到监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二转码流。
一种视频流转码迁移装置,所述装置包括:
转码指令接收模块,用于接收转码指令,所述转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
转码模块,用于根据所述转码指令对所述原始视频流进行转码得到第二转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
第二转码流发送模块,用于发送所述第二转码流至通道管理服务器,使得所述通道管理服务器在监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二转码流。
一种视频流转码迁移系统,所述系统包括接入服务器、第一转码服务器、控制服务器、通道管理服务器、第二转码服务器和内容分发网络服务器,
所述控制服务器查询所述第一转码服务器将原始视频流转码为第一转码流的基准时间戳;发送所述基准时间戳至所述第二转码服务器;
所述第二转码服务器从所述接入服务器拉取所述原始视频流,基于所述基准时间戳对所述原始视频流进行转码得到第二转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
所述通道管理服务器拉取所述第二转码流,并保持从所述第一转码服务器拉取所述第一转码流;
所述通道管理服务器保持输出所述第一转码流至所述内容分发网络服务器,直到监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二转码流。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述视频流转码迁移方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述视频流转码迁移方法的步骤。
上述转码任务迁移方法、装置、系统、计算机可读存储介质和计算机设备,第二转码服务器按照与第一转码服务器相同的基准时间戳对原始视频流进行转码,可以得到与第一转码流存在相同基准时间戳的第二转码流。同时拉取第一转码流和第二转码流,并保持第一转码流的输出。由于第一转码流与第二转码流的基准时间戳相同,可以准确地监测第一转码流与第二转码流的时间戳是否对齐。直到监测到第一转码流与第二转码流在时间轴上对齐时,代表第一转码流与第二转码流完全同步,则停止第一转码流的输出,并输出第二转码流。这样终端播放出来的视频完全不会出现画面卡顿、画面回退或画面向前跳跃的现象,实现了画面的平滑过渡。
附图说明
图1为一个实施例中视频流转码迁移方法的应用环境图;
图2为一个实施例中视频流转码迁移方法的流程示意图;
图3为一个实施例中转码流的示例图;
图4为另一个实施例中转码流的示例图;
图5为一个实施例中视频流转码迁移方法的时序图;
图6为再一个实施例中转码流的示例图;
图7为再一个实施例中视频流转码迁移方法的流程示意图;
图8为一个实施例中各视频帧的时间戳的示例图;
图9为一个实施例中视频流转码迁移装置的结构框图;
图10为另一个实施例中视频流转码迁移装置的结构框图;
图11为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中视频流转码迁移方法的应用环境图。参照图1,该视频流转码迁移方法应用于视频流转码迁移系统100。视频流转码迁移系统100包括接入服务器110、第一转码服务器120、转码迁移服务器130、第二转码服务器140和内容分发网络服务器150。接入服务器110、第一转码服务器120、转码迁移服务器130、第二转码服务器140和内容分发网络服务器150通过网络连接。
转码迁移服务器130包括控制服务器1301和通道管理服务器1302。接入服务器110、第一转码服务器120、控制服务器1301、通道管理服务器1302、第二转码服务器140和内容分发网络服务器150可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
其中,接入服务器指提供主播终端输入的实时视频的原始视频流的服务器。控制服务器指具有对其他服务器进行控制的功能的服务器。第一转码服务器和第二转码服务器是具有对视频流进行转码的功能的服务器。通道管理服务器指具有至少两个用于拉取转码流的拉流通道的服务器。内容分发网络(CDN,英文全称为Content Delivery Network)服务器指具有内容存储功能和分发功能的服务器。内容分发网络服务器用于将输入的转码流分发至各观众终端进行播放。
上述视频流转码迁移系统中,控制服务器1301查询第一转码服务器120将原始视频流转码为第一转码流的基准时间戳,发送基准时间戳至第二转码服务器140。第二转码服务器140从接入服务器110拉取原始视频流,基于基准时间戳对原始视频流进行转码得到第二转码流。第二转码流具有基于基准时间戳确定的时间戳。
通道管理服务器1302拉取第二转码流,并保持从第一转码服务器拉取第一转码流。通道管理服务器1302保持输出第一转码流至内容分发网络服务器150,直到监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
如图2所示,在一个实施例中,提供了一种视频流转码迁移方法。本实施例主要以该方法应用于上述图1中的转码迁移服务器130来举例说明。参照图2,该视频流转码迁移方法具体包括如下步骤:
S202,查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳。
其中,原始视频流指接入服务器提供的未进行过转码的视频流。转码是指以适应不同的网络带宽、不同的终端处理能力和不同的用户需求,对已经压缩编码的原始视频流进行先解码再编码,得到另一个视频流的过程。另一个视频流指本申请中所提到的转码流。第一转码流指第一转码服务器对原始视频流进行转码所得到的转码流。基准时间戳指转码服务器对原始视频流进行转码时,对原始视频流中各视频帧的时间戳进行重排时所需的基准时间点,转码服务器需要基于基准时间戳去确定各视频帧重排后的时间戳。
具体地,第一转码服务器对原始视频流进行解码并重新编码时,会基于基准时间戳对原始视频流中各视频帧的原始时间戳进行重排。例如基准时间戳为10000(毫秒),则第一转码服务器可以基于基准时间戳“10000(毫秒)”和原始视频流中各视频帧的原始时间戳确定转码得到的第一转码流中各视频帧对应的时间戳,按照确定的时间戳对各视频帧的原始时间戳进行重排。当转码迁移服务器中的控制服务器检测到转码迁移指令被触发时,控制服务器便查询第一转码服务器对原始视频流进行转码得到第一转码流的基准时间戳。
在一个实施例中,控制服务器可以实时监测第一转码服务器对原始视频流进行转码时所产生的资源消耗量。当控制服务器监测到资源消耗量符合转码迁移条件时,触发转码迁移指令。资源消耗量指服务器的CPU资源和内存资源所消耗的量。
在一个实施例中,转码迁移条件可以为CPU使用率与平均CPU使用率的使用率差值达到预设差值阈值。第一转码服务器在转码过程中,每个转码任务即为一个转码进程,每个转码进程可以有一个或多个转码线程,每个转码线程都运行在第一转码服务器的一个CPU上。每个转码线程的CPU使用率不同。
控制服务器可以获取第一转码服务器的平均CPU使用率,将各个转码进程中的各个转码线程所在CPU的CPU使用率与平均CPU使用率进行比对。当存在至少一个转码线程所在CPU的CPU使用率大于平均CPU使用率时,计算该转码线程所在CPU的CPU使用率与平均CPU使用率的使用率差值。当使用率差值大于或等于预设差值阈值时,说明该CPU负载较高,符合转码迁移条件,则控制服务器触发转码迁移指令。
在一个实施例中,第一转码服务器上可以有两个或者多于两个的CPU。控制服务器可以实时获取第一转码服务器上各个CPU当前的CPU使用率,将获取到的各个CPU当前的CPU使用率进行加和,再除以第一转码服务器中的CPU总数,得到第一转码服务器的平均CPU使用率。
在一个实施例中,第一转码服务器上可以设置有CPU表,CPU表中记录了第一转码服务器上所有CPU的CPU ID、CPU使用率以及平均CPU使用率,CPU表中记录的数据会根据第一转码服务器上各CPU的CPU使用率变化情况不断更新。控制服务器可以周期性地从CPU表中获取第一转码服务器的平均CPU使用率。
S204,发送基准时间戳至第二转码服务器,使得第二转码服务器基于基准时间戳对原始视频流进行转码得到第二转码流。
其中,第二转码流指第二转码服务器对原始视频流进行转码所得到的转码流。
具体地,控制服务器将查询到的基准时间戳发送至第二转码服务器,这样第二转码服务器可以基于与第一转码服务器对原始视频流转码时所采用的相同的基准时间戳对原始视频流进行转码,得到具有基于基准时间戳确定的时间戳的第二转码流。
进一步地,第二转码服务器接收到基准时间戳后,开始从接入服务器拉取原始视频流,并基于基准时间戳对拉取的原始视频流进行转码。例如第一转码服务器对原始视频流进行转码时所采用的基准时间戳为10000(毫秒),则第二转码服务器也基于该基准时间戳“10000(毫秒)”确定转码得到的第二转码流中每一视频帧对应的时间戳,按照确定的时间戳对每一视频帧对应的原始时间戳进行重排。
S206,拉取第二转码流,并保持从第一转码服务器拉取第一转码流;第二转码流具有基于基准时间戳确定的时间戳。
具体地,控制服务器发送拉流指令至转码迁移服务器中的通道管理服务器,拉流指令中携带有第二转码服务器的服务器标识。通道管理服务器响应于该拉流指令,建立第二拉流通道。通道管理服务器通过建立的第二拉流通道从第二转码服务器拉取第二转码流,同时保持通过建立的第一拉流通道从第一转码服务器继续拉取第一转码流,进入双通道同时拉流阶段。
S208,保持输出第一转码流,直到监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
其中,时间戳指转码流中每一视频帧所对应的时间点。
具体地,通道管理服务器在处于双通道同时拉流阶段时,仍然保持输出第一转码流至内容分发网络服务器,内容分发网络服务器将输入的第一转码流分发至观众终端,观众终端仍然以接收到的第一转码流播放实时视频。并且,通道管理服务器在处于双通道同时拉流阶段时,将第一转码流与第二转码流的相同的视频帧的时间戳进行比对。第一转码流中的各个视频帧与第二转码流中的各个视频帧均有基于相同的基准时间戳确定的重排后的时间戳。
当通道管理服务器监测到第一转码流与第二转码流在相同的视频帧存在相同的时间戳时,说明第二转码流与第一转码流已经同步,则通道管理服务器将输出的第一拉流通道的第一转码流切换为第二拉流通道的第二转码流。通道管理服务器将输出的第一转码流切换为第二转码流后,内容分发网络服务器将输入的第二转码流分发至观众终端,观众终端以接收到的第二转码流继续播放实时视频。
在一个实施例中,在通道管理服务器将输出的第一拉流通道的第一转码流切换为第二拉流通道的第二转码流后,通道管理服务器关闭第一拉流通道。当第一拉流通道关闭后,第一转码服务器停止对原始视频流的转码,并上报转码迁移完毕信息至控制服务器。转码迁移完毕信息用于通知控制服务器转码迁移任务已执行完毕。
上述转码任务迁移方法,第二转码服务器按照与第一转码服务器相同的基准时间戳对原始视频流进行转码,可以得到与第一转码流存在相同基准时间戳的第二转码流。同时拉取第一转码流和第二转码流,并保持第一转码流的输出。由于第一转码流与第二转码流的基准时间戳相同,可以准确地监测第一转码流与第二转码流的时间戳是否对齐。直到监测到第一转码流与第二转码流在时间轴上对齐时,代表第一转码流与第二转码流完全同步,则停止第一转码流的输出,并输出第二转码流。这样终端播放出来的视频完全不会出现画面卡顿、画面回退或画面向前跳跃的现象,实现了画面的平滑过渡。
在一个实施例中,第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式;发送基准时间戳至第二转码服务器,使得第二转码服务器基于基准时间戳对原始视频流进行转码得到第二转码流包括:获取原始视频流在触发转码迁移时的末尾时间戳;发送携带基准时间戳和末尾时间戳的转码指令至第二转码服务器;转码指令用于指示第二转码服务器从原始视频流的末尾时间戳起进行切片转码,得到第二转码流。
其中,切片式转码方式指将原始视频流进行切片,并对切片得到的各个子原始视频流进行转码,得到多个切片文件的转码方式。末尾时间戳指触发转码迁移时,实时视频的原始视频流中最后一个视频帧的时间戳。例如触发转码迁移时,原始视频流中各个视频帧的时间戳依次为“10000(毫秒)、10001、10002、10003、10004……10118、10119、10200”,则“10200(毫秒)”便为触发转码迁移时原始视频流的末尾时间戳。
具体地,转码服务器对原始视频流进行转码的转码方式可以为流式转码方式,也可以为切片式转码方式。当第一转码服务器对原始视频流进行转码的转码方式为流式转码方式时,第二转码服务器对原始视频流进行转码的转码方式也为流式转码方式。当第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式时,第二转码服务器对原始视频流进行转码的转码方式也为切片式转码方式。流式转码方式指直接对原始视频流进行转码得到转码流的转码方式。
当第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式时,控制服务器可以获取原始视频流在触发转码迁移时的末尾时间戳。控制服务器生成携带有获取到的末尾时间戳和查询到的基准时间戳的转码指令,并将生成的转码指令发送至第二转码服务器。
第二转码服务器根据该转码指令从接入服务器拉取原始视频流,从拉取的原始视频流的该末尾时间戳起,实时对原始视频流进行切片,并基于基准时间戳实时对切片得到的子原始视频流进行转码,得到第二转码流。可以理解的是,按照切片式转码方式得到的第二转码流分为多个子第二转码流,各个子第二转码流分别存储在各自对应的切片文件中。
在一个实施例中,控制服务器在获取原始视频流在触发转码迁移时的末尾时间戳时,还可以获取第一转码服务器对原始视频流进行转码得到的多个切片文件的文件标识,文件标识比如可以是切片文件的序列号。则控制服务器生成的转码指令中,还携带有获取到的文件标识。这样,第二转码服务器便可以根据该文件标识对得到的第二转码流对应的各个切片文件进行标识。
在一个实施例中,例如在触发转码迁移时原始视频流的末尾时间戳为2000(毫秒),切片的间隔时间为1秒,则第二转码服务器在原始视频流的2000毫秒处切一次片,间隔1秒后,在原始视频流的3000毫秒处切一次片,得到2000(毫秒)-3000(毫秒)的子原始视频流。
第二转码服务器对2000(毫秒)-3000(毫秒)的子原始视频流的视频帧进行转码,得到该段子原始视频流对应的切片文件,该切片文件中存储有对2000(毫秒)-3000(毫秒)的子原始视频流的视频帧进行转码得到的子第二转码流以及该子第二转码流中的各视频帧对应的时间戳。例如控制服务器获取的第一转码服务器对原始视频流进行转码得到的多个切片文件的文件标识分别为1、2、3、4……55、56、57,则2000(毫秒)-3000(毫秒)的子原始视频流对应的切片文件的文件标识应为“58”。
上述实施例中,当第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式时,第二转码服务器对原始视频流进行转码的转码方式也为切片式转码方式。并且第二转码服务器从原始视频流在触发转码迁移时的末尾时间戳起对原始视频流进行切片。这样第一转码流对应的切片文件和第二转码流对应的切片文件便可以准确地衔接上。
在一个实施例中,该视频流转码迁移方法还包括:当监测到即将输出第一转码流的关键视频帧时,从第二转码流中查找与即将输出的关键视频帧相同的目标关键视频帧;将查找到的目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳进行比对;当目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳相同时,确定第一转码流与第二转码流的时间戳对齐。
其中,关键视频帧指视频画面中的角色或物体变化中的关键动作所处的那一帧。
具体地,转码迁移服务器中的通道管理服务器会对拉取的第一转码流和第二转码流实时进行存储,并将第一转码流作为输出。可以理解的是,通道管理服务器在输出第一转码流时,第一转码流中的视频帧是按照顺序依次进行输出的。通道管理服务器可以实时对输出的第一转码流进行监测。当通道管理服务器监测到即将输出的第一转码流的视频帧为关键视频帧时,从第二转码流的存储队列中查找与即将输出的关键视频帧相同的目标关键视频帧。
通道管理服务器将即将输出的关键视频帧在第一转码流中对应的时间戳与目标关键视频帧在第二转码流中对应的时间戳进行比对。若即将输出的关键视频帧的时间戳与目标关键视频帧的时间戳相同,说明第一转码流与第二转码流在相同的关键视频帧存在相同的时间戳,则通道管理服务器确定从目标关键视频帧起,第一转码流与第二转码流的时间戳已对齐。
在一个实施例中,例如通道管理服务器即将输出的关键视频帧为关键视频帧A,则通道管理服务器从第二转码流的存储队列中查找的目标关键视频帧也为关键视频帧A。进一步地,通道管理服务器可以确定即将输出的关键视频帧的序列号,根据确定的序列号在第二转码流中查找与即将输出的关键视频帧相同的目标关键视频帧。
例如即将输出的关键视频帧的序列号为9,代表第一转码流中即将输出的关键视频帧为原始视频流中的第9个关键视频帧被第一转码服务器转码后得到的关键视频帧。则通道管理服务器需要从第二转码流的存储队列中查找序列号为9的目标关键视频帧,目标关键视频帧为原始视频流中的第9个关键视频帧被第二转码服务器转码后得到的关键视频帧。
由于第二转码流具有基于第一转码服务器将原始视频流转码为第一转码流的基准时间戳确定的时间戳,只要即将输出的关键视频帧的时间戳与目标关键视频帧的时间戳相同时,便代表第一转码流与第二转码流在目标关键视频帧之后的所有关键视频帧的时间戳一定是对齐的。
在一个实施例中,若即将输出的关键视频帧的时间戳与目标关键视频帧的时间戳不相同时,代表第一转码流与第二转码流在目标关键视频帧时还未对齐,需要继续将下一即将输出的关键视频帧与对应的目标关键帧做比较。因此,管理服务器继续执行当监测到即将输出第一转码流的关键视频帧时,从第二转码流中查找与即将输出的关键视频帧相同的目标关键视频帧的步骤。直到监测到即将输出的关键视频帧的时间戳与目标关键视频帧的时间戳相同。
上述实施例中,通道管理服务器将第一转码流中即将输出的关键视频帧与第二转码流中与即将输出的关键视频帧相同的目标关键视频帧做比较,若即将输出的关键视频帧的时间戳与目标关键视频帧的时间戳相同,便代表第一转码流与第二转码流的时间戳从目标关键视频帧起已对齐。无需将第一转码流中的所有视频帧依次与第二转码流中的视频帧作比较,高效地确定了第一转码流与第二转码流的时间戳是否对齐。
在一个实施例中,基准时间戳为原始视频流的起始时间戳;原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;原始视频流中的视频帧在转码为第二转码流中的视频帧时,视频帧类型保持一致。
其中,起始时间戳指原始视频流中第一个视频帧的时间戳。例如原始视频流从第一个视频帧起,每一视频帧对应的时间戳依次为:10000(毫秒)、10001、10002、10003、10004……,则10000(毫秒)为该原始视频流的起始时间戳。
具体地,视频帧类型包括关键视频帧和参考视频帧。参考视频帧是参考相邻的前一参考视频帧或关键视频帧来编码得到的视频帧。例如图3所示的转码流中,关键视频帧为图3中的I帧,参考视频帧为图3中的P帧。参考视频帧302是转码服务器参考关键视频帧301进行编码得到的,参考视频帧303是转码服务器参考参考视频帧302进行编码得到的。
在原始视频流中的视频帧类型为关键视频帧的视频帧,经过第一转码服务器或第二转码服务器转码后,在第一转码流或第二转码流中的视频帧类型仍然为关键视频帧。在原始视频流中的视频帧类型为参考视频帧的视频帧,经过第一转码服务区或第二转码服务器转码后,在第一转码流或第二转码流中的视频帧类型仍然为参考视频帧。由于第一转码服务器或第二转码服务器是依次对原始视频流中的各视频帧进行转码,因此,得到的第一转码流或第二转码流中各视频帧的序列与在原始视频流中各视频帧的序列相比是保持不变的。
如图4所示,原始视频流的关键视频帧A1,经过第一服务器转码后,在第一转码流中对应的仍然是关键视频帧B1。原始视频流的关键视频帧A2,经过第一服务器转码后,在第一转码流中对应的仍然是关键视频帧B2。原始视频流经过转码后,第一转码流中两个关键视频帧之间的参考视频帧数量与在原始视频流中这两个关键视频帧之间的参考视频帧数量相同。例如图4中,原始视频流的关键视频帧A1与关键视频帧A2之间的参考视频帧数量和关键视频帧B1与关键视频帧A2之间的参考视频帧数量相同。
上述实施例中,第一转码服务器和第二转码服务器直接基于原始视频流的起始时间戳对原始视频流进行转码,并且原始视频流中的视频帧在转码为第一转码流或第二转码流中的视频帧时,视频帧类型保持一致,使得通道管理服务器可以更加便捷地比较第一转码流与第二转码流的时间戳是否对齐。
在一个实施例中,如图5所示,该视频流转码迁移方法可以包括以下步骤:
S502,转码迁移服务器中的控制服务器查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳。
S504,控制服务器发送基准时间戳至第二转码服务器。
S506,第二转码服务器从接入服务器拉取原始视频流。
S508,第二转码服务器基于基准时间戳对原始视频流进行转码得到第二转码流。
S510,控制服务器发送第二转码服务器的服务器标识至通道管理服务器。
S512,通道管理服务器建立第二拉流通道。
S514,通道管理服务器根据接收到的服务器标识,通过第二拉流通道从第二转码服务器拉取第二转码流。
S516,通道管理服务器保持通过第一拉流通道从第一转码服务器拉取第一转码流,进入双通道同时拉流阶段。
S518,通道管理服务器保持输出第一转码流至内容分发网络服务器。
S520,通道管理服务器监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
具体地,如图6所示,第一转码流中的关键视频帧601与第二转码流中的关键视频帧602为原始视频流中的同一关键视频帧转码后得到的关键视频帧,则通道管理服务器可以确定关键视频帧601与关键视频帧602为相同的关键视频帧。若通道管理服务器监测到关键视频帧601为即将输出的关键视频帧,并且关键视频帧601与关键视频帧602的时间戳相同,则代表第二视频流从关键视频帧602起,之后的所有视频帧与第一转码流均会对齐。因此,通道管理服务器从关键视频帧602起,将输出的第一转码流切换为第二转码流。通道管理服务器输出至内容分发网络服务器的转码流如图6中的600所示。
如图7所示,在一个实施例中,提供了一种视频流转码迁移方法。本实施例主要以该方法应用于上述图1中的第二转码服务器140来举例说明。参照图7,该视频流转码迁移方法具体包括如下步骤:
S702,接收转码指令,转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳。
具体地,当转码迁移服务器中的控制服务器检测到转码迁移指令被触发时,控制服务器便查询第一转码服务器当前对原始视频流进行转码得到第一转码流的基准时间戳。控制服务器生成携带有该基准时间戳的转码指令并发送至第二转码服务器。第二转码服务器接收携带有该基准时间戳的转码指令。
S704,根据转码指令对原始视频流进行转码得到第二转码流;第二转码流具有基于基准时间戳确定的时间戳。
具体地,第二转码服务器接收到转码指令后,响应于该转码指令,开始从接入服务器拉取原始视频流,并对拉取的原始视频流进行转码。第二转码服务器对原始视频流进行转码时,是基于与第一转码服务器对原始视频流转码时所采用的相同的基准时间戳对原始视频流进行转码,得到具有基于基准时间戳确定的时间戳的第二转码流。
例如,第一转码服务器对原始视频流进行转码时所采用的基准时间戳为10000(毫秒),则第二转码服务器也基于该基准时间戳“10000(毫秒)”确定转码得到的第二转码流中每一视频帧对应的时间戳,按照确定的时间戳对每一视频帧对应的原始时间戳进行重排。
S706,发送第二转码流至通道管理服务器,使得通道管理服务器在监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
具体地,控制服务器发送拉流指令至转码迁移服务器中的通道管理服务器,拉流指令中携带有第二转码服务器的服务器标识。通道管理服务器响应于该拉流指令,建立第二拉流通道,并向第二转码服务器发送拉流请求。第二转码服务器响应于该拉流请求,通过通道管理服务器建立的第二拉流通道发送第二转码流至通道管理服务器,并且通道管理服务器同时保持通过建立的第一拉流通道从第一转码服务器继续拉取第一转码流,使得通道管理服务器进入双通道同时拉流阶段。
进一步地,通道管理服务器在处于双通道同时拉流阶段时,仍然保持输出第一转码流至内容分发网络服务器,内容分发网络服务器将输入的第一转码流发送至观众终端,观众终端仍然以接收到的第一转码流播放实时视频。并且,通道管理服务器在处于双通道同时拉流阶段时,将第一转码流与第二转码流的相同的视频帧的时间戳进行比对。第一转码流中的各个视频帧与第二转码流中的各个视频帧均有基于相同的基准时间戳确定的重排后的时间戳。
当通道管理服务器监测到第一转码流与第二转码流在相同的视频帧存在相同的时间戳时,说明第二转码流与第一转码流已经同步,则通道管理服务器将输出的第一拉流通道的第一转码流切换为第二拉流通道的第二转码流。通道管理服务器将输出的第一转码流切换为第二转码流后,内容分发网络服务器将输入的第二转码流发送至观众终端,观众终端以接收到的第二转码流继续播放实时视频。
在一个实施例中,在通道管理服务器将输出的第一拉流通道的第一转码流切换为第二拉流通道的第二转码流后,通道管理服务器关闭第一拉流通道。当第一拉流通道关闭后,第一转码服务器停止对原始视频流的转码,并上报转码迁移完毕信息至控制服务器。转码迁移完毕信息用于通知控制服务器转码迁移任务已执行完毕。
上述转码任务迁移方法,第二转码服务器按照与第一转码服务器相同的基准时间戳对原始视频流进行转码,可以得到与第一转码流存在相同基准时间戳的第二转码流。同时拉取第一转码流和第二转码流,并保持第一转码流的输出。由于第一转码流与第二转码流的基准时间戳相同,可以准确地监测第一转码流与第二转码流的时间戳是否对齐。直到监测到第一转码流与第二转码流在时间轴上对齐时,代表第一转码流与第二转码流完全同步,则停止第一转码流的输出,并输出第二转码流。这样终端播放出来的视频完全不会出现画面卡顿、画面回退或画面向前跳跃的现象,实现了画面的平滑过渡。
在一个实施例中,根据转码指令对原始视频流进行转码,得到具有基于基准时间戳确定的时间戳的第二转码流包括:获取原始视频流中各个视频帧的原始时间戳;确定原始时间戳与基准时间戳的时间差值;按照时间差值确定对应视频帧的时间戳;基于确定的时间戳对原始视频流进行转码,得到第二转码流。
其中,原始时间戳指视频帧在原始视频流中对应的时间戳。
具体地,第二转码服务器可以获取原始视频流中各视频帧的原始时间戳,第二转码服务器可以根据以下公式得到原始视频流中各视频帧转码后的时间戳:原始时间戳-基准时间戳=转码后的时间戳。这样例如基准时间戳为10100(毫秒),原始视频流中的视频帧A的原始时间戳为10200(毫秒),则10200-10100=100(毫秒)便为视频帧A转码后对应的时间戳。
在一个实施例中,第一转码服务器对原始视频流进行转码时,包括以下步骤:获取原始视频流中各个视频帧的原始时间戳;确定原始时间戳与基准时间戳的时间差值;按照时间差值确定对应视频帧的时间戳;基于确定的时间戳对原始视频流进行转码,得到第一转码流。
具体地,第一转码服务器可以获取原始视频流中各视频帧的原始时间戳,第一转码服务器可以根据以下公式得到原始视频流中各视频帧转码后的时间戳:原始时间戳-基准时间戳=转码后的时间戳。这样例如基准时间戳为10100(毫秒),原始视频流中的视频帧A的原始时间戳为10200(毫秒),则10200-10100=100(毫秒)便为视频帧A转码后对应的时间戳。
上述实施例中,直接通过视频帧在原始视频流中的原始时间戳与基准时间戳的差值来确定该视频帧转码后对应的时间戳,并且第一转码服务器与第二转码服务器是基于相同的基准时间戳对原始视频流进行转码,使得通道管理服务器可以更加便捷地比较第一转码流与第二转码流的时间戳是否对齐。
在一个实施例中,第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式;转码指令还携带有原始视频流在触发转码迁移时的末尾时间戳;根据转码指令对原始视频流进行转码,得到具有基于基准时间戳确定的时间戳的第二转码流包括:从原始视频流的末尾时间戳起,按照基准时间戳对原始视频流进行切片转码,得到具有基于基准时间戳确定的时间戳的第二转码流。
具体地,当第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式时,控制服务器可以获取原始视频流在触发转码迁移时的末尾时间戳。控制服务器生成携带有获取到的末尾时间戳和查询到的基准时间戳的转码指令,并将生成的转码指令发送至第二转码服务器。
第二转码服务器接收携带有末尾时间戳和基准时间戳的转码指令,根据该转码指令从接入服务器拉取原始视频流,从拉取的原始视频流的该末尾时间戳起,实时对原始视频流进行切片,并基于基准时间戳实时对切片得到的子原始视频流进行转码,得到第二转码流。可以理解的是,按照切片式转码方式得到的第二转码流分为多个子第二转码流,各个子第二转码流分别存储在各自对应的切片文件中。
在一个实施例中,控制服务器在获取原始视频流在触发转码迁移时的末尾时间戳时,还可以获取第一转码服务器对原始视频流进行转码得到的多个切片文件的文件标识,文件标识比如可以是切片文件的序列号。则控制服务器生成的转码指令中,还携带有获取到的文件标识。这样,第二转码服务器接收到的转码指令中该携带有文件标识,第二转码服务器便可以根据该文件标识对得到的第二转码流对应的各个切片文件进行标识。
在一个实施例中,例如在触发转码迁移时原始视频流的末尾时间戳为2000(毫秒),切片的间隔时间为1秒,则第二转码服务器在原始视频流的2000毫秒处切一次片,间隔1秒后,在原始视频流的3000毫秒处切一次片,得到2000(毫秒)-3000(毫秒)的子原始视频流。
第二转码服务器对2000(毫秒)-3000(毫秒)的子原始视频流的视频帧进行转码,得到该段子原始视频流对应的切片文件,该切片文件中存储有对2000(毫秒)-3000(毫秒)的子原始视频流的视频帧进行转码得到的子第二转码流以及该子第二转码流中的各视频帧对应的时间戳。例如控制服务器获取的第一转码服务器对原始视频流进行转码得到的多个切片文件的文件标识分别为1、2、3、4……55、56、57,则2000(毫秒)-3000(毫秒)的子原始视频流对应的切片文件的文件标识应为“58”。
上述实施例中,当第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式时,第二转码服务器对原始视频流进行转码的转码方式也为切片式转码方式。并且第二转码服务器从原始视频流在触发转码迁移时的末尾时间戳起对原始视频流进行切片。这样第一转码流对应的切片文件和第二转码流对应的切片文件便可以准确地衔接上。
在一个实施例中,基准时间戳为原始视频流的起始时间戳;原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;原始视频流中的视频帧在转码为第二转码流中的视频帧时,视频帧类型保持一致。
具体地,视频帧类型包括关键视频帧和参考视频帧。参考视频帧是参考相邻的前一参考视频帧或关键视频帧来编码得到的视频帧。例如图3所示的转码流中,关键视频帧为图3中的I帧,参考视频帧为图3中的P帧。参考视频帧302是转码服务器参考关键视频帧301进行编码得到的,参考视频帧303是转码服务器参考参考视频帧302进行编码得到的。
在原始视频流中的视频帧类型为关键视频帧的视频帧,经过第一转码服务器或第二转码服务器转码后,在第一转码流或第二转码流中的视频帧类型仍然为关键视频帧。在原始视频流中的视频帧类型为参考视频帧的视频帧,经过第一转码服务区或第二转码服务器转码后,在第一转码流或第二转码流中的视频帧类型仍然为参考视频帧。由于第一转码服务器或第二转码服务器是依次对原始视频流中的各视频帧进行转码,因此,得到的第一转码流或第二转码流中各视频帧的序列是不变的。
如图4所示,原始视频流的关键视频帧A1,经过第一服务器转码后,对应的仍然是关键视频帧B1,原始视频流的关键视频帧A2,经过第一服务器转码后,对应的仍然是关键视频帧B2。原始视频流经过转码后,第一转码流中两个关键视频帧之间的参考视频帧数量与在原始视频流中这两个关键视频帧之间的参考视频帧数量相同。例如原始视频流的关键视频帧A1与关键视频帧A2之间的参考视频帧数量和关键视频帧B1与关键视频帧A2之间的参考视频帧数量相同。
在一个实施例中,如图8所示,例如,原始视频流中各视频帧对应的原始时间戳依次为:10000(毫秒)、10100、10200、10300、10400、10500、10600、10700……,若基准时间戳为原始视频流的起始时间戳,则第一转码服务器根据“原始时间戳-10000=转码后的时间戳”确定各个视频帧转码后的时间戳依次为:0(毫秒)、100、200、300、400、500、600、700……。
例如触发转码迁移时,第一转码服务器刚好转码到原始视频流中的视频帧的原始时间戳为10600,则第二转码服务器可以从时间戳为10600的视频帧起,对原始视频流进行转码,如图8所示,第二转码服务器根据“原始时间戳-10000=转码后的时间戳”确定各个视频帧转码后的时间戳依次为:600(毫秒)、700、800、900……。
上述实施例中,第一转码服务器和第二转码服务器直接基于原始视频流的起始时间戳对原始视频流进行转码,并且原始视频流中的视频帧在转码为第一转码流或第二转码流中的视频帧时,视频帧类型保持一致,使得通道管理服务器可以更加便捷地比较第一转码流与第二转码流的时间戳是否对齐。
在一个实施例中,如图9所示,提供了一种视频流转码迁移装置900,该装置包括基准时间戳查询模块901、基准时间戳发送模块902、转码流拉取模块903和转码流输出模块904,其中:
基准时间戳查询模块901,用于查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
基准时间戳发送模块902,用于发送基准时间戳至第二转码服务器,使得第二转码服务器基于基准时间戳对原始视频流进行转码得到第二转码流;
转码流拉取模块903,用于拉取第二转码流,并保持从第一转码服务器拉取第一转码流;第二转码流具有基于基准时间戳确定的时间戳;
转码流输出模块904,用于保持输出第一转码流,直到监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
在一个实施例中,第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式;基准时间戳发送模块902还用于获取原始视频流在触发转码迁移时的末尾时间戳;发送携带基准时间戳和末尾时间戳的转码指令至第二转码服务器;转码指令用于指示第二转码服务器从原始视频流的末尾时间戳起进行切片转码,得到第二转码流。
在一个实施例中,视频流转码迁移装置还包括视频流监测模块,用于当监测到即将输出第一转码流的关键视频帧时,从第二转码流中查找与即将输出的关键视频帧相同的目标关键视频帧;将查找到的目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳进行比对;当目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳相同时,确定第一转码流与第二转码流的时间戳对齐。
在一个实施例中,基准时间戳为原始视频流的起始时间戳;原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;原始视频流中的视频帧在转码为第二转码流中的视频帧时,视频帧类型保持一致。
在一个实施例中,如图10所示,提供了一种视频流转码迁移装置1000,该装置包括转码指令接收模块1001、转码模块1002和第二转码流发送模块1003,其中:
转码指令接收模块1001,用于接收转码指令,转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
转码模块1002,用于根据转码指令对原始视频流进行转码得到第二转码流;第二转码流具有基于基准时间戳确定的时间戳;
第二转码流发送模块1003,用于发送第二转码流至通道管理服务器,使得通道管理服务器在监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
在一个实施例中,转码模块1002还用于获取原始视频流中各个视频帧的原始时间戳;确定原始时间戳与基准时间戳的时间差值;按照时间差值确定对应视频帧的时间戳;基于确定的时间戳对原始视频流进行转码,得到第二转码流。
在一个实施例中,第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式;转码指令还携带有原始视频流在触发转码迁移时的末尾时间戳;转码模块1002还用于从原始视频流的末尾时间戳起,按照基准时间戳对原始视频流进行切片转码,得到具有基于基准时间戳确定的时间戳的第二转码流。
在一个实施例中,基准时间戳为原始视频流的起始时间戳;原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;原始视频流中的视频帧在转码为第二转码流中的视频帧时,视频帧类型保持一致。
图2、5和7为一个实施例中视频流转码迁移方法的流程示意图。应该理解的是,虽然图2、5和7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、5和7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图1所示,提供了一种视频流转码迁移系统,该视频流转码迁移系统包括接入服务器110、第一转码服务器120、控制服务器1301、通道管理服务器1302、第二转码服务器140和内容分发网络服务器150,其中:
控制服务器1301查询第一转码服务器120将原始视频流转码为第一转码流的基准时间戳;发送基准时间戳至第二转码服务器140;
第二转码服务器140从接入服务器110拉取原始视频流,基于基准时间戳对原始视频流进行转码得到第二转码流;第二转码流具有基于基准时间戳确定的时间戳;
通道管理服务器1302拉取第二转码流,并保持从第一转码服务器120拉取第一转码流;
通道管理服务器1302保持输出第一转码流至内容分发网络服务器150,直到监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
图11示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的转码迁移服务器130或第二转码服务器140。如图11所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频流转码迁移方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频流转码迁移方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的视频流转码迁移装置可以实现为一种计算机程序的形式,计算机程序可在如图11所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频流转码迁移装置的各个程序模块,比如,图9所示的基准时间戳查询模块901、基准时间戳发送模块902、转码流拉取模块903和转码流输出模块904。比如,图10所示的转码指令接收模块1001、转码模块1002和第二转码流发送模块1003。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频流转码迁移方法中的步骤。
例如,图11所示的计算机设备可以通过如图9所示的视频流转码迁移装置中的基准时间戳查询模块901执行查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳。计算机设备可通过基准时间戳发送模块902执行发送基准时间戳至第二转码服务器,使得第二转码服务器基于基准时间戳对原始视频流进行转码得到第二转码流。计算机设备可通过转码流拉取模块903执行拉取第二转码流,并保持从第一转码服务器拉取第一转码流;第二转码流具有基于基准时间戳确定的时间戳。计算机设备可通过转码流输出模块904执行保持输出第一转码流,直到监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
例如,图11所示的计算机设备可以通过如图10所示的视频流转码迁移装置中的转码指令接收模块1001执行接收转码指令,转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳。计算机设备可以通过转码模块1002执行根据转码指令对原始视频流进行转码得到第二转码流;第二转码流具有基于基准时间戳确定的时间戳。计算机设备可以通过第二转码流发送模块1003执行发送第二转码流至通道管理服务器,使得通道管理服务器在监测到第一转码流与第二转码流的时间戳对齐时,将输出的第一转码流切换为第二转码流。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视频流转码迁移方法的步骤。此处视频流转码迁移方法的步骤可以是上述各个实施例的视频流转码迁移方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视频流转码迁移方法的步骤。此处XX方法的步骤可以是上述各个实施例的视频流转码迁移方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (13)
1.一种视频流转码迁移方法,包括:
查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
发送所述基准时间戳至第二转码服务器,使得所述第二转码服务器基于所述基准时间戳对所述原始视频流进行转码得到第二转码流;
拉取所述第二转码流,并保持从所述第一转码服务器拉取所述第一转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
保持输出所述第一转码流,直到监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二转码流。
2.根据权利要求1所述的方法,其特征在于,所述第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式;
所述发送所述基准时间戳至第二转码服务器,使得所述第二转码服务器基于所述基准时间戳对所述原始视频流进行转码得到第二转码流包括:
获取所述原始视频流在触发转码迁移时的末尾时间戳;
发送携带所述基准时间戳和末尾时间戳的转码指令至第二转码服务器;
所述转码指令用于指示所述第二转码服务器从所述原始视频流的所述末尾时间戳起进行切片转码,得到第二转码流。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当监测到即将输出所述第一转码流的关键视频帧时,从所述第二转码流中查找与即将输出的关键视频帧相同的目标关键视频帧;
将查找到的目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳进行比对;
当所述目标关键视频帧的时间戳与即将输出的关键视频帧的时间戳相同时,确定所述第一转码流与所述第二转码流的时间戳对齐。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述基准时间戳为所述原始视频流的起始时间戳;所述原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;所述原始视频流中的视频帧在转码为第二转码流中的视频帧时,视频帧类型保持一致。
5.一种视频流转码迁移方法,包括:
接收转码指令,所述转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
根据所述转码指令对所述原始视频流进行转码得到第二转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
发送所述第二转码流至通道管理服务器,使得所述通道管理服务器在监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二转码流。
6.根据权利要求5所述的方法,其特征在于,所述根据所述转码指令对所述原始视频流进行转码,得到具有基于所述基准时间戳确定的时间戳的第二转码流包括:
获取原始视频流中各个视频帧的原始时间戳;
确定所述原始时间戳与所述基准时间戳的时间差值;
按照所述时间差值确定对应视频帧的时间戳;
基于确定的所述时间戳对所述原始视频流进行转码,得到第二转码流。
7.根据权利要求5所述的方法,其特征在于,所述第一转码服务器对原始视频流进行转码的转码方式为切片式转码方式;所述转码指令还携带有所述原始视频流在触发转码迁移时的末尾时间戳;
所述根据所述转码指令对所述原始视频流进行转码,得到具有基于所述基准时间戳确定的时间戳的第二转码流包括:
从所述原始视频流的所述末尾时间戳起,按照所述基准时间戳对所述原始视频流进行切片转码,得到具有基于所述基准时间戳确定的时间戳的第二转码流。
8.根据权利要求5-7中任一项所述的方法,其特征在于,所述基准时间戳为所述原始视频流的起始时间戳;所述原始视频流中的视频帧在转码为第一转码流中的视频帧时,视频帧类型保持一致;所述原始视频流中的视频帧在转码为第二转码流中的视频帧时,视频帧类型保持一致。
9.一种视频流转码迁移装置,其特征在于,所述装置包括:
基准时间戳查询模块,用于查询第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
基准时间戳发送模块,用于发送所述基准时间戳至第二转码服务器,使得所述第二转码服务器基于所述基准时间戳对所述原始视频流进行转码得到第二转码流;
转码流拉取模块,用于拉取所述第二转码流,并保持从所述第一转码服务器拉取所述第一转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
转码流输出模块,用于保持输出所述第一转码流,直到监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二转码流。
10.一种视频流转码迁移装置,其特征在于,所述装置包括:
转码指令接收模块,用于接收转码指令,所述转码指令携带有第一转码服务器将原始视频流转码为第一转码流的基准时间戳;
转码模块,用于根据所述转码指令对所述原始视频流进行转码得到第二转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
第二转码流发送模块,用于发送所述第二转码流至通道管理服务器,使得所述通道管理服务器在监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二转码流。
11.一种视频流转码迁移系统,所述系统包括接入服务器、第一转码服务器、控制服务器、通道管理服务器、第二转码服务器和内容分发网络服务器,
所述控制服务器查询所述第一转码服务器将原始视频流转码为第一转码流的基准时间戳;发送所述基准时间戳至所述第二转码服务器;
所述第二转码服务器从所述接入服务器拉取所述原始视频流,基于所述基准时间戳对所述原始视频流进行转码得到第二转码流;所述第二转码流具有基于所述基准时间戳确定的时间戳;
所述通道管理服务器拉取所述第二转码流,并保持从所述第一转码服务器拉取所述第一转码流;
所述通道管理服务器保持输出所述第一转码流至所述内容分发网络服务器,直到监测到所述第一转码流与所述第二转码流的时间戳对齐时,将输出的所述第一转码流切换为所述第二转码流。
12.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述方法的步骤。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910257354.7A CN110213617B (zh) | 2019-04-01 | 2019-04-01 | 视频流转码迁移方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910257354.7A CN110213617B (zh) | 2019-04-01 | 2019-04-01 | 视频流转码迁移方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110213617A true CN110213617A (zh) | 2019-09-06 |
CN110213617B CN110213617B (zh) | 2022-03-18 |
Family
ID=67785277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910257354.7A Active CN110213617B (zh) | 2019-04-01 | 2019-04-01 | 视频流转码迁移方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110213617B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111866433A (zh) * | 2020-07-31 | 2020-10-30 | 腾讯科技(深圳)有限公司 | 视频源切换方法、播放方法、装置、设备和存储介质 |
CN112866413A (zh) * | 2021-02-19 | 2021-05-28 | 北京金山云网络技术有限公司 | 数据传输方法、装置、电子设备和计算机可读存储介质 |
CN112911322A (zh) * | 2021-01-26 | 2021-06-04 | 北京锐马视讯科技有限公司 | 直播云转码弹性伸缩方法和装置 |
CN113391902A (zh) * | 2021-06-22 | 2021-09-14 | 未鲲(上海)科技服务有限公司 | 一种任务调度方法及设备、存储介质 |
CN114071187A (zh) * | 2020-07-31 | 2022-02-18 | 海信视像科技股份有限公司 | 显示设备、服务器及分辨率快速切换方法 |
CN115426503A (zh) * | 2022-08-30 | 2022-12-02 | 百果园技术(新加坡)有限公司 | 一种转码服务切换方法、装置、设备及存储介质 |
US11910044B1 (en) | 2022-06-30 | 2024-02-20 | Amazon Technologies, Inc. | Systems and methods for switching the processing of a live content stream to another datacenter |
US12052447B1 (en) * | 2022-06-27 | 2024-07-30 | Amazon Technologies, Inc. | Dynamically moving transcoding of content between servers |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102439989A (zh) * | 2008-10-28 | 2012-05-02 | 西斯科技术公司 | 用于直播视频编码的流同步 |
CN102572517A (zh) * | 2011-12-21 | 2012-07-11 | 深圳市同洲视讯传媒有限公司 | 一种码流切换的方法、装置、服务器和系统 |
CN104469398A (zh) * | 2014-12-09 | 2015-03-25 | 北京清源新创科技有限公司 | 一种网络视频画面处理方法及装置 |
CN104768062A (zh) * | 2015-04-01 | 2015-07-08 | 上海阅维信息科技有限公司 | 实时视频流的无缝切换方法 |
US20150373400A1 (en) * | 2004-08-25 | 2015-12-24 | Broadcom Corporation | Method and system for fast digital channel change utilizing time-stamp managment |
CN106210884A (zh) * | 2016-07-13 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 视频文件的转码方法和装置 |
CN108235059A (zh) * | 2018-03-09 | 2018-06-29 | 网宿科技股份有限公司 | 一种分配转码任务的方法和系统 |
-
2019
- 2019-04-01 CN CN201910257354.7A patent/CN110213617B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150373400A1 (en) * | 2004-08-25 | 2015-12-24 | Broadcom Corporation | Method and system for fast digital channel change utilizing time-stamp managment |
CN102439989A (zh) * | 2008-10-28 | 2012-05-02 | 西斯科技术公司 | 用于直播视频编码的流同步 |
CN102572517A (zh) * | 2011-12-21 | 2012-07-11 | 深圳市同洲视讯传媒有限公司 | 一种码流切换的方法、装置、服务器和系统 |
CN104469398A (zh) * | 2014-12-09 | 2015-03-25 | 北京清源新创科技有限公司 | 一种网络视频画面处理方法及装置 |
CN104768062A (zh) * | 2015-04-01 | 2015-07-08 | 上海阅维信息科技有限公司 | 实时视频流的无缝切换方法 |
CN106210884A (zh) * | 2016-07-13 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 视频文件的转码方法和装置 |
CN108235059A (zh) * | 2018-03-09 | 2018-06-29 | 网宿科技股份有限公司 | 一种分配转码任务的方法和系统 |
Non-Patent Citations (2)
Title |
---|
D. WILSON: "Exploiting interlayer correlation of SNR scalable video", 《 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 * |
徐威: "《数字电视网络制播技术》", 《数字电视网络制播技术》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111866433A (zh) * | 2020-07-31 | 2020-10-30 | 腾讯科技(深圳)有限公司 | 视频源切换方法、播放方法、装置、设备和存储介质 |
CN114071187A (zh) * | 2020-07-31 | 2022-02-18 | 海信视像科技股份有限公司 | 显示设备、服务器及分辨率快速切换方法 |
CN114071187B (zh) * | 2020-07-31 | 2024-02-27 | 海信视像科技股份有限公司 | 显示设备、服务器及分辨率快速切换方法 |
CN112911322A (zh) * | 2021-01-26 | 2021-06-04 | 北京锐马视讯科技有限公司 | 直播云转码弹性伸缩方法和装置 |
CN112911322B (zh) * | 2021-01-26 | 2022-09-16 | 北京锐马视讯科技有限公司 | 直播云转码弹性伸缩方法和装置 |
CN112866413A (zh) * | 2021-02-19 | 2021-05-28 | 北京金山云网络技术有限公司 | 数据传输方法、装置、电子设备和计算机可读存储介质 |
CN113391902A (zh) * | 2021-06-22 | 2021-09-14 | 未鲲(上海)科技服务有限公司 | 一种任务调度方法及设备、存储介质 |
US12052447B1 (en) * | 2022-06-27 | 2024-07-30 | Amazon Technologies, Inc. | Dynamically moving transcoding of content between servers |
US11910044B1 (en) | 2022-06-30 | 2024-02-20 | Amazon Technologies, Inc. | Systems and methods for switching the processing of a live content stream to another datacenter |
CN115426503A (zh) * | 2022-08-30 | 2022-12-02 | 百果园技术(新加坡)有限公司 | 一种转码服务切换方法、装置、设备及存储介质 |
CN115426503B (zh) * | 2022-08-30 | 2024-05-17 | 百果园技术(新加坡)有限公司 | 一种转码服务切换方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110213617B (zh) | 2022-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110213617A (zh) | 视频流转码迁移方法、装置和系统 | |
US10063872B2 (en) | Segment based encoding of video | |
US10375156B2 (en) | Using worker nodes in a distributed video encoding system | |
US10638169B2 (en) | Codec techniquest for fast switching without a synchronization frame | |
US10341561B2 (en) | Distributed image stabilization | |
US10602153B2 (en) | Ultra-high video compression | |
Kreuzberger et al. | A scalable video coding dataset and toolchain for dynamic adaptive streaming over HTTP | |
CN100481956C (zh) | 视频传输 | |
US10506235B2 (en) | Distributed control of video encoding speeds | |
US20170078676A1 (en) | Variable bitrate control for distributed video encoding | |
CN105075276B (zh) | 在广播通信网络中操作客户端设备和服务器设备的技术 | |
US8411739B2 (en) | Bitstream conversion method, bitstream conversion apparatus, bitstream connecting apparatus, bitstream splitting program, bitstream conversion program, and bitstream connecting program | |
US20130104177A1 (en) | Distributed real-time video processing | |
US10499070B2 (en) | Key frame placement for distributed video encoding | |
US10820066B2 (en) | Reconciling ABR segments across redundant sites | |
CN105075273A (zh) | 自适应流式传输技术 | |
CN105359511A (zh) | 为了自适应位速率流化而利用自适应量化编码多个视频流的系统和方法 | |
CN110213615B (zh) | 视频转码方法、装置、服务器以及存储介质 | |
CN104469370A (zh) | 一种视频转码的方法和装置 | |
CN109348309A (zh) | 一种适用于帧率上变换的分布式视频转码方法 | |
Keltsch et al. | Remote production and mobile contribution over 5G networks: scenarios, requirements and approaches for broadcast quality media streaming | |
KR20110059428A (ko) | 그리드 파일 시스템 방식의 분산을 통한 동영상 인코딩 방법 및 장치와 그 시스템 | |
Kobayashi et al. | A Low-Latency 4K HEVC Multi-Channel Encoding System with Content-Aware Bitrate Control for Live Streaming | |
KR101800998B1 (ko) | 콘텐츠 제공 장치 및 방법 | |
US11909795B1 (en) | Input switching for streaming content |
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 |