CN115426503B - 一种转码服务切换方法、装置、设备及存储介质 - Google Patents
一种转码服务切换方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115426503B CN115426503B CN202211051413.3A CN202211051413A CN115426503B CN 115426503 B CN115426503 B CN 115426503B CN 202211051413 A CN202211051413 A CN 202211051413A CN 115426503 B CN115426503 B CN 115426503B
- Authority
- CN
- China
- Prior art keywords
- transcoding
- stream data
- switching
- code stream
- transcoding service
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 239000000872 buffer Substances 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000009191 jumping 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/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例提供了一种转码服务切换方法、装置、设备及存储介质。本申请实施例提供的技术方案通过在接收到第一转码服务端发出的转码服务切换请求时,向第二转码服务端发送转码请求,并同时向第一转码服务端和第二转码服务端发送视频源流数据,接收第一转码服务端和第二转码服务端输出的第一码流数据和第二码流数据,并基于第一码流数据和第二码流数据进行码流数据切换,在切换转码服务时同时保持第一转码服务端和第二转码服务端的输出,在转码服务切换期间保持码流数据的稳定输出,实现平滑的转码服务切换,有效提高用户的直播观看体验。
Description
技术领域
本申请实施例涉及视频处理技术领域,尤其涉及一种转码服务切换方法、装置、设备及存储介质。
背景技术
直播转码通过将主播源流数据经转码服务转换为不同编码格式、分辨率和码率的转码视频流,从而满足不同直播观众的不同网络环境、设备的播放需求。对于网络环境较差、带宽较低的直播观众,观看直播的流畅性依赖于转码服务的稳定。
在机器资源不足导致转码输出异常、转码服务升级等情况下,需要将当前转码服务切换到其他转码服务。目前转码服务的切换一般是将原先的转码服务正在进行转码任务停止,然后重新申请新的转码服务进行转码,在转码服务切换期间观看转码档位视频时,容易产生画面卡顿、跳变等情况,转码服务的切换效果较差,影响用户的直播观看体验。
发明内容
本申请实施例提供一种转码服务切换方法、装置、设备及存储介质,以解决相关技术中转码服务的切换效果较差,影响用户的直播观看体验的情况,优化转码服务的切换效果,有效提高用户的直播观看体验。
在第一方面,本申请实施例提供了一种转码服务切换方法,包括:
响应于第一转码服务端发出的转码服务切换请求,向所述转码服务切换请求指示的第二转码服务端发送转码请求;
向所述第一转码服务端和所述第二转码服务端发送视频源流数据,以供所述第一转码服务端基于所述视频源流数据输出第一码流数据,以及供所述第二转码服务端基于所述视频源流数据输出第二码流数据;
基于所述第一码流数据和所述第二码流数据进行码流数据切换,以将向用户输出的转码视频帧来源从所述第一转码服务端切换至所述第二转码服务端。
在第二方面,本申请实施例提供了一种转码服务切换装置,包括切换响应模块、源流推送模块和码流切换模块,其中:
所述切换响应模块,配置为响应于第一转码服务端发出的转码服务切换请求,向所述转码服务切换请求指示的第二转码服务端发送转码请求;
所述源流推送模块,配置为向所述第一转码服务端和所述第二转码服务端发送视频源流数据,以供所述第一转码服务端基于所述视频源流数据输出第一码流数据,以及供所述第二转码服务端基于所述视频源流数据输出第二码流数据;
所述码流切换模块,配置为基于所述第一码流数据和所述第二码流数据进行码流数据切换,以将向用户输出的转码视频帧来源从所述第一转码服务端切换至所述第二转码服务端。
在第三方面,本申请实施例提供了一种转码服务切换设备,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的转码服务切换方法。
在第四方面,本申请实施例提供了一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的转码服务切换方法。
在第五方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从计算机可读存储介质读取并执行计算机程序,使得设备执行如第一方面所述的转码服务切换方法。
本申请实施例通过在接收到第一转码服务端发出的转码服务切换请求时,向第二转码服务端发送转码请求,并同时向第一转码服务端和第二转码服务端发送视频源流数据,接收第一转码服务端和第二转码服务端输出的第一码流数据和第二码流数据,并基于第一码流数据和第二码流数据进行码流数据切换,在切换转码服务时同时保持第一转码服务端和第二转码服务端的输出,在转码服务切换期间保持码流数据的稳定输出,实现平滑的转码服务切换,有效提高用户的直播观看体验。
附图说明
图1是本申请实施例提供的一种转码服务切换方法的流程图;
图2是本申请实施例提供的另一种转码服务切换方法的流程图;
图3是本申请实施例提供的一种满足码流切换条件的转码视频帧的确定流程示意图;
图4是本申请实施例提供的一种转码服务切换装置的结构示意图;
图5是本申请实施例提供的一种转码服务切换设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时上述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。上述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1给出了本申请实施例提供的一种转码服务切换方法的流程图,本申请实施例提供的转码服务切换方法可以由转码服务切换装置来执行,该转码服务切换装置可以通过硬件和/或软件的方式实现,并集成在转码服务切换设备(例如视频前端)中。
下述以转码服务切换装置执行转码服务切换方法为例进行描述。参考图1,该转码服务切换方法包括:
S101:响应于第一转码服务端发出的转码服务切换请求,向转码服务切换请求指示的第二转码服务端发送转码请求。
本方案提供的第一转码服务端为当前向转码服务切换装置提供转码服务的转码服务端,第二转码服务端为需要代替第一转码服务端为转码服务切换装置提供转码服务的转码服务端。其中转码服务切换装置可作为视频前端(媒体系统中与用户直接交互的媒体服务进程),视频发送端(例如直播场景下的主播端)通过连接视频前端进程推流(视频源流数据),视频接收端(例如直播场景下的观众端)通过连接视频前端进程拉取视频流(视频源流数据或转码得到的转码流数据),其中,视频发送端的视频源流数据推到视频前端之后由视频前端负责与转码服务连接从而进行转码并得到转码流数据(例如将视频源流数据转码成不同分辨率、码率的转码流数据,以满足不同用户的视频观看需求)。其中,可由第一转码服务向转码服务管理进程发起转码服务切换申请,由转码服务管理进程确定用于替换第一转码服务端提供转码服务的第二转码服务端。
示例性的,第一转码服务端在需要切换转码服务时(例如在机器资源不足导致转码输出异常,或第一转码服务端需要进行转码服务升级时),确定替换自身转码服务的第二转码服务端,并基于第二转码服务端向转码服务切换装置发送转码服务切换请求。转码服务切换装置在接收到第一转码服务端发送的转码服务切换请求后,确定转码服务切换请求所指示的第二转码服务端,并向该转码服务端发起转码请求,以请求第二转码服务端提供转码服务。
S102:向第一转码服务端和第二转码服务端发送视频源流数据,以供第一转码服务端基于视频源流数据输出第一码流数据,以及供第二转码服务端基于视频源流数据输出第二码流数据。
示例性的,在第二转码服务端通过转码服务切换装置的转码请求后,转码服务切换装置同时向第一转码服务端和第二转码服务端发送视频源流数据,并接收第一转码服务端基于视频源流数据进行转码输出第一码流数据,以及第二转码服务端基于视频源流数据进行转码输出第二码流数据。即同时通过第一转码服务端和第二转码服务端提供的转码服务对视频源流数据进行转码,分别得到第一码流数据和第二码流数据。
S103:基于第一码流数据和第二码流数据进行码流数据切换,以将向用户输出的转码视频帧来源从第一转码服务端切换至第二转码服务端。
示例性的,在接收到第一转码服务端返回的第一码流数据和第二转码服务端返回的第二码流数据后,可基于第一码流数据和第二码流数据进行码流数据切换,即向用户(视频接收端)返回的转码流数据从第一码流数据逐渐过渡到第二码流数据,从而将向用户输出的转码视频帧来源从第一转码服务端输出的第一码流数据切换至第二转码服务端输出的第二码流数据。
本方案在进行码流数据切换的过程中,保持第一转码服务端和第二转码服务端的转码服务,并利用第一转码服务端和第二转码服务端输出的第一码流数据和第二码流数据进行转码流数据的平滑对接切换,在完成转码流数据的切换后再由第二转码服务端完全替换第一转码服务端,从而保证在切换过程中转码流稳定输出,有效减少在转码服务切换期间观看转码档位视频时,产生画面卡顿、跳变等情况,保证观众的视频观看体验。
在一个可能的实施例中,在基于第一码流数据和第二码流数据进行码流数据切换之后,还包括:在码流数据切换成功的情况下,停止向第一转码服务端发送视频源流数据。
示例性的,在基于第一码流数据和第二码流数据进行码流数据切换之后,等待码流数据切换成功,并在码流数据切换成功时,可停止向第一转码服务端发送视频源流数据,以结束第一转码服务端的转码服务,释放第一转码服务端的计算资源,或者第一转码服务端可正常进行转码服务升级,第一转码服务端可执行设定任务,并不影响对转码服务切换装置的转码服务需求以及观众的视频观看体验。
在一个可能的实施例中,在基于第一码流数据和第二码流数据进行码流数据切换之后,若码流数据切换失败,则清空本地缓存的第二码流数据,并停止向第二转码服务端发送视频源流数据,继续由第一转码服务端提供转码服务,保证用户视频观看体验。可选的,在码流数据切换失败后,可重新向第二转码服务端发起转码请求并重新进行转码服务切换,或者是通知第一转码服务端重新确定新的第二转码服务端,以保证转码服务的成功切换。
上述,通过在接收到第一转码服务端发出的转码服务切换请求时,向第二转码服务端发送转码请求,并同时向第一转码服务端和第二转码服务端发送视频源流数据,接收第一转码服务端和第二转码服务端输出的第一码流数据和第二码流数据,并基于第一码流数据和第二码流数据进行码流数据切换,在切换转码服务时同时保持第一转码服务端和第二转码服务端的输出,在转码服务切换期间保持码流数据的稳定输出,实现平滑的转码服务切换,有效提高用户的直播观看体验。
在上述实施例的基础上,图2给出了本申请实施例提供的另一种转码服务切换方法的流程图,该转码服务切换方法是对上述转码服务切换方法的具体化。参考图2,该转码服务切换方法包括:
S201:响应于第一转码服务端发出的转码服务切换请求,向转码服务切换请求指示的第二转码服务端发送转码请求。
S202:向第一转码服务端和第二转码服务端发送视频源流数据,以供第一转码服务端基于视频源流数据输出第一码流数据,以及供第二转码服务端基于视频源流数据输出第二码流数据。
S203:基于第一码流数据和第二码流数据,确定满足码流切换条件的转码视频帧。
示例性的,在接收到第一转码服务端和第二转码服务端返回的第一码流数据和第二码流数据后,对接收到的第一码流数据和第二码流数据进行缓存(例如将第一码流数据和第二码流数据缓存在抖动缓冲器(jitter buffer)中,抖动缓冲器可通过缓存一定视频包,以增加延迟的方式来抗网络抖动,尽可能平滑地输出视频,保证用户视频观看体验)。
进一步的,根据缓存的第一码流数据和第二码流数据确定可以开始进行码流切换的时机,本方案通过检测第一码流数据和第二码流数据中满足码流切换条件的转码视频帧确定开始进行码流切换的时机,即基于足码流切换条件的转码视频帧进行码流切换。
在一个实施例中,由于两个不同转码服务转码生成的内容无法保证完全相同,在进行码流切换时需要以图像组(GOP)为单位,从而保证用户在播放接收到的转码视频流时看到的是连续的画面,有效减少花屏等现象的出现。即本方案提供的第一码流数据和第二码流数据以图像组为单位进行传输,并且所确定的满足码流切换条件的转码视频帧为图像组中的关键帧(I帧)。
其中,满足码流切换条件的转码视频帧可以是第二转码服务端能比第一转码服务端更快输出最新转码流数据或第二转码服务端能在较短时间内追赶上第一转码服务端输出的最新转码流数据时对应的数据帧。
在一个可能的实施例中,如图3提供的一种满足码流切换条件的转码视频帧的确定流程示意图所示,本方案在基于第一码流数据和第二码流数据,确定满足码流切换条件的转码视频帧时,包括:
S2031:基于第一码流数据和第二码流数据的输出时间信息确定转码视频帧的输出时间差。
S2032:从第一码流数据和第二码流数据中确定输出时间差在设定的输出延时阈值之内的转码视频帧的切换序号。
其中,第一码流数据和第二码流数据中不同的转码视频帧对应不同的帧序号,可以理解的是,第一码流数据和第二码流数据中对视频源流数据中同一个源流视频帧进行解码得到的转码视频帧,对应的帧序号相同。
示例性的,在接收到第一码流数据和第二码流数据后,确定第一码流数据和第二码流数据的输出时间信息(接收到对应转码视频帧的时间戳或对应转码服务端输出转码视频帧的时间戳),并基于(接收到的最新相同帧序号的)第一码流数据和第二码流数据的输出时间信息计算转码视频帧的输出时间差。其中输出时间差可指示第一转码服务端和第二转码服务端对于相同源流视频帧或源流视频包进行转码并输出转码视频帧的输出时间差。
例如序号为x的源流视频帧,对应的转码视频帧的输出时间差=序号为x的第一转码视频帧的输出时间信息-序号为x的第二转码视频帧的输出时间信息,其中第一转码视频帧为第一码流数据中的转码视频帧,第二转码视频帧为第二码流数据中的转码视频帧。或者是关键帧的帧序号为x的源流视频包,对应的转码视频帧的输出时间差=序号为x的第一转码视频包的输出时间信息-序号为x的第二转码视频包的输出时间信息,其中第一转码视频包为第一码流数据中的转码视频包,第二转码视频包为第二码流数据中的转码视频包。
进一步的,实时将接收到的最新相同帧序号的转码视频帧的输出时间差和设定的输出延时阈值进行比较,以从第一码流数据和第二码流数据中确定输出时间差在设定的输出延时阈值之内(即输出时间差≤输出延时阈值)的转码视频帧的帧序号,并将该帧序号作为可以开始进行码流数据切换的转码视频帧的切换序号。可选的,输出延时阈值可根据用户缓存转码流数据(包括第一码流数据和第二码流数据)的抖动缓冲器的缓存空间大小确定,例如将输出延时阈值设置为可通过抖动缓冲器来弥补第一码流数据和第二码流数据的输出时间差造成的输出延时的时间,例如300-400ms。
需要进行解释的是,本方案在接收并缓存第一码流数据和第二码流数据时,第二码流数据进入等待就绪状态,在等待就绪状态下的第二码流数据并未进行码流数据切换,而是等待缓存的第二码流数据的输出可赶上第一码流数据的输出。在输出时间差在设定的输出延时阈值之内时,可确定第二转码服务端能比第一转码服务端更快输出最新转码流数据或第二转码服务端能在较短时间内追赶上第一转码服务端输出的最新转码流数据,可确定第二码流数据可从等待就绪状态转换为就绪状态,可以开始进行码流数据切换,有效保证码流数据切换的平滑进行。
S204:基于满足码流切换条件的转码视频帧进行码流数据切换,以将向用户输出的转码视频帧来源从第一转码服务端切换至第二转码服务端。
示例性的,在确定满足码流切换条件的转码视频帧后,基于满足码流切换条件的转码视频帧进行码流数据切换,此时第二转码服务端能比第一转码服务端更快输出最新转码流数据或第二转码服务端能在较短时间内追赶上第一转码服务端输出的最新转码流数据,可顺利将向用户输出的转码视频帧来源从第一转码服务端平滑切换至第二转码服务端。
在一个可能的实施例中,本方案在基于满足码流切换条件的转码视频帧进行码流数据切换时,具体为:将第一码流数据中在切换序号之前的转码视频帧,以及第二码流数据中在切换序号及之后的转码视频帧,确定为需要输出的转码视频帧。
示例性的,在确定可以开始进行码流数据切换的转码视频帧的切换序号后,将第一码流数据中帧序号在该切换序号之前的所有转码视频帧确定为需要向用户输出的转码视频帧,以及将第二码流数据中帧序号为切换序号以及帧序号在切换序号之后的所有转码视频帧确定为需要向用户输出的转码视频帧。
对应的,在进行码流数据切换时,向用户发送第一码流数据中在切换序号之前的转码视频帧,并在完成第一码流数据中在切换序号之前的转码视频帧的发送后,向用户发送第二码流数据中在切换序号及之后的转码视频帧。其中,在完成一路(源流视频数据可转码为多路转码流数据输出)第一码流数据中在切换序号之前的转码视频帧的发送时,可确定对应路的码流数据切换成功,在所有路的第一码流数据中在切换序号之前的转码视频帧的发送时,可确定整体的码流数据切换成功。本方案在每路转码流数据就绪时各自进行切换,每路转码流数据维护各自切换状态,所有转码流数据切换完成时确定整体切换完成,在存在某路转码流数据切换失败时,将已切换成功的转码流数据重新切换回第一转码服务端,并标记整体切换失败,保证转码服务的正常进行,即使码流数据切换失败,也依旧使用原来转码服务的转码流数据,减少对用户的视频观看体验的影响。
可选的,在确定切换序号或完成码流数据切换后,可将缓存的第一码流数据在切换序号及之后的转码视频帧删除,以及将缓存的第一码流数据在切换序号之前的转码视频帧删除,减少对缓存空间的占用。
在一个可能的实施例中,本方案在基于第一码流数据和第二码流数据进行码流数据切换之后,本方案提供的转码服务切换方法还包括:在成功向用户输出第一码流数据中在切换序号之前的所有转码视频帧的情况下,确定码流数据切换成功;和/或,在基于第一码流数据和第二码流数据进行码流数据切换的切换持续时长达到第一时长阈值的情况下,确定码流数据切换成功。
示例性的,在确定切换序号后,进入整体开始切换状态,继续向用户发送第一码流数据中帧序号在切换序号之前的转码视频帧,并且在成功向用户输出第一码流数据中在切换序号之前的所有转码视频帧时,可确定码流数据切换成功。在确定码流数据切换成功时,可停止向第一转码服务端发送视频源流数据,后续的源流视频数据均由第二转码服务端进行转码即可。
同时,在确定切换序号并基于第一码流数据和第二码流数据进行码流数据切换时,对基于第一码流数据和第二码流数据进行码流数据切换的切换持续时长(例如在确定切换序号后继续向用户发送第一码流数据中帧序号在切换序号之前的转码视频帧的持续时长)达到设定的第一时长阈值时,确定码流数据切换成功。即在码流数据切换的持续时间过长时,也强制将码流数据切换进度标记为切换完成,减少因陷入整体开始切换状态而导致无法成功切换转码服务的情况。
在一个可能的实施例中,在向第一转码服务端和第二转码服务端发送视频源流数据之后,本方案提供的转码服务切换方法还包括:在确定满足码流切换条件的转码视频帧的检测时长达到第二时长阈值的情况下,确定码流数据切换失败;响应于码流数据切换失败,清空缓存的第二码流数据,并停止向第二转码服务端发送视频源流数据。
示例性的,在向第一转码服务端和第二转码服务端发送视频源流数据之后,确定满足码流切换条件的转码视频帧以进行码流数据切换,即计算同一帧序号的转码视频帧的输出时间差,若确定转码视频帧的输出时间差在设定的输出延时阈值之内时,可基于该转码视频帧进行码流数据切换。在向第一转码服务端和第二转码服务端发送视频源流数据之后,对确定满足码流切换条件的转码视频帧的检测时长进行统计,在检测时长达到设定的第二时长阈值(即在检测时长达到第二时长阈值时仍未检测到输出时间差在设定的输出延时阈值之内的转码视频帧)时,确定码流数据切换失败。同时,在确定码流数据切换失败时,清空缓存的第二码流数据,并停止向第二转码服务端发送视频源流数据,恢复到由第一转码服务端的单个转码服务状态,保证视频的正常转服务。
上述,通过在接收到第一转码服务端发出的转码服务切换请求时,向第二转码服务端发送转码请求,并同时向第一转码服务端和第二转码服务端发送视频源流数据,接收第一转码服务端和第二转码服务端输出的第一码流数据和第二码流数据,并基于第一码流数据和第二码流数据进行码流数据切换,在切换转码服务时同时保持第一转码服务端和第二转码服务端的输出,在转码服务切换期间保持码流数据的稳定输出,实现平滑的转码服务切换,有效提高用户的直播观看体验。在需要切换转码服务时,同时向第一转码服务端和第二转码服务端发起转码,通过检查两个转码服务输出的转码流的状态是否可以平滑对接切换,在合适的时机用第二转码服务端输出的第二码流数据替代当前第一转码服务端输出的第一码流数据,实现在用户无感知的情况下切换转码服务,相比于相关技术中停掉第一转码服务端的转码服务再重新申请第二转码服务端提供转码服务并重新转码的方式,即使出现转码帧堆积等异常情况也能缩短转码流中断时间,对观众体验更友好,更有利于转码资源调度。
图4是本申请实施例提供的一种转码服务切换装置的结构示意图。参考图4,该转码服务切换装置包括切换响应模块41、源流推送模块42和码流切换模块43。
其中,切换响应模块41,配置为响应于第一转码服务端发出的转码服务切换请求,向转码服务切换请求指示的第二转码服务端发送转码请求;
源流推送模块42,配置为向第一转码服务端和第二转码服务端发送视频源流数据,以供第一转码服务端基于视频源流数据输出第一码流数据,以及供第二转码服务端基于视频源流数据输出第二码流数据;
码流切换模块43,配置为基于第一码流数据和第二码流数据进行码流数据切换,以将向用户输出的转码视频帧来源从第一转码服务端切换至第二转码服务端。
上述,通过在接收到第一转码服务端发出的转码服务切换请求时,向第二转码服务端发送转码请求,并同时向第一转码服务端和第二转码服务端发送视频源流数据,接收第一转码服务端和第二转码服务端输出的第一码流数据和第二码流数据,并基于第一码流数据和第二码流数据进行码流数据切换,在切换转码服务时同时保持第一转码服务端和第二转码服务端的输出,在转码服务切换期间保持码流数据的稳定输出,实现平滑的转码服务切换,有效提高用户的直播观看体验。
在上述实施例的基础上,转码服务切换装置还包括切换处理模块,切换处理模块配置为在码流数据切换成功的情况下,停止向第一转码服务端发送视频源流数据。
在上述实施例的基础上,码流切换模块43具体配置为:
基于第一码流数据和第二码流数据,确定满足码流切换条件的转码视频帧;
基于满足码流切换条件的转码视频帧进行码流数据切换。
在上述实施例的基础上,第一码流数据和第二码流数据以图像组为单位进行传输,转码视频帧为图像组中的关键帧。
在上述实施例的基础上,码流切换模块43具体配置为:
基于第一码流数据和第二码流数据的输出时间信息确定转码视频帧的输出时间差;
从第一码流数据和第二码流数据中确定输出时间差在设定的输出延时阈值之内的转码视频帧的切换序号。
在上述实施例的基础上,码流切换模块43在基于满足码流切换条件的转码视频帧进行码流数据切换,配置为:
将第一码流数据中在切换序号之前的转码视频帧,以及第二码流数据中在切换序号及之后的转码视频帧,确定为需要输出的转码视频帧。
在上述实施例的基础上,转码服务切换装置还包括转码检测模块,转码检测模块配置为:
在成功向用户输出第一码流数据中在切换序号之前的所有转码视频帧的情况下,确定码流数据切换成功;和/或,
在基于第一码流数据和第二码流数据进行码流数据切换的切换持续时长达到第一时长阈值的情况下,确定码流数据切换成功。
在上述实施例的基础上,转码服务切换装置还包括转码检测模块,转码检测模块配置为在确定满足码流切换条件的转码视频帧的检测时长达到第二时长阈值的情况下,确定码流数据切换失败;
转码服务切换装置还包括切换处理模块,切换处理模块配置为响应于码流数据切换失败,清空缓存的第二码流数据,并停止向第二转码服务端发送视频源流数据。
值得注意的是,上述转码服务切换装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
本申请实施例还提供了一种转码服务切换设备,该转码服务切换设备可集成本申请实施例提供的转码服务切换装置。图5是本申请实施例提供的一种转码服务切换设备的结构示意图。参考图5,该转码服务切换设备包括:输入装置53、输出装置54、存储器52以及一个或多个处理器51;存储器52,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器51执行,使得一个或多个处理器51实现如上述实施例提供的转码服务切换方法。上述提供的转码服务切换装置、设备和计算机可用于执行上述任意实施例提供的转码服务切换方法,具备相应的功能和有益效果。
本申请实施例还提供一种存储计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的转码服务切换方法。当然,本申请实施例所提供的一种存储计算机可执行指令的存储介质,其计算机可执行指令不限于如上提供的转码服务切换方法,还可以执行本申请任意实施例所提供的转码服务切换方法中的相关操作。上述实施例中提供的转码服务切换装置、设备及存储介质可执行本申请任意实施例所提供的转码服务切换方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的转码服务切换方法。
在一些可能的实施方式中,本公开提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当上述程序产品在计算机设备上运行时,程序代码用于使上述计算机设备执行本说明书上述描述的根据本公开各种示例性实施方式的方法中的步骤,例如,计算机设备可以执行本公开实施例所记载的转码服务切换方法。其中,程序产品可以采用一个或多个可读介质的任意组合。
Claims (7)
1.一种转码服务切换方法,其特征在于,包括:
响应于第一转码服务端发出的转码服务切换请求,向所述转码服务切换请求指示的第二转码服务端发送转码请求;
向所述第一转码服务端和所述第二转码服务端发送视频源流数据,以供所述第一转码服务端基于所述视频源流数据输出第一码流数据,以及供所述第二转码服务端基于所述视频源流数据输出第二码流数据;
基于所述第一码流数据和所述第二码流数据的输出时间信息确定转码视频帧的输出时间差;从所述第一码流数据和所述第二码流数据中确定所述输出时间差在设定的输出延时阈值之内的转码视频帧的切换序号,所述输出延时阈值根据抖动缓冲器的缓存空间大小确定;将所述第一码流数据中在所述切换序号之前的转码视频帧,以及所述第二码流数据中在所述切换序号及之后的转码视频帧,确定为需要输出的转码视频帧,以图像组为单位进行码流数据切换,以将向用户输出的转码视频帧来源从所述第一转码服务端切换至所述第二转码服务端;所述第一码流数据和所述第二码流数据以图像组为单位进行传输,所述转码视频帧为图像组中的关键帧。
2.根据权利要求1所述的转码服务切换方法,其特征在于,所述基于所述第一码流数据和所述第二码流数据,确定满足码流切换条件的转码视频帧;基于满足码流切换条件的转码视频帧以图像组为单位进行码流数据切换之后,还包括:
在码流数据切换成功的情况下,停止向所述第一转码服务端发送视频源流数据。
3.根据权利要求1所述的转码服务切换方法,其特征在于,所述基于所述第一码流数据和所述第二码流数据,确定满足码流切换条件的转码视频帧;基于满足码流切换条件的转码视频帧以图像组为单位进行码流数据切换之后,还包括:
在成功向用户输出所述第一码流数据中在所述切换序号之前的所有转码视频帧的情况下,确定码流数据切换成功;和/或,
在基于所述第一码流数据和所述第二码流数据进行码流数据切换的切换持续时长达到第一时长阈值的情况下,确定码流数据切换成功。
4.根据权利要求1所述的转码服务切换方法,其特征在于,所述向所述第一转码服务端和所述第二转码服务端发送视频源流数据之后,还包括:
在确定满足码流切换条件的转码视频帧的检测时长达到第二时长阈值的情况下,确定码流数据切换失败;
响应于码流数据切换失败,清空缓存的所述第二码流数据,并停止向所述第二转码服务端发送视频源流数据。
5.一种转码服务切换装置,其特征在于,包括切换响应模块、源流推送模块和码流切换模块,其中:
所述切换响应模块,配置为响应于第一转码服务端发出的转码服务切换请求,向所述转码服务切换请求指示的第二转码服务端发送转码请求;
所述源流推送模块,配置为向所述第一转码服务端和所述第二转码服务端发送视频源流数据,以供所述第一转码服务端基于所述视频源流数据输出第一码流数据,以及供所述第二转码服务端基于所述视频源流数据输出第二码流数据;
所述码流切换模块,配置为基于所述第一码流数据和所述第二码流数据的输出时间信息确定转码视频帧的输出时间差;从所述第一码流数据和所述第二码流数据中确定所述输出时间差在设定的输出延时阈值之内的转码视频帧的切换序号,所述输出延时阈值根据抖动缓冲器的缓存空间大小确定;将所述第一码流数据中在所述切换序号之前的转码视频帧,以及所述第二码流数据中在所述切换序号及之后的转码视频帧,确定为需要输出的转码视频帧,以图像组为单位进行码流数据切换,以将向用户输出的转码视频帧来源从所述第一转码服务端切换至所述第二转码服务端;所述第一码流数据和所述第二码流数据以图像组为单位进行传输,所述转码视频帧为图像组中的关键帧。
6.一种转码服务切换设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4任一项所述的转码服务切换方法。
7.一种存储计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-4任一项所述的转码服务切换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211051413.3A CN115426503B (zh) | 2022-08-30 | 2022-08-30 | 一种转码服务切换方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211051413.3A CN115426503B (zh) | 2022-08-30 | 2022-08-30 | 一种转码服务切换方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115426503A CN115426503A (zh) | 2022-12-02 |
CN115426503B true CN115426503B (zh) | 2024-05-17 |
Family
ID=84199552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211051413.3A Active CN115426503B (zh) | 2022-08-30 | 2022-08-30 | 一种转码服务切换方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115426503B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006067483A (ja) * | 2004-08-30 | 2006-03-09 | Sanyo Electric Co Ltd | 映像通信方法及び映像通信装置 |
CN101083756A (zh) * | 2007-03-14 | 2007-12-05 | 中国科学技术大学 | 基于互联网的电视流媒体数据实时传输和服务装置及方法 |
US8855189B1 (en) * | 2010-04-12 | 2014-10-07 | UV Networks, Inc. | Multi-stream transcoding system with cache memory management |
CN110213617A (zh) * | 2019-04-01 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 视频流转码迁移方法、装置和系统 |
CN110213598A (zh) * | 2018-05-31 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种视频转码系统、方法及相关产品 |
CN111083521A (zh) * | 2019-12-27 | 2020-04-28 | 杭州当虹科技股份有限公司 | 一种rtmp发布主备快速切换方法 |
CN112543374A (zh) * | 2020-11-30 | 2021-03-23 | 联想(北京)有限公司 | 一种转码控制方法、装置及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9374604B2 (en) * | 2014-03-31 | 2016-06-21 | Arris Enterprises, Inc. | Adaptive streaming transcoder synchronization |
WO2018114814A1 (en) * | 2016-12-20 | 2018-06-28 | Koninklijke Kpn N.V. | Synchronizing processing between streams |
WO2020227679A1 (en) * | 2019-05-09 | 2020-11-12 | Brightcove, Inc. | Fault-tolerant live video streaming |
-
2022
- 2022-08-30 CN CN202211051413.3A patent/CN115426503B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006067483A (ja) * | 2004-08-30 | 2006-03-09 | Sanyo Electric Co Ltd | 映像通信方法及び映像通信装置 |
CN101083756A (zh) * | 2007-03-14 | 2007-12-05 | 中国科学技术大学 | 基于互联网的电视流媒体数据实时传输和服务装置及方法 |
US8855189B1 (en) * | 2010-04-12 | 2014-10-07 | UV Networks, Inc. | Multi-stream transcoding system with cache memory management |
CN110213598A (zh) * | 2018-05-31 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种视频转码系统、方法及相关产品 |
CN110213617A (zh) * | 2019-04-01 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 视频流转码迁移方法、装置和系统 |
CN111083521A (zh) * | 2019-12-27 | 2020-04-28 | 杭州当虹科技股份有限公司 | 一种rtmp发布主备快速切换方法 |
CN112543374A (zh) * | 2020-11-30 | 2021-03-23 | 联想(北京)有限公司 | 一种转码控制方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
付金星.立体视频点播和直播系统研究.《优秀硕士论文》.全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115426503A (zh) | 2022-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101150102B1 (ko) | 고속 채널 변경 서버 및 장치 | |
CN108347622B (zh) | 多媒体数据推送方法、装置、存储介质及设备 | |
US8135040B2 (en) | Accelerated channel change | |
US8005973B2 (en) | Method and system for playing video on a mobile device | |
US10638180B1 (en) | Media timeline management | |
EP2466911B1 (en) | Method and device for fast pushing unicast stream in fast channel change | |
CN112637661B (zh) | 视频流的切换方法及装置、计算机存储介质、电子设备 | |
CN106998485B (zh) | 视频直播方法及装置 | |
CN110582012B (zh) | 视频切换方法、视频处理方法、装置及存储介质 | |
CN111404882B (zh) | 媒体流处理方法及装置 | |
EP3748983B1 (en) | Video playback method, terminal apparatus, and storage medium | |
CN111010603A (zh) | 一种视频缓存转发处理方法及装置 | |
CN114245153A (zh) | 切片方法、装置、设备及可读存储介质 | |
CN115426503B (zh) | 一种转码服务切换方法、装置、设备及存储介质 | |
US20220279225A1 (en) | Video transcoding method and apparatus | |
US10992969B2 (en) | Frame accurate splicing | |
CN110798713B (zh) | 时移电视点播方法、终端、服务器及系统 | |
CN116347140A (zh) | 视频同步播放方法及装置、存储介质、电子设备 | |
CN101483757B (zh) | 一种网络互动点播的跳转方法、系统及服务器 | |
CN117979062B (zh) | 一种基于编码流引用计数的实时视频流传输方法及装置 | |
KR100310778B1 (ko) | 주문형비디오의특수재생서비스제공방법 | |
KR20000033733A (ko) | 주문형 비디오의 특수 재생 서비스 제공 방법 | |
CN116266858A (zh) | 音视频录制方法、装置、设备及介质 | |
CN117768687A (zh) | 直播流切换方法和装置 | |
CN115052191A (zh) | 码流切换处理方法、装置、存储介质与电子设备 |
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 |