CN113992949A - 混流服务切换方法及其装置、设备、介质、产品 - Google Patents
混流服务切换方法及其装置、设备、介质、产品 Download PDFInfo
- Publication number
- CN113992949A CN113992949A CN202111264818.0A CN202111264818A CN113992949A CN 113992949 A CN113992949 A CN 113992949A CN 202111264818 A CN202111264818 A CN 202111264818A CN 113992949 A CN113992949 A CN 113992949A
- Authority
- CN
- China
- Prior art keywords
- service
- mixed flow
- old
- flow service
- stream
- 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 79
- 230000003139 buffering effect Effects 0.000 claims abstract description 66
- 238000002360 preparation method Methods 0.000 claims abstract description 37
- 230000004044 response Effects 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims description 25
- 230000001960 triggered effect Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 32
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004132 cross linking Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
Images
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/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2365—Multiplexing of several video streams
-
- 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
- H04N21/234309—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 transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- 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)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开一种混流服务切换方法及其装置、设备、介质、产品,所述方法包括:响应旧混流服务的服务过载通知事件,创建新混流服务;向新混流服务推送所述多路原始媒体流,使其以其所接收的多路原始媒体流中的一个数据帧的时间戳为缓冲起始时间戳进行缓冲混流;以缓冲起始时间戳为时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流,丢弃输出时间戳晚于该时间节点的目标媒体流;响应新混流服务完成缓冲混流的输出预备事件,通知旧混流服务停止混流,通知新混流服务从与旧混流服务到达的目标媒体流的最晚输出时间戳相对应的数据帧开始输出目标媒体流。本申请可确新旧混流服务之间无缝切换,实现服务集群内的负载均衡。
Description
技术领域
本申请涉及微服务架构调度技术,尤其涉及一种混流服务切换方法及其相应的装置、计算机设备、计算机可读存储介质,以及计算机程序产品。
背景技术
在网络直播场景中进行音视频直播时,常会适应主播用户之间连线的需要,将多个主播用户上传的多路音视频流进行混流,实现混音、混画,将多路音视频流混流成一路音视频流,再推送给相关直播间,到达相关观众用户的终端设备进行播放。由此避免观众针对多个主播用户分别拉流,节省观众用户的流量的同时,还可简化音视频流的播放业务逻辑。
混流是比较耗计算机运行资源的,特别是对CPU资源的消耗更大,资源消耗抖动也大,容易导致混流服务CPU过载。现有技术中,过载处理方法通常是将部份任务切换到其它低负载的机器运行,由于混流后输出流的输出时间戳一般是重新计算的,跟源流的输出时间戳不相同,普通的任务切换会导致在终端设备接收到的音视频流的输出时间戳不连续(输出时间戳大幅变小或变大,正常应该是基本均匀递增的)和切换前后声音、画面不连续(声音、画面重复或缺少一小段时长内容),从而导致观众用户的终端设备播放卡顿和内容重复或跳变,影响观看质量。
发明内容
本申请的首要目的在于解决上述问题至少之一而提供一种混流服务切换方法及其相应的装置、计算机设备、计算机可读存储介质、计算机程序产品。
为满足本申请的各个目的,本申请采用如下技术方案:
适应本申请的目的之一而提供的一种混流服务切换方法,包括如下步骤:
响应旧混流服务的服务过载通知事件,创建新混流服务,所述旧混流服务用于将多路原始媒体流混流为目标媒体流;
向新混流服务推送所述多路原始媒体流,使其以其所接收的多路原始媒体流中的一个数据帧的时间戳为缓冲起始时间戳进行缓冲混流;
以缓冲起始时间戳为时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流,丢弃输出时间戳晚于该时间节点的目标媒体流;
响应新混流服务完成缓冲混流的输出预备事件,通知旧混流服务停止混流,通知新混流服务从与旧混流服务到达的目标媒体流的最晚输出时间戳相对应的数据帧开始输出目标媒体流。
深化的实施例中,响应旧混流服务的服务过载通知事件,创建新混流服务,所述旧混流服务用于将多路原始媒体流混流为目标媒体流,包括如下步骤:
向旧混流服务推送需要进行混流的多路原始媒体流;
监听旧混流服务触发的服务过载通知事件;
响应旧混流服务触发的服务过载通知事件,创建新混流服务。
深化的实施例中,向新混流服务推送所述多路原始媒体流,使其以其所接收的多路原始媒体流中的一个数据帧的时间戳为缓冲起始时间戳进行缓冲混流,包括如下步骤:
同步于向旧混流服务继续推送所述多路原始媒体流而向新混流服务推送所述多路原始媒体流;
驱动所述新混流服务从其所接收的多路原始媒体流的数据帧中确定最早时间戳;
由所述最早时间戳的确定触发所述新混流服务以所述最早时间戳为缓冲起始时间戳,对其所接收的多路原始媒体流中的数据帧进行缓冲混流。
深化的实施例中,以缓冲起始时间戳为时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流,丢弃输出时间戳晚于该时间节点的目标媒体流,包括如下步骤:
接收新混流服务提交的所述缓冲起始时间戳,将该缓冲起始时间戳设置为用于对旧混流服务输出的数据帧进行时间分界的时间节点;
根据所述时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流中的数据帧,丢弃输出时间戳晚于该时间节点的目标媒体流中的数据帧。
深化的实施例中,响应新混流服务完成缓冲混流的输出预备事件,通知旧混流服务停止混流,通知新混流服务从与旧混流服务到达的目标媒体流的最晚输出时间戳相对应的数据帧开始输出目标媒体流,包括如下步骤:
接收新混流服务完成缓冲混流后触发的输出预备事件;
响应所述输出预备事件,向旧混流服务发送第一通知消息,使其根据第一通知消息停止混流;
响应所述输出预备事件,向新混流服务发送第二通知消息,第二通知消息包含从旧混流服务到达的目标媒体流的最晚输出时间戳,使新混流服务从与所述最晚输出时间戳相对应的数据帧开始输出目标媒体流。
较佳的实施例中,所述旧混流服务与新混流服务均遵循相同的流媒体编码协议,其各自产出的目标媒体流中,均包含有该流媒体编码协议所规范的预协议时长相对应的数据帧。
适应本申请的目的之一而提供的一种混流服务切换装置,包括:新服务创建模块、缓冲启动模块、旧服务处理模块,以及切换控制模块,其中,所述新服务创建模块,用于响应旧混流服务的服务过载通知事件,创建新混流服务,所述旧混流服务用于将多路原始媒体流混流为目标媒体流;所述缓冲启动模块,用于向新混流服务推送所述多路原始媒体流,使其以其所接收的多路原始媒体流中的一个数据帧的时间戳为缓冲起始时间戳进行缓冲混流;所述旧服务处理模块,用于以缓冲起始时间戳为时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流,丢弃输出时间戳晚于该时间节点的目标媒体流;所述切换控制模块,用于响应新混流服务完成缓冲混流的输出预备事件,通知旧混流服务停止混流,通知新混流服务从与旧混流服务到达的目标媒体流的最晚输出时间戳相对应的数据帧开始输出目标媒体流。
深化的实施例中,所述新服务创建模块,包括:旧服务推流子模块,用于向旧混流服务推送需要进行混流的多路原始媒体流;旧服务监听子模块,用于监听旧混流服务触发的服务过载通知事件;新服务创建子模块,用于响应旧混流服务触发的服务过载通知事件,创建新混流服务。
深化的实施例中,所述缓冲启动模块,包括:新服务推流子模块,用于同步于向旧混流服务继续推送所述多路原始媒体流而向新混流服务推送所述多路原始媒体流;起始标记子模块,用于驱动所述新混流服务从其所接收的多路原始媒体流的数据帧中确定最早时间戳;缓冲混流子模块,用于由所述最早时间戳的确定触发所述新混流服务以所述最早时间戳为缓冲起始时间戳,对其所接收的多路原始媒体流中的数据帧进行缓冲混流。
深化的实施例中,所述旧服务处理模块,包括:分界设置子模块,用于接收新混流服务提交的所述缓冲起始时间戳,将该缓冲起始时间戳设置为用于对旧混流服务输出的数据帧进行时间分界的时间节点;分界接收子模块,用于根据所述时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流中的数据帧,丢弃输出时间戳晚于该时间节点的目标媒体流中的数据帧。
深化的实施例中,所述切换控制模块,包括:预备接收子模块,用于接收新混流服务完成缓冲混流后触发的输出预备事件;旧服务停止子模块,用于响应所述输出预备事件,向旧混流服务发送第一通知消息,使其根据第一通知消息停止混流;新服务开始子模块,用于响应所述输出预备事件,向新混流服务发送第二通知消息,第二通知消息包含从旧混流服务到达的目标媒体流的最晚输出时间戳,使新混流服务从与所述最晚输出时间戳相对应的数据帧开始输出目标媒体流。
较佳的实施例中,所述旧混流服务与新混流服务均遵循相同的流媒体编码协议,其各自产出的目标媒体流中,均包含有该流媒体编码协议所规范的预协议时长相对应的数据帧。
适应本申请的目的之一而提供的一种计算机设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述的混流服务切换方法的步骤。
适应本申请的另一目的而提供的一种计算机可读存储介质,其以计算机可读指令的形式存储有依据所述的混流服务切换方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
适应本申请的另一目的而提供的一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本申请任意一种实施例中所述方法的步骤。
相对于现有技术,本申请的优势如下:
首先,本申请能够根据旧混流服务的过载通知事件而相应创建新混流服务,实现在接收旧混流服务混流输出的目标媒体流的同时,将混流任务从一台已对过载的计算机设备预先转移到另一计算机设备,然后,先由新混流服务界定一个用于协调新旧混流服务分界的时间节点,以此为基础由新混流服务和旧混流服务进行一段时间的并行混流,在新混流服务完成缓冲混流可以输出时,触发输出预备事件,根据这一输出预备事件而通知旧混流服务停止处理混流任务,与此同时,也通知新混流服务开始输出目标媒体流,且通过向新混流服务告知从旧混流服务获得的最晚输出时间戳而使新混流服务对齐该最晚输出时间戳开始输出所述的目标媒体流,从而实现旧混流服务与新混流服务分别输出的目标媒体流的无缝对接,也就实现了对不同计算机设备中的相同混流任务的平滑切换。
其次,当在服务集群中实现本申请的技术方案之后,由于旧混流服务与新混流服务之间的切换过程基本无缝对接,只是在极小的一段时间内并行运行,此后即可由新混流服务负责混流任务,而原先的旧混流服务对计算机运行资源的占用随即可被释放,从而可以确保旧混流服务所在的计算机设备的运行资源得到及时的调节,而确保该计算机设备继续稳健运行,不影响运行其上的其他服务进程的处理能力和响应效率,至于新混流服务所在的计算机设备,通常选用的是非过载设备,因此,也可强健运行,由此可见,对于应用本申请的技术方案的服务集群而言,能够实现集群内的跨计算机设备运行资源之间的高效调度。
此外,本申请所取得的优势使得本申请的技术方案特别适用于运行资源密集型应用场景,尤其是CPU密集型的运行任务中,例如网络直播服务中常需要对多路音视频流进行混流转码,而混流转码即是CPU密集型任务,此类场景下,应用本申请的技术方案能获得更为明显的优势,因此,对于确保网络直播服务的稳健性和流畅性均有明显助益,可以确保网络直播服务获得流畅的混流效果,改善终端设备的用户体验。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为应用本申请的混流服务切换方法的服务集群的逻辑架构示意图;
图2为本申请的混流服务切换方法的典型实施例的流程示意图;
图3为本申请的混流服务切换方法的示例性业务逻辑的原理示意图;
图4为本申请实施例中触发创建新混流服务的过程的流程示意图;
图5为本申请实施例中驱动新混流服务开始工作的过程的流程示意图;
图6为本申请实施例中完成新旧混流服务的最终切换的过程的流程示意图;
图7为本申请的混流服务切换装置的原理框图;
图8为本申请所采用的一种计算机设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
本申请的一个或数个技术特征,除非明文指定,既可部署于服务器实施而由客户端远程调用获取服务器提供的在线服务接口来实施访问,也可直接部署并运行于客户端来实施访问。
本申请中所引用或可能引用到的神经网络模型,除非明文指定,既可部署于远程服务器且在客户端实施远程调用,也可部署于设备能力胜任的客户端直接调用,某些实施例中,当其运行于客户端时,其相应的智能可通过迁移学习来获得,以便降低对客户端硬件运行资源的要求,避免过度占用客户端硬件运行资源。
本申请所涉及的各种数据,除非明文指定,既可远程存储于服务器,也可存储于本地终端设备,只要其适于被本申请的技术方案所调用即可。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
本申请即将揭示的各个实施例,除非明文指出彼此之间的相互排斥关系,否则,各个实施例所涉的相关技术特征可以交叉结合而灵活构造出新的实施例,只要这种结合不背离本申请的创造精神且可满足现有技术中的需求或解决现有技术中的某方面的不足即可。对此变通,本领域技术人员应当知晓。
本申请的一种混流服务切换方法,可被编程为计算机程序产品,部署于服务集群中运行而实现,以便藉此通过访问该计算机程序产品运行后开放的接口,通过图形用户界面与该计算机程序产品进行人机交互而执行该方法。
请参阅图1,所述服务集群中,包括多台充当服务器的计算机设备,服务集群可以利用微服务架构进行容器化管理,从而获得多个服务容器,每个服务容器本质上是一个用于执行一个或多个运行任务的服务进程,因此,每个服务进程可能同时并发处理多个运行任务。在本申请示例性的网络直播应用场景中,所述运行任务是用于将多路原始媒体流进行混流处理的混流服务,在混流的过程中也可以进行必要的转码处理。
每个所述的服务进程一般运行于一台计算机设备中,通常不同服务进程所处理的运行任务也可以为相同功能的运行任务,例如本申请中示例性的网络直播场景中对多路原始媒体流进行混流和转码的计算机任务。
服务集群中的运行任务也包括负责对外输出输入的接入服务,通过所述的接入服务,可以接收外部的多路原始媒体流的输入,将其转发给其他相应的混流服务进行混流处理,然后将从这些混流服务接收的目标媒体流再输出至相应的接口,在此一过程中,接入服务负责各种必要的调度,确保所提供的网络直播服务能够稳健的运行。
请参阅图2,本申请的混流服务切换方法在其典型实施例中,包括如下步骤:
步骤S1100、响应旧混流服务的服务过载通知事件,创建新混流服务,所述旧混流服务用于将多路原始媒体流混流为目标媒体流:
以本申请网络直播应用场景为例,其相应的混流服务部署于图1所示的服务集群中,通过服务集群内的一台充当服务器的计算机设备内的混流服务,负责对处于连线通信各方的主播用户上传的媒体流或者对同一主播用户指定的多路媒体流进行混流转码处理,以获得相应的目标媒体流。其中,用于混流的媒体流被称为原始媒体流。本申请的技术方案主要被实现于一个接入服务中,该接入服务可以部署于所述服务集群内的另一台计算机设备中,接入服务与混流服务之间可以通过接口实现通信。
如前所述,同一台计算机设备中,可以运行多个服务进程,同一服务进程内,也可运行同一运行任务,示例性场景中所述运行任务即为混流服务。
对于本申请而言,由于需要实现不同计算机设备之间的混流服务对相同混流任务的平滑切换,因此,定义最早负责混流任务的混流服务为旧混流服务,定义接续混流任务的混流服务为新混流服务。据此,本申请将通过接入服务对旧混流服务和新混流服务之间的调度实现同一目标媒体流的混流任务的切换。关于接入服务、旧混流服务以及新混流服务之间的一个示例性的业务交互过程,如图3所示,在如下对本申请的技术方案进行揭示的过程中,可以按需参照该图的示例进行辅助理解。
所述的媒体流,每一个媒体流在内容上既可以为单独的音频流或视频流,也可以是音视频流,同一个主播用户提供的媒体流,可以是一路也可以是多路,最终所有需要混流的各路媒体流均被提交给接入服务调度至相应的混流服务中处理,这些提供给接入服务调度处理的媒体流即为本申请所称的多路原始媒体流。同理,由这些多路原始媒体流混流而成的媒体流,即为本申请所称的目标媒体流。
所述媒体流,包括多个数据帧,也称数据包,所述的数据帧依媒体流的内容不同而包含为不同的类型,例如,对于音频流而言,所述数据帧为语音帧;对于视频流而言,所述数据帧为图像帧;对于音视频流而言,所述数据帧既可以描述图像也可以描述语音。媒体流的数据帧的具体类型,通常由其所采用的编码协议而定,并不影响本申请的实施,本领域技术人员均应知晓。
所述的旧混流服务在默认情况下专门负责接入服务调度过来的多路原始媒体流的混流作业,将多路原始媒体流混流成目标媒体流之后又交由接入服务输出。旧混流服务在其生存周期内可以对其所在的计算机设备的负载情况进行监测,当其监听到其所在的计算机设备的运行资源超载时,便可触发相应的服务过载通知事件。
所述的运行资源,可以包括CPU运行资源、内存运行资源、硬盘运行资源等,本实施例中,为理解的便利,简化为以对CPU运行资源的检测进行说明。故此,示例而言,可以预先设置一个经验性的负载阈值,旧混流服务检测其所在计算机设备的当前CPU使用率是否超过该负载阈值,当超过该负载阈值时,便触发所述的过载通知事件,否则,继续负责混流作业。
旧混流服务触发的过载通知事件会被发送给本申请的接入服务,因此,如图4所示,较佳的一个实施例中,接入服务可以按照如下的业务逻辑与旧混流服务进行交互:
步骤S1110、向旧混流服务推送需要进行混流的多路原始媒体流:
接入服务将需要混流的多路原始媒体流,直接传输或路由给所述的旧混流服务。对于本申请的示例性网络直播应用场景而言,其中的一个或多个原始媒体流,可以是来源于主播用户直接提交的,也可以是已经预先缓存至服务集群内的媒体服务器的,或可以是从预先指定的网络访问地址处获取的。
步骤S1120、监听旧混流服务触发的服务过载通知事件:
从所述接入服务启用旧混流服务开始,便源源不断地将自身所接收的多路原始媒体流传给旧混流服务,与此同时,也启动了对旧混流服务可能触发的服务过载通知事件的监听,以便在接收该通知事件时及时做出相应的响应。
步骤S1130、响应旧混流服务触发的服务过载通知事件,创建新混流服务:
具体而言,当接入服务接收到旧混流服务触发的服务过载通知事件时,便知晓旧混流服务所在的计算机设备正面对难以承载之重,如果不及时为其任务调度,可能导致该计算机设备无法胜任所述混流任务,甚至可能导致所述的旧混流服务及其他运行在该计算机设备中的运行任务直接崩溃。因此,新接入服务需要即行启用调度逻辑,发出指令在服务集群中创建一个新混流服务,用于承接旧混流服务的混流任务。
可以理解,新混流服务与旧混流服务处理的是相同的计算机任务,即混流任务,因此,在计算机程序层面上,两者可以是同一类定义的不同实例。此外,考虑到原计算机设备已经过载,故新混流服务应当创建于服务集群内的其他计算机设备中。
经过本步骤的处理,所述接入服务已经在旧混流服务的工作过程中接收到旧混流服务触发的服务过载通知事件而完成了在其他计算机设备中创建新混流服务的工作,后续便可通过调度逻辑,实现两个混流服务之间的业务切换。
步骤S1200、向新混流服务推送所述多路原始媒体流,使其以其所接收的多路原始媒体流中的一个数据帧的时间戳(PTS,Presentation Time Stamp)为缓冲起始时间戳进行缓冲混流:
请继续结合图2和图3所示,在完成所述的新混流服务的创建后,接入服务开始向新混流服务推送多路原始媒体流,此时,为了保证接入服务所接收的目标媒体流在内容上的连续性,接入服务也继续保持向旧混流服务推送所述多路原始媒体流,也即是说,接入服务在完成新混流服务的创建后,将所述多路原始媒体流同步并行地输出给所述的旧混流服务和新混流服务,以便两个混流服务可以据此分别进行混流作业。
在此期间,旧混流服务将从接入服务接收的所述多路原始媒体流继续进行混流,将混流所述的目标媒体流继续输出给接入服务,不做业务逻辑上的改变,接入服务暂时也直接将旧混流服务提供的所述目标媒体流继续输出。
与此同时,所述的新混流服务接收到所述的多路原始媒体流后,需要进行缓冲处理工作,直到其完成缓冲准备可以输出目标媒体流时,才另行通知。为了避免接入服务无法识别旧混流服务和新混流服务所输出的两份目标媒体流的时间关系,方便接入服务进行时间分界,故此,所述新混流服务在接收到多路原始媒体流之后,便从所述多路原始媒体流中选取一个数据帧相对应的时间戳,用作缓冲起始时间戳,表示从该时间戳标记的时间开始,对多路原始媒体流开始缓冲混流。
本实施例中,被选用于确定所述缓冲起始时间戳的数据帧,可以由新混流服务随机指定,或者由新混流服务选取其首个接收的数据帧,或者如本申请后续的实施例所揭示,由混流服务选取其所接收的所有数据帧中时间上最早的时间戳相对应的数据帧。可以理解,只要确定出一个缓冲起始时间戳,便可以此提供给接入服务作为时间分界的依据。
一个实施例中,所述新混流任务进行缓冲混流时,通过与多路原始媒体流数量对应的多个抖动缓冲队列,由每个抖动缓冲队列负责缓存一路原始媒体流的数据帧,并对队列内的各个数据帧根据数据帧的时间戳进行时序重排,使每路原始媒体流的数据帧按时间戳的时序依次出列转移至对应的一个待混流队列。所述抖动缓冲队列所存储的数据帧的数量,决定于预先设定的一个缓冲时长,此一缓冲时长可由新混流服务根据所有各路原始媒体流的数据帧到达的情况进行评估确定。
为了便于统一混流,新混流服务会将所有各路原始媒体流的时间戳都映射到同一时间坐标系以形成统一时间戳,以便基于统一时间戳对各路原始媒体流进行混流,参照统一时间戳来标记其混流而成的目标媒体流中的数据帧的输出时间戳,后续可由接入服务根据所述的输出时间戳来处理旧混流服务与新混流服务提供的两路目标媒体流之间的时间接续关系。
新混流服务在混流过程中,一般是按照媒体流编码协议的预协议时长来混出所述目标媒体流中的一批数据帧,因此,从新混流服务接收接入服务的多路原始媒体流开始,到生成足够输出的目标媒体流的数据帧之间,具有一个时间差,至少在此一时间差范围内,接入服务仍然需要依赖于旧混流服务提供相应的目标媒体流。
为了在混流过程中标示目标媒体流中各个数据帧的输出时间戳,新混流服务采用一个时序指针指示目标媒体流的当前时间戳,该当前时间戳每次被用于标记混流而成的目标媒体流中的数据帧之后,又叠加所述的预协议时长,用于作为下一次混流而成的数据帧的当前时间戳。其中,为了避免多路原始媒体流因丢包、时间戳未对齐、乱码等可能的原因导致的时间戳不均匀的现象,可以对这一现象进行检测,在检测到相应的现象后,具体判断当前时间戳是否超出混流而成的数据帧中的最小时间戳和最大时间戳所界定的时区范围,当超过该范围时,以预定量微调所述的当前时间戳,以使目标媒体流中的各个数据帧的时间戳保持相对均匀的变化,确保终端设备在播放目标媒体流时更为流畅自然。
不难理解,所述旧混流服务与新混流服务具有相同的业务逻辑,因此也可按以上的过程对所述多路原始媒体流进行混流,生成相应的目标媒体流,据此,所述旧混流服务与新混流服务均遵循相同的流媒体编码协议,其各自产出的目标媒体流中,均包含有该流媒体编码协议所规范的预协议时长相对应的数据帧。
步骤S1300、以缓冲起始时间戳为时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流,丢弃输出时间戳晚于该时间节点的目标媒体流:
继续参阅图2和图3,当接入服务接收到新混流服务发送的缓冲起始时间戳后,知晓新混流服务以该缓冲起始时间戳相对应的数据帧为缓冲混流所需的起始数据帧进行缓冲混流,则理论上自该缓冲起始时间戳指示的时间节点起的目标媒体流,新混流服务理应也可以提供其相应的数据帧,根据这一原理,新混流服务将缓冲起始时间戳确定为目标媒体流分界所需的时间节点,用于协调新混流服务与旧混流服务分别输出的两路目标媒体流的并流关系。
具体而言,接入服务根据所述的时间节点,对于旧混流服务的目标媒体流而言,只接收并保留其中输出时间戳早于该时间节点的目标媒体流相应的数据帧,而对于输出时间戳晚于该时间节点的数据帧,则将其丢弃。显然,此举原因在于,接入服务已经可以信任新混流服务能够为其提供该时间节点之后的数据帧。
一个实施例中,所述步骤S1300可以分解为如下步骤进行实现:
步骤S1310、接收新混流服务提交的所述缓冲起始时间戳,将该缓冲起始时间戳设置为用于对旧混流服务输出的数据帧进行时间分界的时间节点:
步骤S1320、根据所述时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流中的数据帧,丢弃输出时间戳晚于该时间节点的目标媒体流中的数据帧。
如前所述,新混流服务将所述缓冲起始时间戳通知给接入服务后,接入服务便将其设置为时间节点,后续对旧混流服务输出的目标媒体流中的数据帧进行时间分界,对于该时间节点之前的数据帧,予以保留采用,对于该时间节点之后的数据帧,则相应丢弃。
根据本实施例可以理解,在接入服务根据时间节点实施的分界控制下,可以避免冗余作业,避免两路目标媒体流的相互串扰,确保两路目标媒体流的有序接续,使不同混流服务之间的切换对用户侧完全透明。
步骤S1400、响应新混流服务完成缓冲混流的输出预备事件,通知旧混流服务停止混流,通知新混流服务从与旧混流服务到达的目标媒体流的最晚输出时间戳相对应的数据帧开始输出目标媒体流:
继续参阅图2和图3,当新混流服务按照如前所述的过程完成首次混流,生成至少一个预协议时长所需的数据帧之后,表明其已经可以对外输出其混流生成的目标媒体流,据此,新混流服务触发输出预备事件,被接入服务所接收。
接入服务接收到该输出预备事件后,响应该事件,首先通知旧混流服务停止混流,于是混流服务便终止其混流任务,其所占用的计算机设备的运行资源将被释放,确保该计算机设备运行稳健。但由于旧混流服务不再提供所述目标媒体流,因此,接入服务还需启动向新混流服务接收相应的目标媒体流的业务逻辑。
因此,所述接入服务响应所述输出预备事件还通知新混流服务开始向其输出目标媒体流。为了实现两路目标媒体流之间的时间接续关系,接入服务在通知新混流服务输出目标媒体流时,同时将其所接收的旧混流服务的目标媒体流的数据帧中的最晚输出时间戳发送给新混流服务,新混流服务接收到该最晚输出时间戳后,便根据该最晚输出时间戳调用相应的数据帧用于输出目标媒体流,从该最晚输出时间戳相对应的数据帧开始,按时间戳顺序开始输出目标媒体流。
据此,所述接入服务开始从旧混流服务转向新混流服务接收目标媒体流,由于旧混流服务与新混流服务之间基于旧混流服务的所述最晚输出时间戳实现了接续,因此,接入服务获得的前后两路目标媒体流在时序和内容上均是连续的,从而确保实现新混流服务与旧混流服务之间的无缝切换。
通过本申请以上典型实施例及其相关变通实施例可以看出,本申请至少具有如下诸多方面的优势:
首先,本申请能够根据旧混流服务的过载通知事件而相应创建新混流服务,实现在接收旧混流服务混流输出的目标媒体流的同时,将混流任务从一台已对过载的计算机设备预先转移到另一计算机设备,然后,先由新混流服务界定一个用于协调新旧混流服务分界的时间节点,以此为基础由新混流服务和旧混流服务进行一段时间的并行混流,在新混流服务完成缓冲混流可以输出时,触发输出预备事件,根据这一输出预备事件而通知旧混流服务停止处理混流任务,与此同时,也通知新混流服务开始输出目标媒体流,且通过向新混流服务告知从旧混流服务获得的最晚输出时间戳而使新混流服务对齐该最晚输出时间戳开始输出所述的目标媒体流,从而实现旧混流服务与新混流服务分别输出的目标媒体流的无缝对接,也就实现了对不同计算机设备中的相同混流任务的平滑切换。
其次,当在服务集群中实现本申请的技术方案之后,由于旧混流服务与新混流服务之间的切换过程基本无缝对接,只是在极小的一段时间内并行运行,此后即可由新混流服务负责混流任务,而原先的旧混流服务对计算机运行资源的占用随即可被释放,从而可以确保旧混流服务所在的计算机设备的运行资源得到及时的调节,而确保该计算机设备继续稳健运行,不影响运行其上的其他服务进程的处理能力和响应效率,至于新混流服务所在的计算机设备,通常选用的是非过载设备,因此,也可强健运行,由此可见,对于应用本申请的技术方案的服务集群而言,能够实现集群内的跨计算机设备运行资源之间的高效调度。
此外,本申请所取得的优势使得本申请的技术方案特别适用于运行资源密集型应用场景,尤其是CPU密集型的运行任务中,例如网络直播服务中常需要对多路音视频流进行混流转码,而混流转码即是CPU密集型任务,此类场景下,应用本申请的技术方案能获得更为明显的优势,因此,对于确保网络直播服务的稳健性和流畅性均有明显助益,可以确保网络直播服务获得流畅的混流效果,改善终端设备的用户体验。
请参阅图3和图5,深化的实施例中,所述步骤S1200、向新混流服务推送所述多路原始媒体流,使其以其所接收的多路原始媒体流中的一个数据帧的时间戳为缓冲起始时间戳进行缓冲混流,包括如下步骤:
步骤S1210、同步于向旧混流服务继续推送所述多路原始媒体流而向新混流服务推送所述多路原始媒体流:
如前所述,接入服务在创建新混流服务后需向新混流服务传输所述多路原始媒体流的过程中,是与向旧混流服务传输所述多路原始媒体流同步进行的,以便确保两个混流服务均能在一段时间内获得等量的数据帧,使两者均同步混流。
步骤S1220、驱动所述新混流服务从其所接收的多路原始媒体流的数据帧中确定最早时间戳:
所述接入服务开始向所述新混流服务传输多路原始媒体流,实际上便驱动了所述新混流服务开始进行缓冲起始时间戳的确定,本实施例中,在确定所述的缓冲起始时间戳时,由新混流服务从其所接收的多路原始媒体流的数据帧中确定出最早时间戳,通常也其所接收到的第一个数据帧的时间戳,由此确保后续缓冲混流所需的数据帧更为充分。
步骤S1230、由所述最早时间戳的确定触发所述新混流服务以所述最早时间戳为缓冲起始时间戳,对其所接收的多路原始媒体流中的数据帧进行缓冲混流:
当新混流服务确定了所述的最早时间戳后,根据其固有的业务逻辑,便相应触发将所述最早时间戳确定为所述的缓冲起始时间戳,然后以此为基础开始缓冲混流。关于缓冲混流的过程参阅本申请的典型实施例所述,此处不再赘述。
本实施例通过具体化确定缓冲起始时间戳的过程,并且由新混流服务选定多路原始媒体流中的最早时间戳作为起始时间点,由于缓冲起始时间戳将被接入服务用于分界,并且也可以控制新混流服务自身缓冲混流的起始数据帧,缓冲起始时间戳指示的时间越早越好,因此,采用最早时间戳策略,可以确保两个混流服务之间尽量实现快速切换。
请参阅图3和图6,深化的实施例中,所述步骤S1400、响应新混流服务完成缓冲混流的输出预备事件,通知旧混流服务停止混流,通知新混流服务从与旧混流服务到达的目标媒体流的最晚输出时间戳相对应的数据帧开始输出目标媒体流,包括如下步骤:
步骤S1410、接收新混流服务完成缓冲混流后触发的输出预备事件:
如前所述,当所述新混流服务完成缓冲混流后,便触发输出预备事件,该输出预备事件被发送给所述的接入服务,以驱动接入服务进行响应。
步骤S1420、响应所述输出预备事件,向旧混流服务发送第一通知消息,使其根据第一通知消息停止混流:
所述接入服务响应于该输出预备事件,首先构造第一通知消息,该第一通知消息用于通知所述旧混流服务停止执行混流任务,旧混流服务接收到该第一通知消息之后,便相应停止混流处理,不再输出目标媒体流。可以理解,随着旧混流服务终止其混流任务,其所在的计算机设备的各项运行资源,特别是CPU运行资源,将大幅下降,为该计算机设备腾出更多运行资源以便服务于其他运行任务。
相应的,服务集群内可以预先实现相关业务逻辑,或者也可在旧混流服务内部实现相应的业务逻辑,使该业务逻辑在该旧混流服务接收到所述第一通知消息后被触发运行,在该业务逻辑的作用下,释放旧混流服务所占用的缓存,从面可以进一步节省其所在的计算机设备的内存资源和硬盘资源。同理,还可按需直接销毁所述旧混流服务乃至其所在的服务进程本身,使该计算机设备的运行资源得到充分的释放。
步骤S1430、响应所述输出预备事件,向新混流服务发送第二通知消息,第二通知消息包含从旧混流服务到达的目标媒体流的最晚输出时间戳,使新混流服务从与所述最晚输出时间戳相对应的数据帧开始输出目标媒体流:
所述接入服务响应于该输出预备事件,进一步构造第二通知消息,第二通知消息旨在将接入服务所接收到的源自旧混流服务的目标媒体流中数据帧的最晚输出时间戳传输给所述的新混流服务,以便所述新混流服务可以根据该最晚输出时间戳决定从时间轴的何一位置开始输出其混流而成的目标媒体流中的数据帧。在这一业务逻辑的作用下,新混流服务能够确保接续于源自旧混流服务的所述最晚输出时间而确定相应起始数据帧,以该数据帧为起点,开始按时间顺序输出目标媒体流,而所述接入服务则自然而然地开始从新混流服务接收这一目标媒体流,并且,接入服务无需再做后续处理,只需直接将目标媒体流按照原有旧混流服务提供的目标媒体流的路径进行路由,将可使新混流服务的目标媒体流在时序上接续于旧混流服务的目标媒体流而输出至各个接收端的终端设备,如本申请的示例性应用场景中,即可输出至网络直播的直播间中的各个观众用户端的终端设备中,被该终端设备中的直播间应用程序解析播放,播放过程中无卡顿也无跳帧,非常流畅,做到用户对混流服务切换事件完全无感知,实现无缝切换。
可以理解,所述步骤S1420与步骤S1430适宜并行处理,故可同步触发,以使切换过程在后台表现得更为顺滑。
本实施例将新旧混流服务的切换过程解构为接入服务的两个通知事件,利用事件响应机制对旧混流服务和新混流服务进行协调控制,更为高效。
请参阅图7,适应本申请的目的之一而提供的一种混流服务切换装置,包括:新服务创建模块1100、缓冲启动模块1200、旧服务处理模块1300,以及切换控制模块1400,其中,所述新服务创建模块1100,用于响应旧混流服务的服务过载通知事件,创建新混流服务,所述旧混流服务用于将多路原始媒体流混流为目标媒体流;所述缓冲启动模块1200,用于向新混流服务推送所述多路原始媒体流,使其以其所接收的多路原始媒体流中的一个数据帧的时间戳为缓冲起始时间戳进行缓冲混流;所述旧服务处理模块1300,用于以缓冲起始时间戳为时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流,丢弃输出时间戳晚于该时间节点的目标媒体流;所述切换控制模块1400,用于响应新混流服务完成缓冲混流的输出预备事件,通知旧混流服务停止混流,通知新混流服务从与旧混流服务到达的目标媒体流的最晚输出时间戳相对应的数据帧开始输出目标媒体流。
深化的实施例中,所述新服务创建模块1100,包括:旧服务推流子模块,用于向旧混流服务推送需要进行混流的多路原始媒体流;旧服务监听子模块,用于监听旧混流服务触发的服务过载通知事件;新服务创建子模块,用于响应旧混流服务触发的服务过载通知事件,创建新混流服务。
深化的实施例中,所述缓冲启动模块1200,包括:新服务推流子模块,用于同步于向旧混流服务继续推送所述多路原始媒体流而向新混流服务推送所述多路原始媒体流;起始标记子模块,用于驱动所述新混流服务从其所接收的多路原始媒体流的数据帧中确定最早时间戳;缓冲混流子模块,用于由所述最早时间戳的确定触发所述新混流服务以所述最早时间戳为缓冲起始时间戳,对其所接收的多路原始媒体流中的数据帧进行缓冲混流。
深化的实施例中,所述旧服务处理模块1300,包括:分界设置子模块,用于接收新混流服务提交的所述缓冲起始时间戳,将该缓冲起始时间戳设置为用于对旧混流服务输出的数据帧进行时间分界的时间节点;分界接收子模块,用于根据所述时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流中的数据帧,丢弃输出时间戳晚于该时间节点的目标媒体流中的数据帧。
深化的实施例中,所述切换控制模块1400,包括:预备接收子模块,用于接收新混流服务完成缓冲混流后触发的输出预备事件;旧服务停止子模块,用于响应所述输出预备事件,向旧混流服务发送第一通知消息,使其根据第一通知消息停止混流;新服务开始子模块,用于响应所述输出预备事件,向新混流服务发送第二通知消息,第二通知消息包含从旧混流服务到达的目标媒体流的最晚输出时间戳,使新混流服务从与所述最晚输出时间戳相对应的数据帧开始输出目标媒体流。
较佳的实施例中,所述旧混流服务与新混流服务均遵循相同的流媒体编码协议,其各自产出的目标媒体流中,均包含有该流媒体编码协议所规范的预协议时长相对应的数据帧。
为解决上述技术问题,本申请实施例还提供计算机设备。如图8所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、计算机可读存储介质、存储器和网络接口。其中,该计算机设备的计算机可读存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种混流服务切换方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本申请的混流服务切换方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施方式中处理器用于执行图7中的各个模块及其子模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本申请的混流服务切换装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
本申请还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本申请任一实施例的混流服务切换方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被一个或多个处理器执行时实现本申请任一实施例所述方法的步骤。
本领域普通技术人员可以理解实现本申请上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等计算机可读存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
综上所述,本申请能够根据旧混流服务所在的计算机设备的过载事件而启动自动切换机制,在服务集群的其他计算机设备中创建新混流服务,然后将混流任务从旧混流服务无缝切换到新混流服务中执行,确保所获得的目标媒体流的连续流畅性,实现服务集群内的负载均衡,尤其适用于网络直播应用场景中,可使此类场景下的直播间用户在播放所述目标媒体流时,获得顺滑流畅的播放体验。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种混流服务切换方法,其特征在于,包括如下步骤:
响应旧混流服务的服务过载通知事件,创建新混流服务,所述旧混流服务用于将多路原始媒体流混流为目标媒体流;
向新混流服务推送所述多路原始媒体流,使其以其所接收的多路原始媒体流中的一个数据帧的时间戳为缓冲起始时间戳进行缓冲混流;
以缓冲起始时间戳为时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流,丢弃输出时间戳晚于该时间节点的目标媒体流;
响应新混流服务完成缓冲混流的输出预备事件,通知旧混流服务停止混流,通知新混流服务从与旧混流服务到达的目标媒体流的最晚输出时间戳相对应的数据帧开始输出目标媒体流。
2.根据权利要求1所述的混流服务切换方法,其特征在于,响应旧混流服务的服务过载通知事件,创建新混流服务,所述旧混流服务用于将多路原始媒体流混流为目标媒体流,包括如下步骤:
向旧混流服务推送需要进行混流的多路原始媒体流;
监听旧混流服务触发的服务过载通知事件;
响应旧混流服务触发的服务过载通知事件,创建新混流服务。
3.根据权利要求1所述的混流服务切换方法,其特征在于,向新混流服务推送所述多路原始媒体流,使其以其所接收的多路原始媒体流中的一个数据帧的时间戳为缓冲起始时间戳进行缓冲混流,包括如下步骤:
同步于向旧混流服务继续推送所述多路原始媒体流而向新混流服务推送所述多路原始媒体流;
驱动所述新混流服务从其所接收的多路原始媒体流的数据帧中确定最早时间戳;
由所述最早时间戳的确定触发所述新混流服务以所述最早时间戳为缓冲起始时间戳,对其所接收的多路原始媒体流中的数据帧进行缓冲混流。
4.根据权利要求1所述的混流服务切换方法,其特征在于,以缓冲起始时间戳为时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流,丢弃输出时间戳晚于该时间节点的目标媒体流,包括如下步骤:
接收新混流服务提交的所述缓冲起始时间戳,将该缓冲起始时间戳设置为用于对旧混流服务输出的数据帧进行时间分界的时间节点;
根据所述时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流中的数据帧,丢弃输出时间戳晚于该时间节点的目标媒体流中的数据帧。
5.根据权利要求4所述的混流服务切换方法,其特征在于,响应新混流服务完成缓冲混流的输出预备事件,通知旧混流服务停止混流,通知新混流服务从与旧混流服务到达的目标媒体流的最晚输出时间戳相对应的数据帧开始输出目标媒体流,包括如下步骤:
接收新混流服务完成缓冲混流后触发的输出预备事件;
响应所述输出预备事件,向旧混流服务发送第一通知消息,使其根据第一通知消息停止混流;
响应所述输出预备事件,向新混流服务发送第二通知消息,第二通知消息包含从旧混流服务到达的目标媒体流的最晚输出时间戳,使新混流服务从与所述最晚输出时间戳相对应的数据帧开始输出目标媒体流。
6.根据权利要求1至5中任意一项所述的混流服务切换方法,其特征在于,所述旧混流服务与新混流服务均遵循相同的流媒体编码协议,其各自产出的目标媒体流中,均包含有该流媒体编码协议所规范的预协议时长相对应的数据帧。
7.一种混流服务切换装置,其特征在于,包括:
新服务创建模块,用于响应旧混流服务的服务过载通知事件,创建新混流服务,所述旧混流服务用于将多路原始媒体流混流为目标媒体流;
缓冲启动模块,用于向新混流服务推送所述多路原始媒体流,使其以其所接收的多路原始媒体流中的一个数据帧的时间戳为缓冲起始时间戳进行缓冲混流;
旧服务处理模块,用于以缓冲起始时间戳为时间节点,接收从旧混流服务获取的输出时间戳早于该时间节点的目标媒体流,丢弃输出时间戳晚于该时间节点的目标媒体流;
切换控制模块,用于响应新混流服务完成缓冲混流的输出预备事件,通知旧混流服务停止混流,通知新混流服务从与旧混流服务到达的目标媒体流的最晚输出时间戳相对应的数据帧开始输出目标媒体流。
8.一种计算机设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至6中任意一项所述的方法的步骤。
9.一种计算机可读存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至6中任意一项所述的方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至6任意一项中所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111264818.0A CN113992949B (zh) | 2021-10-28 | 2021-10-28 | 混流服务切换方法及其装置、设备、介质、产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111264818.0A CN113992949B (zh) | 2021-10-28 | 2021-10-28 | 混流服务切换方法及其装置、设备、介质、产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113992949A true CN113992949A (zh) | 2022-01-28 |
CN113992949B CN113992949B (zh) | 2023-04-28 |
Family
ID=79743603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111264818.0A Active CN113992949B (zh) | 2021-10-28 | 2021-10-28 | 混流服务切换方法及其装置、设备、介质、产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113992949B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114383667A (zh) * | 2022-01-29 | 2022-04-22 | 重庆长安汽车股份有限公司 | 多传感器仿真数据同步注入方法及系统 |
CN114679589A (zh) * | 2022-02-07 | 2022-06-28 | 上海哔哩哔哩科技有限公司 | 直播混流服务动态调整方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139813B1 (en) * | 1999-11-01 | 2006-11-21 | Nokia Networks Oy | Timedependent hyperlink system in videocontent |
US20100138531A1 (en) * | 2007-06-26 | 2010-06-03 | Thomson Licensing | Real time protocol stream migration |
CN103685314A (zh) * | 2013-12-27 | 2014-03-26 | 广东威创视讯科技股份有限公司 | 实现流媒体播放单播和多播无缝切换的方法 |
CN104486290A (zh) * | 2014-11-18 | 2015-04-01 | 中国科学技术大学 | 一种基于OpenFlow的流媒体云透明服务装置 |
CN106385398A (zh) * | 2016-01-12 | 2017-02-08 | 涂旭平 | 实时视频转码任务无缝迁移方法 |
CN111381962A (zh) * | 2020-02-28 | 2020-07-07 | 中国科学院信息工程研究所 | 一种边缘服务迁移方法及装置 |
-
2021
- 2021-10-28 CN CN202111264818.0A patent/CN113992949B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139813B1 (en) * | 1999-11-01 | 2006-11-21 | Nokia Networks Oy | Timedependent hyperlink system in videocontent |
US20100138531A1 (en) * | 2007-06-26 | 2010-06-03 | Thomson Licensing | Real time protocol stream migration |
CN103685314A (zh) * | 2013-12-27 | 2014-03-26 | 广东威创视讯科技股份有限公司 | 实现流媒体播放单播和多播无缝切换的方法 |
CN104486290A (zh) * | 2014-11-18 | 2015-04-01 | 中国科学技术大学 | 一种基于OpenFlow的流媒体云透明服务装置 |
CN106385398A (zh) * | 2016-01-12 | 2017-02-08 | 涂旭平 | 实时视频转码任务无缝迁移方法 |
CN111381962A (zh) * | 2020-02-28 | 2020-07-07 | 中国科学院信息工程研究所 | 一种边缘服务迁移方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114383667A (zh) * | 2022-01-29 | 2022-04-22 | 重庆长安汽车股份有限公司 | 多传感器仿真数据同步注入方法及系统 |
CN114679589A (zh) * | 2022-02-07 | 2022-06-28 | 上海哔哩哔哩科技有限公司 | 直播混流服务动态调整方法及装置 |
CN114679589B (zh) * | 2022-02-07 | 2023-11-17 | 上海哔哩哔哩科技有限公司 | 直播混流服务动态调整方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113992949B (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113423018B (zh) | 一种游戏数据处理方法、装置及存储介质 | |
CN110769278B (zh) | 一种分布式视频转码方法及系统 | |
US8990292B2 (en) | In-network middlebox compositor for distributed virtualized applications | |
CN113992949B (zh) | 混流服务切换方法及其装置、设备、介质、产品 | |
JP5291190B2 (ja) | インターネットプロトコルテレビジョンに関するチャネル変更応答時間を短縮する方法および装置 | |
RU2392753C2 (ru) | Способ подачи устройству команды не выполнять синхронизацию или ввести задержку синхронизации для мультимедийных потоков | |
US20080216125A1 (en) | Mobile Device Collaboration | |
US11924255B2 (en) | Data transmission method and apparatus, server, storage medium, and program product | |
CA2173355A1 (en) | Method and apparatus for multiple media digital communication system | |
US20230071243A1 (en) | Conserving network resources during transmission of packets of interactive services | |
US20170111421A1 (en) | Capture, Recording, and Streaming of Media Content | |
US10432543B2 (en) | Dual jitter buffers | |
CN112291498B (zh) | 音视频数据传输的方法、装置和存储介质 | |
WO2020173165A1 (zh) | 一种音频流和视频流同步切换方法及装置 | |
CN114007108B (zh) | 音频流混音控制方法及其装置、设备、介质、产品 | |
CN115834556B (zh) | 数据传输方法、系统、设备、存储介质及程序产品 | |
CN113542660A (zh) | 一种实现会议多画面高清显示的方法、系统及存储介质 | |
US9118947B2 (en) | Multi-vision virtualization system and method | |
CN112291496A (zh) | 一种基于内容的即时通信方法和系统 | |
CN113727177B (zh) | 投屏资源播放方法及其装置、设备与介质 | |
CN116156233A (zh) | 一种显示画面同步方法、系统及电子设备 | |
CA3213247A1 (en) | Method and system for integrating video content in a video conference session | |
CN114007109B (zh) | 混流转码处理方法及其装置、设备、介质、产品 | |
CN112543373B (zh) | 一种转码控制方法、装置及电子设备 | |
CN115209163B (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 |