CN114007109B - 混流转码处理方法及其装置、设备、介质、产品 - Google Patents
混流转码处理方法及其装置、设备、介质、产品 Download PDFInfo
- Publication number
- CN114007109B CN114007109B CN202111266099.6A CN202111266099A CN114007109B CN 114007109 B CN114007109 B CN 114007109B CN 202111266099 A CN202111266099 A CN 202111266099A CN 114007109 B CN114007109 B CN 114007109B
- Authority
- CN
- China
- Prior art keywords
- transcoding
- video stream
- service
- code rate
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 69
- 238000012545 processing Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 abstract description 27
- 238000004891 communication Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000002407 reforming Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression 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
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 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/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/234381—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 temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- 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)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开一种混流转码处理方法及其装置、设备、介质、产品,所述方法包括:由当前混流转码服务接收待处理视频流;由当前混流转码服务将所述待处理视频流进行解码混流,获得中间视频流;由当前混流转码服务将所述中间视频流分发到多个内部转码服务进行编码,每个内部转码服务按照其对应的固定码率进行编码以输出对应的目标视频流;由各内部转码服务将其转码所得的所述目标视频流推送至匹配相应固定码率的用户终端设备。本申请通过节省混流与转码的编码和解码环节,集成视频流的混流和转码过程,使视频流的混流和转码效率更高,能够降低转码时延和转码成本以及提升低码率视频流的画质。
Description
技术领域
本申请涉及流媒体处理技术,尤其涉及一种混流转码处理方法及其相应的装置、计算机设备、计算机可读存储介质,以及计算机程序产品。
背景技术
在视频直播场景中,服务器往往需要将主播用户上行的原始视频流转码成多个不同码率的观众流,以适应观众端不同网络环境和播放终端的拉流需求。一般做法是服务器先将主播的原始视频流解码成YUV或RGB数据,进行缩放或跟其它视频流混合,再编码成最高码率的观众流,再由另外的独立转码服务依次拉取最高码率的观众流进行解码、缩放、编码成其它低码率的观众流,如图1所示。这样对于资源分配调度比较容易,但对于最高码率以外的观众流,经历了两次解码、编码过程,对视频画质带来较大损失,增加了转码时延和转码成本。
除此之外,现有技术中,由于混流服务和独立转码服务之间相互独立,相互之间不存在负载均衡的问题,因此,混流服务也无法掌握整个混流转码过程的负载情况,使得其无法有效负责对计算机运行资源的维护。
发明内容
本申请的首要目的在于解决上述问题至少之一而提供一种混流转码处理方法及其相应的装置、计算机设备、计算机可读存储介质、计算机程序产品。
为满足本申请的各个目的,本申请采用如下技术方案:
适应本申请的目的之一而提供的一种混流转码处理方法,包括如下步骤:
由当前混流转码服务接收待处理视频流;
由当前混流转码服务将所述待处理视频流进行解码混流,获得中间视频流;
由当前混流转码服务将所述中间视频流分发到多个内部转码服务进行编码,每个内部转码服务按照其对应的固定码率进行编码以输出对应的目标视频流;
由各内部转码服务将其转码所得的所述目标视频流推送至匹配相应固定码率的用户终端设备。
深化的实施例中,由当前混流转码服务接收待处理视频流,包括如下步骤:
由当前混流转码服务将待处理视频流的数据帧添加至相应的抖动缓冲队列进行时序重整,实现抖动缓冲队列中的数据帧按时间顺序出列;
将抖动缓冲队列出列的数据帧依序通过该抖动缓冲队列相对应的待混流队列中;
将从所述待混流队列出列的数据帧用于所述的解码混流。
深化的实施例中,由当前混流转码服务将所述中间视频流分发到多个内部转码服务进行编码之前,包括如下步骤:
获取网络直播服务中用户终端设备的码率信息;
判断是否存在所述码率信息所指定的固定码率相对应的内部转码服务,当不存在所述内部转码服务时,创建所述固定码率相对应的内部转码服务;
建立所述用户终端设备与其码率信息中的固定码率相对应的内部转码服务的对应关系,以向该用户终端设备推送该内部转码服务生成的目标视频流。
深化的实施例中,每个内部转码服务按照其对应的固定码率进行编码以输出对应的目标视频流,包括如下步骤:
每个内部转码服务判断所述待处理视频流的码率是否为其自身对应的固定码率;
当前一判断成立时,以其自身对应的固定码率将所述中间视频流直接编码为目标视频流后输出;
当前一判断不成立时,根据其自身对应的固定码率将所述中间视频流进行图像缩放后编码为目标视频流后输出。
扩展的实施例中,本方法还包括如下步骤:
监听当前混流转码服务所占用的计算机运行资源的使用量超过预设阈值的告警事件;
响应所述告警事件,确定所述多个内部转码服务中对应的固定码率中相对较低的至少一个目标码率;
调用另一计算机设备中的与所述目标码率相对应的独立转码服务,向其传输由相应的内部转码服务编码获得的以最高码率输出的目标视频流;
由各个所述的独立转码服务根据其相应的目标码率对所述目标视频流进行解码、缩放以及编码,获得与其目标码率相对应的目标视频流以推送至匹配该目标码率的用户终端设备。
深化的实施例中,调用另一计算机设备中的与所述目标码率相对应的独立转码服务,包括如下步骤:
查询服务集群中的计算机设备的运行资源闲置率;
在运行资源闲置率最高的计算机设备中创建适用以所述目标码率进行转码的独立转码服务;
向所述独立转码服务传输以最高码率输出的目标视频流以供转码。
适应本申请的目的之一而提供的一种混流转码处理装置,包括:视频流接收模块、解码混流模块、分发转码模块,以及视频流推送模块,其中,所述视频流接收模块,被配置为由当前混流转码服务接收待处理视频流;所述解码混流模块,被配置为由当前混流转码服务将所述待处理视频流进行解码混流,获得中间视频流;所述分发转码模块,被配置为由当前混流转码服务将所述中间视频流分发到多个内部转码服务进行编码,每个内部转码服务按照其对应的固定码率进行编码以输出对应的目标视频流;所述视频流推送模块,被配置为由各内部转码服务将其转码所得的所述目标视频流推送至匹配相应固定码率的用户终端设备。
深化的实施例中,所述视频流接收模块,包括:时序重整子模块,用于由当前混流转码服务将待处理视频流的数据帧添加至相应的抖动缓冲队列进行时序重整,实现抖动缓冲队列中的数据帧按时间顺序出列;队列转移子模块,用于将抖动缓冲队列出列的数据帧依序通过该抖动缓冲队列相对应的待混流队列中;混流出列子模块,用于将从所述待混流队列出列的数据帧用于所述的解码混流。
深化的实施例中,所述解码混流模块,包括:码率搜集子模块,用于获取网络直播服务中用户终端设备的码率信息;服务配置子模块,用于判断是否存在所述码率信息所指定的固定码率相对应的内部转码服务,当不存在所述内部转码服务时,创建所述固定码率相对应的内部转码服务;服务关联子模块,用于建立所述用户终端设备与其码率信息中的固定码率相对应的内部转码服务的对应关系,以向该用户终端设备推送该内部转码服务生成的目标视频流。
深化的实施例中,所述解码混流模块,包括用于实现各个内部转码服务的如下结构:码率自检子模块,被配置为由每个内部转码服务判断所述待处理视频流的码率是否为其自身对应的固定码率;直接转码子模块,用于当前一判断成立时,以其自身对应的固定码率将所述中间视频流直接编码为目标视频流后输出;缩放转码子模块,用于当前一判断不成立时,根据其自身对应的固定码率将所述中间视频流进行图像缩放后编码为目标视频流后输出。
扩展的实施例中,所述混流转码处理装置还包括:告警监听模块,用于监听当前混流转码服务所占用的计算机运行资源的使用量超过预设阈值的告警事件;目标确定模块,用于响应所述告警事件,确定所述多个内部转码服务中对应的固定码率中相对较低的至少一个目标码率;响应调度模块,用于调用另一计算机设备中的与所述目标码率相对应的独立转码服务,向其传输由相应的内部转码服务编码获得的以最高码率输出的目标视频流;独立转码模块,被配置为由各个所述的独立转码服务根据其相应的目标码率对所述目标视频流进行解码、缩放以及编码,获得与其目标码率相对应的目标视频流以推送至匹配该目标码率的用户终端设备。
深化的实施例中,所述响应调度模块,包括:资源查询子模块,用于查询服务集群中的计算机设备的运行资源闲置率;服务创建子模块,用于在运行资源闲置率最高的计算机设备中创建适用以所述目标码率进行转码的独立转码服务;视频传输子模块,用于向所述独立转码服务传输以最高码率输出的目标视频流以供转码。
适应本申请的目的之一而提供的一种计算机设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述的混流转码处理方法的步骤。
适应本申请的另一目的而提供的一种计算机可读存储介质,其以计算机可读指令的形式存储有依据所述的混流转码处理方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
适应本申请的另一目的而提供的一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本申请任意一种实施例中所述方法的步骤。
相对于现有技术,本申请的优势如下:
首先,本申请将待处理视频流进行解码混流后,弃用先编码后进行码率转换输出的方式,直接将混流所得的中间视频流分发至各个内部转码服务中进行转码,各个内部转码服务按照其自身相对应的固定码率控制所分得的一路中间视频流的编码输出,将以相应固定码率输出的目标视频流推送给匹配该固定码率的相关用户终端设备,期间,无需如现有技术需要对混流所得的中间视频流进行编码再送到独立转码服务进行完整的解码、缩放以及编码,节省了两个处理节点,避免损失视频画质,并且可以降低转码时延和转码所需的计算机资源消耗成本。
其次,本申请将内部转码服务与混流服务合二为一集成为混流转码服务,使得混流转码服务可以集中实现对混流转码过程中的负载检测和负载均衡,从而可以在需要时对计算机运行资源进行按需调度,进一步确保服务的强健运行,确保为混流转码提供稳健的服务。
此外,本申请所取得的优势使得本申请的技术方案特别适用于运行资源密集型应用场景,尤其是CPU密集型的运行任务中,例如网络直播服务中常需要对多路音视频流进行混流转码,而混流转码即是CPU密集型任务,此类场景下,应用本申请的技术方案能获得更为明显的优势,因此,对于确保网络直播服务的稳健性和流畅性均有明显助益,可以确保网络直播服务获得良好的画质,改善终端设备的用户体验。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为现有技术所采用的混流服务与转码服务之间的逻辑架构示意图;
图2为应用本申请的混流转码处理方法的服务集群的逻辑架构示意图;
图3为本申请的混流转码处理方法的典型实施例的流程示意图;
图4为本申请所采用的混流转码服务的逻辑架构示意图;
图5为本申请的混流转码服务接收待处理视频的过程的流程示意图;
图6为本申请中为内部转码服务与固定码率建立对应关系的过程的流程示意图;
图7为本申请中内部转码服务自适应匹配固定码率过程的流程示意图;
图8为本申请中适用降级机制转移部分固定码率相对应的转码任务的过程的流程示意图;
图9为本申请中混流转码服务加载独立转码服务的逻辑架构示意图;
图10为本申请中为独立转码服务调度计算机设备的过程的流程示意图;
图11为本申请的混流转码处理装置的原理框图;
图12为本申请所采用的一种计算机设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信***),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位***)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
本申请的一个或数个技术特征,除非明文指定,既可部署于服务器实施而由客户端远程调用获取服务器提供的在线服务接口来实施访问,也可直接部署并运行于客户端来实施访问。
本申请中所引用或可能引用到的神经网络模型,除非明文指定,既可部署于远程服务器且在客户端实施远程调用,也可部署于设备能力胜任的客户端直接调用,某些实施例中,当其运行于客户端时,其相应的智能可通过迁移学习来获得,以便降低对客户端硬件运行资源的要求,避免过度占用客户端硬件运行资源。
本申请所涉及的各种数据,除非明文指定,既可远程存储于服务器,也可存储于本地终端设备,只要其适于被本申请的技术方案所调用即可。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
本申请即将揭示的各个实施例,除非明文指出彼此之间的相互排斥关系,否则,各个实施例所涉的相关技术特征可以交叉结合而灵活构造出新的实施例,只要这种结合不背离本申请的创造精神且可满足现有技术中的需求或解决现有技术中的某方面的不足即可。对此变通,本领域技术人员应当知晓。
本申请的一种混流转码处理方法,可被编程为计算机程序产品,部署于服务集群中运行而实现,以便藉此通过访问该计算机程序产品运行后开放的接口,通过图形用户界面与该计算机程序产品进行人机交互而执行该方法。
请参阅图2,所述服务集群中,包括多台充当服务器的计算机设备,服务集群可以利用微服务架构进行容器化管理,从而获得多个服务容器,每个服务容器本质上是一个用于执行一个或多个运行任务的服务进程,因此,每个服务进程可能同时并发处理多个运行任务。在本申请示例性的网络直播应用场景中,所述运行任务主要是用于将多路原始媒体流进行混流转码处理的混流转码服务,在混流之后可一并进行必要的转码处理。根据本申请一个实施例中涉及的调度机制,所述运行任务也可以由本申请的混流转码服务扩展的独立转码服务,可与所述混流转码服务并存于同一服务集群的不同计算机设备中。
每个所述的服务进程一般运行于一台计算机设备中,通常不同服务进程所处理的运行任务也可以为相同功能的运行任务,例如本申请中示例性的网络直播场景中对多路原始媒体流进行混流和转码的计算机任务。
服务集群中的运行任务还可以包括负责对外输出输入的接入服务,通过所述的接入服务,可以接收外部的一路或多路待处理视频流的输入,将其转发给混流转码服务进行混流转码处理,在此一过程中,接入服务可以负责各种必要的调度,确保所提供的网络直播服务能够稳健的运行。
请参阅图3,本申请的混流转码处理方法在其典型实施例中,包括如下步骤:
步骤S1100、由当前混流转码服务接收待处理视频流:
如图4所示,在服务集群中,可以由接入服务负责将例如示例性网络直播场景中的多路待处理视频流转发到本申请的各个混流转码服务中,本申请为了理解的便利,后续仅以单个混流转码服务的业务逻辑进行说明。
以本申请网络直播应用场景为例,其相应的混流转码服务部署于图2所示的服务集群中,通过服务集群内的一台充当服务器的计算机设备内的混流转码服务,负责对处于连线通信各方的主播用户上传的视频流或者对同一主播用户指定的多路视频流进行混流转码处理,以获得相应的目标视频流。其中,用于混流的视频流被称为待处理视频流。本申请的技术方案主要被实现于一个混流转码服务中,混流转码服务可以通过接口与接入服务实现通信。
所述的视频流,每一个视频流在内容上既可以为单独的视频流,也可以是音视频流,同一个主播用户提供的视频流,可以是一路也可以是多路,最终所有需要混流的各路视频流均被提交给接入服务调度至相应的混流转码服务中处理,这些提供给混流转码服务的视频流即为本申请所称的待处理视频流。同理,由这些待处理视频流混流转码而成的视频流,即为本申请所称的目标视频流。
所述视频流,包括多个数据帧,也称数据包,对于视频流而言,所述数据帧主要为图像帧。
所述的混流转码服务在默认情况下专门负责接入服务调度过来的多路待处理视频流的混流转码作业,将多路待处理视频流混流转码成目标视频流之后又交由接入服务输出。混流转码服务在其生存周期内可以对其所在的计算机设备的负载情况进行监测,当其监听到其所在的计算机设备的运行资源超载或者其自身所占用的该计算机设备的运行资源超过预设阈值时,便可触发相应的告警事件。
所述的运行资源,可以包括CPU运行资源、内存运行资源、硬盘运行资源等,本实施例中,为理解的便利,简化为以对CPU运行资源的检测进行说明。故此,示例而言,可以预先设置一个经验性的负载阈值,混流转码服务检测其当前CPU使用率是否超过该负载阈值,当超过该负载阈值时,便触发所述的告警事件,否则,继续负责混流转码作业。
一个实施例中,为了防止待处理视频流的出现数据帧丢包、数据帧乱序等数据,可以在混流转码服务中对混流转码服务所接收的各路待处理视频流进行数据帧的缓冲,在缓冲时长范围内对已接收的各个数据帧进行时序整理,对此,将在后文进一步揭示。
步骤S1200、由当前混流转码服务将所述待处理视频流进行解码混流,获得中间视频流:
如图4所示,根据视频编解码原理,当所述的待处理视频流进入当前的所述混流转码服务后,便可由当前混流转码服务的解码逻辑单元进行解码,根据该待处理视频流相对应的编码协议,解码出各路待处理视频流相对应的图像数据。
在此基础上,混流转码服务将各路待处理视频流相对应的图像数据基于同一时间坐标系进行图像混流,将多路待处理视频流合路为一路中间视频流。具体而言,为了实现不同路待处理视频流的数据帧在时间上的同步,混流转码服务会将所有各路待处理视频流的时间戳都映射到同一时间坐标系以形成统一时间戳,以便基于统一时间戳对各路待处理视频流进行混流,参照统一时间戳来标记其混流而成的目标视频流中的数据帧的输出时间戳。
混流转码服务在混流过程中,混流转码服务采用一个时序指针指示中间视频流的当前时间戳,该当前时间戳每次被用于标记混流而成的中间视频流中的数据帧之后,又叠加编码协议规定的预协议时长,用于作为下一次混流而成的数据帧的当前时间戳。其中,为了避免多路待处理视频流因丢包、时间戳未对齐、乱码等可能的原因导致的时间戳不均匀的现象,可以对这一现象进行检测,在检测到相应的现象后,具体判断当前时间戳是否超出混流而成的数据帧中的最小时间戳和最大时间戳所界定的时区范围,当超过该范围时,以预定量微调所述的当前时间戳,以使中间视频流中的各个数据帧的时间戳保持相对均匀的变化,确保终端设备在播放目标视频流时更为流畅自然。
由于待处理视频流自身以默认的码率被传输至当前混流转码服务,这一码率实际也是混流转码过程中的最高码率,因此,可以理解,所述中间视频流将以最高码率输出。
步骤S1300、由当前混流转码服务将所述中间视频流分发到多个内部转码服务进行编码,每个内部转码服务按照其对应的固定码率进行编码以输出对应的目标视频流:
如图4所示,不同于现有技术,每个混流转码服务都将负责转码的业务逻辑内建为其自身的内部转码服务,使其与混流转码服务置于同一运行任务中执行,也即置于同一计算机设备中运行,如此,可以避免跨设备之间的接口调用,提升执行效率。
以网络直播场景为例,直播间中的不同用户,由于其用户终端设备的带宽、硬件等原因,所能处理的目标视频流的码率可能不同,因此,通常需要将一个直播间相对应的目标视频流转化为不同固定码率的输出,以便为不同的用户终端设备适配不同固定码率输出的目标视频流。为了获得不同固定码率的输出,所述混流转码服务首先将其混流而成的中间视频流直接分发给多个对应不同固定码率的内部转码服务进行编码处理,可以理解,每个内部转码服务实际上便构成了一个相应的编码通道。
每个内部转码服务均工作在与其自身相适应的固定码率上,以该固定码率对该内部转码服务所接收的中间视频流进行编码获得相应的目标视频流,控制该目标视频流以该相应的固定码率经接入服务推送至相应的用户终端设备。
不难理解,对于与所述最高码率相对应的内部转码服务而言,无需再对所述的中间视频流进行码率转换,直接根据编码协议对所述中间视频流进行编码输出相应的目标视频流即可。
而对于低于所述最高码率的固定码率相应的内部转码服务而言,则需要在编码前对所述中间视频流进行必要的处理,例如对所述中间视频流进行图像缩放、丢帧等处理,以使最终编码所得的目标视频流可以所述固定码率传输。
至此,可以理解,混流转码服务将其混流而得的中间视频流接入其内部的与不同固定码率相对应的编码通道之后,便可由各个编码通道中的内部转码服务对应各个固定码率编码生成相应的目标视频流。
步骤S1400、由各内部转码服务将其转码所得的所述目标视频流推送至匹配相应固定码率的用户终端设备:
各内部转码服务按照其各自相应的固定码率对所述中间视频流进行转码处理生成所述的目标视频流之后,便可通过所述的接入服务相应推送到匹配相应固定码率的用户终端设备处。用户终端设备按照对应的固定码率接收相应的目标视频流,将目标视频流进行解码播放。由于用户终端设备所获得的目标视频流是按照该用户终端设备相适配的固定码率编码输出的,因此,目标视频流在播放时能获得较为流畅的效果,且由于该目标视频流在混流转码服务中直接混流后即行转码,无需跨服务或跨设备调用,节省了部分中间的解码编码环节,因此,进一步确保了用户终端设备播放时的流畅性。
通过以上的典型实施例可以看出,本申请将待处理视频流进行解码混流后,弃用先编码后进行码率转换输出的方式,直接将混流所得的中间视频流分发至各个内部转码服务中进行转码,各个内部转码服务按照其自身相对应的固定码率控制所分得的一路中间视频流的编码输出,将以相应固定码率输出的目标视频流推送给匹配该固定码率的相关用户终端设备,期间,无需如现有技术需要对混流所得的中间视频流进行编码再送到独立转码服务进行完整的解码、缩放以及编码,节省了两个处理节点,避免损失视频画质,并且可以降低转码时延和转码所需的计算机资源消耗成本。
其次,本申请将内部转码服务与混流服务合二为一集成为混流转码服务,使得混流转码服务可以集中实现对混流转码过程中的负载检测和负载均衡,从而可以在需要时对计算机运行资源进行按需调度,进一步确保服务的强健运行,确保为混流转码提供稳健的服务。
此外,本申请所取得的优势使得本申请的技术方案特别适用于运行资源密集型应用场景,尤其是CPU密集型的运行任务中,例如网络直播服务中常需要对多路音视频流进行混流转码,而混流转码即是CPU密集型任务,此类场景下,应用本申请的技术方案能获得更为明显的优势,因此,对于确保网络直播服务的稳健性和流畅性均有明显助益,可以确保网络直播服
请参阅图5,深化的实施例中,所述步骤S1100、由当前混流转码服务接收待处理视频流,包括如下步骤:
步骤S1110、由当前混流转码服务将待处理视频流的数据帧添加至相应的抖动缓冲队列进行时序重整,实现抖动缓冲队列中的数据帧按时间顺序出列:
本实施例中,为了实现对混流转码服务所接收的视频流的数据帧进行时序重整,采用了抖动缓冲机制,为每一路待处理视频流对应设置一个抖动缓冲队列和一个待混流队列。
所述混流转码服务所接收的各路待处理视频流,其数据帧被陆续添加至其各自相对应的抖动缓冲队列中。在抖动缓冲队列内部,每个抖动缓冲队列负责对队列内的各个数据帧根据数据帧的时间戳进行时序重排,使每路待处理视频流的数据帧按其时间戳的时序依次出列转移至对应的所述待混流队列。
步骤S1120、将抖动缓冲队列出列的数据帧依序通过该抖动缓冲队列相对应的待混流队列中;
每个抖动缓冲队列按照一定的缓冲时长控制其队列长度,以便在所接收的数据帧数量超过该缓冲时长对应的缓冲区长度时驱动抖动缓冲队列出列其队头的数据帧。因此,所述抖动缓冲队列所存储的数据帧的数量,决定于预先设定的一个缓冲时长,此一缓冲时长可由混流转码服务根据所有各路待处理视频流的数据帧到达的情况进行评估确定,以尽量确保各路待处理视频流的抖动缓冲队列均能够有效接收到足量的数据帧为准进行设置即可。
可以理解,由于每个抖动缓冲队列所出列的数据帧,已经预先经过时序重整,因此,每个抖动缓冲队列所输出的数据帧是按照数据帧的时间戳顺序出列进入待混流队列的,故待混流队列中的数据帧是规则排序的。
步骤S1130、将从所述待混流队列出列的数据帧用于所述的解码混流:
待混流队列的数据帧将被用于混流,其可按一定的策略出列,不影响本申请的创造精神的体现,可由本领域技术人员灵活实现。只要在执行混流的业务逻辑时可以从各路待处理视频流的待混流队列中获得足量的数据帧用于混流即可。
本实施例通过混流转码服务将其接收到的各路待处理视频流的数据帧分别进行时序重整,并且通过缓冲时长控制各个抖动缓冲队列而建立起数据帧的缓冲机制,使得待处理视频能够在混流前便准备好足量的数据帧,从而确保能够从待处理视频流中采集足量的数据帧进行有效的混流,不会出现丢包、乱序等现象,确保了最终获得的目标视频音的图像质量。
请参阅图6,深化的实施例中,所述步骤S1300、由当前混流转码服务将所述中间视频流分发到多个内部转码服务进行编码之前,包括如下步骤:
步骤S2100、获取网络直播服务中用户终端设备的码率信息:
本申请示例性的网络直播服务中,对于同一直播间或者多个直播间的观众用户而言,不同的用户终端设备相应匹配不同的固定码率,即不同的用户终端设备仅适于接收某种固定码率的目标视频流,这一固定码率可由支持直播间运行的用户终端设备上的直播间应用程序负责检测确定,然后提升给本申请的接入服务。所述接入服务获取到各个用户终端设备的码率信息后,可以进行聚类,确定多个相应的固定码率,以便为各个固定码率匹配相应的转码所需的编码通道。
步骤S2200、判断是否存在所述码率信息所指定的固定码率相对应的内部转码服务,当不存在所述内部转码服务时,创建所述固定码率相对应的内部转码服务:
当接入服务需要增加一个指定的固定码率相对应的编码通道时,可通知混流转码服务执行。混流转码服务据此检测当前在运行的各个内部转码服务中,是否存在对应该固定码率的内部转码服务,如果已经存在,则无需再创建,直接回复告知所述接入服务即可;如果不存在与该固定码率相对应的内部转码服务,则可直接创建一个新的内部转码服务,设定其用于以该固定码率对中间视频流进行转码输出。
步骤S2300、建立所述用户终端设备与其码率信息中的固定码率相对应的内部转码服务的对应关系,以向该用户终端设备推送该内部转码服务生成的目标视频流:
为了便于维护,可以由接入服务建立起不同直播间中不同用户终端设备与其相适配的固定码率之间的对应关系,由此也建立了不同观众用户与不同内部转码服务之间的对应关系,以及不同用户终端设备与不同内部转码服务之间的对应关系,据此,接入服务后续可以此为依据,根据用户终端设备相对应的固定码率,而采用相应固定码率的内部转码服务输出的目标视频流推送给该用户终端设备。
本实施例中,通过维护用户终端设备与其固定码率以及转码内部服务之间的映射关系数据,方便混流转码服务动态适应实际需求而增设或者删减转码内部服务,以便实现计算机设备运行资源的利用效率的最大化。
请参阅图7,深化的实施例中,所述步骤S1300中,每个内部转码服务按照其对应的固定码率进行编码以输出对应的目标视频流,包括如下步骤:
步骤S3100、每个内部转码服务判断所述待处理视频流的码率是否为其自身对应的固定码率:
本实施例中,为方便所述内部转码服务采用统一的类定义实现,可以通过同一类定义在内部转码服务的业务逻辑中实现一个判断机制。当通过内部转码服务的类创建出相应的实例之后,由内部转码服务实例对所述待处理视频流的码率是否与内部转码服务自身被设定的固定码率相一致,然后因应不同判断情况做出后续步骤的处理。
步骤S3200、当前一判断成立时,以其自身对应的固定码率将所述中间视频流直接编码为目标视频流后输出:
当判断当前内部转码服务的固定码率与待处理视频流的传输码率相一致时,即表明当前内部转码服务无需对待处理视频流进行转码,因此,只需直接将中间视频流转码为目标视频流,以待处理视频流的传输码率为最高码率,控制目标视频流的输出即可。
步骤S3300、当前一判断不成立时,根据其自身对应的固定码率将所述中间视频流进行图像缩放后编码为目标视频流后输出:
当判断当前内部转码服务的固定码率与待处理视频流的传输码率不一致时,通常由于待处理视频流的传输码率被视为最高码率,因此该固定码率一般是更低的码率,这种情况下,表明当前内部转码服务需要对待处理视频流进行转码,因此,对中间视频流分两步处理,第一步是将其进行图像缩放处理,包括但不限于缩小中间视频流中每帧图像的尺寸、丢弃其中个别非关键帧等本领域技术人员常用于图像压缩的技术手段,以便使缩放后的图像能够适应所述固定码率所需。第二步是在图像缩放的基础上,按照编码协议固有的编码逻辑对缩放后的图像进行编码获得相应的目标视频流,然后以相应的固定码率输出该目标视频流。
本实施例中,通过在内部转码服务中实现判断机制,方便对内部转码服务进行标准化的类定义以及方便被混流转码服务实施化调用,实现内部转码服务自适应地根据其自身相对应的固定码率来执行相应的业务逻辑,确保每个内部转码服务都能对应输出为其预设的固定码率的目标视频流。
请参阅图8和图9,扩展的实施例中,进一步为本申请的混流转码处理方法实现跨计算机设备及跨服务进程的自动调度机制,因此,该方法还包括如下步骤:
步骤S4100、监听当前混流转码服务所占用的计算机运行资源的使用量超过预设阈值的告警事件:
对于当前运行的混流转码服务而言,其负责实时监听其自身执行混流转码过程中所占用的计算机运行资源的使用量,将其与一个预设阈值进行比较,该预设阈值可以是经验阈值,也可以是适应混流转码服务所在的计算机设备的运行资源使用率确定的自适应阈值,例如,可以在计算机设备的运行资源的使用率达越高时控制该自适应阈值越低,反之则越高,对此,方式多样,可由本领域技术人员灵活设定。
当所述使用量超过所述预设阈值时,便触发一个告警事件,用于指示当前服务进程乃至当前计算机设备过载。
步骤S4200、响应所述告警事件,确定所述多个内部转码服务中对应的固定码率中相对较低的至少一个目标码率:
为了避免***崩溃,可以将当前混流转码服务中的一个或数个内部转码服务转移到其他计算机设备上运行的同类服务进程中运行,本实施例中,以优选调离对应的固定码率较低的一个或多个内部转码服务至其他计算机设备中处理,以实现对较低固定码率的降级转码服务。此次,被选中的需转移的固定码率,称为目标码率。本领域技术人员可以利用多种调度策略来确定所述的目标码率及其数量,例如,本实施例中,可响应于所述告警事件而仅确定最低的两个固定码率为所述的目标码率,后续相应将这两个固定码率的内部转码服务转移到外部的两个独立转码服务中处理。
步骤S4300、调用另一计算机设备中的与所述目标码率相对应的独立转码服务,向其传输由相应的内部转码服务编码获得的以最高码率输出的目标视频流:
为了实现降级转码服务,对应每一固定码率,需要在另一计算机设备中调用运行其相应的独立转码服务,如图9所示,所述独立转码服务与所述内部转码服务相比较,其作为一个独立的服务而拥有相应的解码单元,以便对其所接收的目标视频流进行相应独立的解码、缩放、编码处理。由于独立转码服务具有完整的转码业务逻辑,因此可直接采用传统的相应转码部件实施。
据此,响应所述告警事件,当前混流转码服务可以将其以最高码率输出的目标视频流传输给其调用的运行于另一计算机设备中的独立转码服务进行转码处理。
步骤S4400、由各个所述的独立转码服务根据其相应的目标码率对所述目标视频流进行解码、缩放以及编码,获得与其目标码率相对应的目标视频流以推送至匹配该目标码率的用户终端设备:
对于任意一个独立转码服务而言,当其接收到混流转码服务的一个内部转成码服务输出的以最高码率传输的目标视频流之后,便相应对其进行解码、缩放以及编码,获得相应的最终目标视频流,后续便可将其通过接入服务推送到与其目标码率相应的用户终端设备中。
可以理解,对于混流转码服务中被转移的内部转码服务而言,可以停止工作,以便释放混流转码服务所在的计算机设备的运行资源,使其运行更为流畅稳健。
本实施例实现了跨计算机设备的调度机制,由混流转码服务自行监控自身的过载情况,在混流转码服务发现自身所处的运行环境过载时,便可针对其中部分较低的固定码率进行转移处理,将这些固定码率相对应的转码任务转移到其他计算机设备的独立转码服务中运行,实现对这些固定码率相对应的转码服务的降级处理,从而降低自身对计算机设备运行资源的占用,使自身所在运行环境更为强健,同时又不影响混流转码任务的有效处理。
请参阅图10,深化的实施例中,所述步骤S4300中,调用另一计算机设备中的与所述目标码率相对应的独立转码服务,包括如下步骤:
步骤S5100、查询服务集群中的计算机设备的运行资源闲置率:
为了实现最优调度,混流转码服务在需要转移部分固定码率相对应的转码服务时,可先通过向服务集群的微服务架构查询来优选计算机设备。具体可以通过向服务集群查询各个集群内各个计算机设置的运行资源闲置率来了解各个计算机设备内的运行资源余量,以便以此为依据决定需要将转码任务转移至何一计算机设备。
步骤S5200、在运行资源闲置率最高的计算机设备中创建适用以所述目标码率进行转码的独立转码服务:
为了使独立转码服务运行更为强健,可以根据向服务集群查询得到的闲置率信息,选定其中闲置率最低的计算机设备,作为运行所述独立转码服务的目标服务器,然后在其中创建所述的独立转码服务,设定其按照某一目标码率进行转码输出,使其具备以所述目标码率控制目标视频流输出的能力。
步骤S5300、向所述独立转码服务传输以最高码率输出的目标视频流以供转码:
当完成所述的独立转码服务的配置之后,混流转码服务便可开始将其内部的一路以最高码率输出的目标视频流传输给各个所述的独立转码服务进行独立转码,各个独立转码服务接收到最高码率输出的目标视频流之后,重新进行解码之后,再行缩放,最后再将其编码为以相应的目标码率输出的目标视频流,再推送至相应的用户终端设备。
对于从内部转码服务转移到外部独立转码服务的过程,既可由混流转码服务实现业务逻辑来控制,也可交由所述的接入服务实现业务逻辑来控制,只要协调好两者的切换时间确保最终到达用户终端设备的目标视频流在时域上的平滑切换即可。
本实施例中,在服务于独立转码服务的调度时,确保优选具有最优闲置运行资源的计算机设备来实现所述的独立转码服务,以使独立转码服务的运行更为健康稳定,协助从整体上实现稳定流畅的混流转码服务。
请参阅图11,适应本申请的目的之一而提供的一种混流转码处理装置,包括:视频流接收模块1100、解码混流模块1200、分发转码模块1300,以及视频流推送模块1400,其中,所述视频流接收模块1100,被配置为由当前混流转码服务接收待处理视频流;所述解码混流模块1200,被配置为由当前混流转码服务将所述待处理视频流进行解码混流,获得中间视频流;所述分发转码模块1300,被配置为由当前混流转码服务将所述中间视频流分发到多个内部转码服务进行编码,每个内部转码服务按照其对应的固定码率进行编码以输出对应的目标视频流;所述视频流推送模块1400,被配置为由各内部转码服务将其转码所得的所述目标视频流推送至匹配相应固定码率的用户终端设备。
深化的实施例中,所述视频流接收模块1100,包括:时序重整子模块,用于由当前混流转码服务将待处理视频流的数据帧添加至相应的抖动缓冲队列进行时序重整,实现抖动缓冲队列中的数据帧按时间顺序出列;队列转移子模块,用于将抖动缓冲队列出列的数据帧依序通过该抖动缓冲队列相对应的待混流队列中;混流出列子模块,用于将从所述待混流队列出列的数据帧用于所述的解码混流。
深化的实施例中,所述解码混流模块1200,包括:码率搜集子模块,用于获取网络直播服务中用户终端设备的码率信息;服务配置子模块,用于判断是否存在所述码率信息所指定的固定码率相对应的内部转码服务,当不存在所述内部转码服务时,创建所述固定码率相对应的内部转码服务;服务关联子模块,用于建立所述用户终端设备与其码率信息中的固定码率相对应的内部转码服务的对应关系,以向该用户终端设备推送该内部转码服务生成的目标视频流。
深化的实施例中,所述解码混流模块1200,包括用于实现各个内部转码服务的如下结构:码率自检子模块,被配置为由每个内部转码服务判断所述待处理视频流的码率是否为其自身对应的固定码率;直接转码子模块,用于当前一判断成立时,以其自身对应的固定码率将所述中间视频流直接编码为目标视频流后输出;缩放转码子模块,用于当前一判断不成立时,根据其自身对应的固定码率将所述中间视频流进行图像缩放后编码为目标视频流后输出。
扩展的实施例中,所述混流转码处理装置还包括:告警监听模块,用于监听当前混流转码服务所占用的计算机运行资源的使用量超过预设阈值的告警事件;目标确定模块,用于响应所述告警事件,确定所述多个内部转码服务中对应的固定码率中相对较低的至少一个目标码率;响应调度模块,用于调用另一计算机设备中的与所述目标码率相对应的独立转码服务,向其传输由相应的内部转码服务编码获得的以最高码率输出的目标视频流;独立转码模块,被配置为由各个所述的独立转码服务根据其相应的目标码率对所述目标视频流进行解码、缩放以及编码,获得与其目标码率相对应的目标视频流以推送至匹配该目标码率的用户终端设备。
深化的实施例中,所述响应调度模块,包括:资源查询子模块,用于查询服务集群中的计算机设备的运行资源闲置率;服务创建子模块,用于在运行资源闲置率最高的计算机设备中创建适用以所述目标码率进行转码的独立转码服务;视频传输子模块,用于向所述独立转码服务传输以最高码率输出的目标视频流以供转码。
为解决上述技术问题,本申请实施例还提供计算机设备。如图12所示,计算机设备的内部结构示意图。该计算机设备包括通过***总线连接的处理器、计算机可读存储介质、存储器和网络接口。其中,该计算机设备的计算机可读存储介质存储有操作***、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种混流转码处理方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本申请的混流转码处理方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施方式中处理器用于执行图11中的各个模块及其子模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本申请的混流转码处理装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
本申请还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本申请任一实施例的混流转码处理方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被一个或多个处理器执行时实现本申请任一实施例所述方法的步骤。
本领域普通技术人员可以理解实现本申请上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等计算机可读存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
综上所述,本申请通过节省混流与转码的编码和解码环节,集成视频流的混流和转码过程,使视频流的混流和转码效率更高,能够降低转码时延和转码成本以及提升低码率视频流的画质。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (9)
1.一种混流转码处理方法,其特征在于,包括如下步骤:
由当前混流转码服务接收待处理视频流;
由当前混流转码服务将所述待处理视频流进行解码混流,获得中间视频流;
由当前混流转码服务将所述中间视频流分发到多个内部转码服务进行编码,每个内部转码服务按照其对应的固定码率进行编码以输出对应的目标视频流;
由各内部转码服务将其转码所得的所述目标视频流推送至匹配相应固定码率的用户终端设备。
2.根据权利要求1所述的混流转码处理方法,其特征在于,由当前混流转码服务接收待处理视频流,包括如下步骤:
由当前混流转码服务将待处理视频流的数据帧添加至相应的抖动缓冲队列进行时序重整,实现抖动缓冲队列中的数据帧按时间顺序出列;
将抖动缓冲队列出列的数据帧依序通过该抖动缓冲队列相对应的待混流队列中;
将从所述待混流队列出列的数据帧用于所述的解码混流。
3.根据权利要求1所述的混流转码处理方法,其特征在于,由当前混流转码服务将所述中间视频流分发到多个内部转码服务进行编码之前,包括如下步骤:
获取网络直播服务中用户终端设备的码率信息;
判断是否存在所述码率信息所指定的固定码率相对应的内部转码服务,当不存在所述内部转码服务时,创建所述固定码率相对应的内部转码服务;
建立所述用户终端设备与其码率信息中的固定码率相对应的内部转码服务的对应关系,以向该用户终端设备推送该内部转码服务生成的目标视频流。
4.根据权利要求1所述的混流转码处理方法,其特征在于,每个内部转码服务按照其对应的固定码率进行编码以输出对应的目标视频流,包括如下步骤:
每个内部转码服务判断所述待处理视频流的码率是否为其自身对应的固定码率;
当所述判断成立时,以其自身对应的固定码率将所述中间视频流直接编码为目标视频流后输出;
当所述判断不成立时,根据其自身对应的固定码率将所述中间视频流进行图像缩放后编码为目标视频流后输出。
5.根据权利要求1至4中任意一项所述的混流转码处理方法,其特征在于,本方法还包括如下步骤:
监听当前混流转码服务所占用的计算机运行资源的使用量超过预设阈值的告警事件;
响应所述告警事件,确定所述多个内部转码服务中对应的固定码率中相对较低的至少一个目标码率;
调用另一计算机设备中的与所述目标码率相对应的独立转码服务,向其传输由相应的内部转码服务编码获得的以最高码率输出的目标视频流;
由各个所述的独立转码服务根据其相应的目标码率对所述目标视频流进行解码、缩放以及编码,获得与其目标码率相对应的目标视频流以推送至匹配该目标码率的用户终端设备。
6.根据权利要求5所述的混流转码处理方法,其特征在于,调用另一计算机设备中的与所述目标码率相对应的独立转码服务,包括如下步骤:
查询服务集群中的计算机设备的运行资源闲置率;
在运行资源闲置率最高的计算机设备中创建适用以所述目标码率进行转码的独立转码服务;
向所述独立转码服务传输以最高码率输出的目标视频流以供转码。
7.一种混流转码处理装置,其特征在于,包括:
视频流接收模块,被配置为由当前混流转码服务接收待处理视频流;
解码混流模块,被配置为由当前混流转码服务将所述待处理视频流进行解码混流,获得中间视频流;
分发转码模块,被配置为由当前混流转码服务将所述中间视频流分发到多个内部转码服务进行编码,每个内部转码服务按照其对应的固定码率进行编码以输出对应的目标视频流;
视频流推送模块,被配置为由各内部转码服务将其转码所得的所述目标视频流推送至匹配相应固定码率的用户终端设备。
8.一种计算机设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至6中任意一项所述的方法的步骤。
9.一种计算机可读存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至6中任意一项所述的方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111266099.6A CN114007109B (zh) | 2021-10-28 | 2021-10-28 | 混流转码处理方法及其装置、设备、介质、产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111266099.6A CN114007109B (zh) | 2021-10-28 | 2021-10-28 | 混流转码处理方法及其装置、设备、介质、产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114007109A CN114007109A (zh) | 2022-02-01 |
CN114007109B true CN114007109B (zh) | 2023-05-12 |
Family
ID=79924832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111266099.6A Active CN114007109B (zh) | 2021-10-28 | 2021-10-28 | 混流转码处理方法及其装置、设备、介质、产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114007109B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107332830A (zh) * | 2017-06-19 | 2017-11-07 | 腾讯科技(深圳)有限公司 | 视频转码、视频播放方法及装置、计算机设备、存储介质 |
CN108200358A (zh) * | 2018-03-20 | 2018-06-22 | 网宿科技股份有限公司 | 一种音视频导播方法、***及控制服务器 |
CN110233844A (zh) * | 2019-06-13 | 2019-09-13 | 杭州雅顾科技有限公司 | 一种多媒体直播方法、装置、设备及介质 |
CN111107387A (zh) * | 2019-12-30 | 2020-05-05 | 广州酷狗计算机科技有限公司 | 视频转码方法、装置及计算机存储介质 |
CN113423018A (zh) * | 2021-08-24 | 2021-09-21 | 腾讯科技(深圳)有限公司 | 一种游戏数据处理方法、装置及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030028386A1 (en) * | 2001-04-02 | 2003-02-06 | Zinser Richard L. | Compressed domain universal transcoder |
US10298969B2 (en) * | 2016-11-10 | 2019-05-21 | University Of Louisiana At Lafayette | Architecture and method for high performance on demand video transcoding |
-
2021
- 2021-10-28 CN CN202111266099.6A patent/CN114007109B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107332830A (zh) * | 2017-06-19 | 2017-11-07 | 腾讯科技(深圳)有限公司 | 视频转码、视频播放方法及装置、计算机设备、存储介质 |
CN108200358A (zh) * | 2018-03-20 | 2018-06-22 | 网宿科技股份有限公司 | 一种音视频导播方法、***及控制服务器 |
CN110233844A (zh) * | 2019-06-13 | 2019-09-13 | 杭州雅顾科技有限公司 | 一种多媒体直播方法、装置、设备及介质 |
CN111107387A (zh) * | 2019-12-30 | 2020-05-05 | 广州酷狗计算机科技有限公司 | 视频转码方法、装置及计算机存储介质 |
CN113423018A (zh) * | 2021-08-24 | 2021-09-21 | 腾讯科技(深圳)有限公司 | 一种游戏数据处理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114007109A (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9537667B2 (en) | Duplicating digital streams for digital conferencing using switching technologies | |
WO2022095795A1 (zh) | 通信方法、装置、计算机可读介质及电子设备 | |
CN105579998B (zh) | 实时流量传送***和方法 | |
US8832751B2 (en) | Enhanced video streaming to mobile clients | |
CN101895718B (zh) | 视频会议***多画面广播方法及其装置和*** | |
CN101658000A (zh) | 在通信***中发送数据的方法 | |
CN101088294A (zh) | 多媒体流的处理方法 | |
CN104067593A (zh) | 用于增强的***设备支持的分组流传输服务能力交换 | |
WO2013188150A1 (en) | Technique for adapting device tasks based on the available device resources | |
CN103442391A (zh) | 一种数据传输的方法及用户终端、*** | |
WO2023035894A1 (zh) | 一种数据处理方法、设备、可读存储介质和程序产品 | |
US9270937B2 (en) | Real time stream provisioning infrastructure | |
CN105187360A (zh) | 文档的会议共享方法及装置 | |
US20230231787A1 (en) | Communication method and an apparatus | |
CN113992949B (zh) | 混流服务切换方法及其装置、设备、介质、产品 | |
CN110784731B (zh) | 一种数据流转码方法、装置、设备及介质 | |
CN105338549A (zh) | 确定多媒体数据发送方式的方法和设备 | |
US20030153265A1 (en) | Video and graphics distribution system for mobile users | |
GB2494411A (en) | Selecting a hardware processing module or a software processing module for processing a packet based call at a mobile device | |
CN114007109B (zh) | 混流转码处理方法及其装置、设备、介质、产品 | |
US11431779B2 (en) | Network controlled uplink media transmission for a collaborative media production in network capacity constrained scenarios | |
CN101815073A (zh) | 一种嵌入式蓝牙-以太网服务器 | |
US20150149638A1 (en) | Resource Allocation | |
CN104429089A (zh) | 用于确定复合视频服务流的方法和设备 | |
CN114978935B (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 |