CN111510743B - 转码资源的调度方法、装置、系统、设备和存储介质 - Google Patents
转码资源的调度方法、装置、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN111510743B CN111510743B CN202010318660.XA CN202010318660A CN111510743B CN 111510743 B CN111510743 B CN 111510743B CN 202010318660 A CN202010318660 A CN 202010318660A CN 111510743 B CN111510743 B CN 111510743B
- Authority
- CN
- China
- Prior art keywords
- hardware
- software
- transcoding
- task
- decoding
- 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
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/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 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
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 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/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- 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/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2405—Monitoring of the internal components or processes of the server, e.g. server load
Abstract
本发明实施例公开了一种转码资源的调度方法、装置、系统、设备和存储介质,该方法包括:接收源设备的转码请求;响应于转码请求,确定解码任务与编码任务,解码任务用于将原始视频数据解码为中间视频数据、编码任务用于将中间视频数据编码为目标视频数据;根据硬件编码器和/或软件转码器的资源负载状态,分配硬件编码器和/或软件转码器执行编码任务;根据硬件解码器和/或软件转码器的资源负载状态,分配硬件解码器或软件转码器执行解码任务。软件的编解码器件可以根据实际需求生成编码器、解码器进行转码,灵活性相对较高,配合硬件的编解码器件进行转码,能够充分地利用硬件、软件的资源,提高能够承载的实时视频转码能力。
Description
技术领域
本发明实施例涉及视频转码的技术,尤其涉及一种转码资源的调度方法、装置、系统、设备和存储介质。
背景技术
在直播、视频会议等网络实时传输视频数据的场景中,由于原始的视频数据进行转码的计算复杂度高,而且,每个用户的网络环境差别较大,不同的网络环境能支持视频数据传输的最大码率是不一样的,因此,为保证视频数据播放满足在大部分网络环境流畅无卡顿,同时有较优的视频质量,通常需要实时将原始的视频数据转码为多种不同画质的视频数据,根据用户的网络环境选择适配码率的视频数据,并传输给用户。
为了平衡转码的负载及服务用户的及时性,实时的转码服务通常会根据实际情况发生变化,例如,对于观看用户较少的情况,通常转码数量较少(如一路)的、低画质的视频数据,在观看用户较多的情况下,再新增转码多路高画质或超高画质的视频数据。
目前,每台计算设备为了提供实时超高画质视频转码服务,需要采用专用的硬件转码器件,例如,Tesla P4、P6、P40、P100,等等。但是,这些硬件转码器件中的解码器件与编码器件独立工作,使得专用硬件转码器件的解码器件与编码器件负载时常处于不均衡的状态,例如,若需要将多路(超)高画质的视频数据分别转码为低画质的视频数据,则会出现解码器负载较高,编码器的负载较低的问题;若将多路(超)高画质的视频数据分别转码为多路不同画质的视频数据(如一路超低画质的视频数据,一路低画质的视频数据、一路中画质的视频数据,一路高画质的视频数据)时,一次解码输出的画面可进行多次不同画质的编码,使得解码器件负载较低、编码器负载较高。
硬件转码器件中的编码器、解码器负载不均衡,存在编码器无法提供编码服务但解码器可提供解码服务的情况,或者,存在解码器无法提供解码服务但编码器可提供编码服务的情况,导致视频数据转发其他计算设备进行转码的情况,使得转码资源使用率较低,存在浪费。
发明内容
本发明实施例提供一种转码资源的调度方法、装置、系统、设备和存储介质,以解决网络实时传输视频数据时、对视频数据进行转码的资源使用率较低,存在浪费的问题。
第一方面,本发明实施例提供了一种转码资源的调度方法,包括:
接收源设备的转码请求;
响应于所述转码请求,确定解码任务与编码任务,所述解码任务用于将原始视频数据解码为中间视频数据、所述编码任务用于将所述中间视频数据编码为目标视频数据;
根据硬件编码器和/或软件转码器的资源负载状态,分配所述硬件编码器和/或所述软件转码器执行所述编码任务;
根据所述硬件解码器和/或所述软件转码器的资源负载状态,分配所述硬件解码器或所述软件转码器执行所述解码任务。
第二方面,本发明实施例还提供了一种转码资源的调度装置,包括:
转码请求接收模块,用于接收源设备的转码请求;
编解码任务确定模块,用于响应于所述转码请求,确定解码任务与编码任务,所述解码任务用于将原始视频数据解码为中间视频数据、所述编码任务用于将所述中间视频数据编码为目标视频数据;
编码任务分配模块,用于根据硬件编码器和/或软件转码器的资源负载状态,分配所述硬件编码器和/或所述软件转码器执行所述编码任务;
解码任务分配模块,用于根据所述硬件解码器和/或所述软件转码器的资源负载状态,分配所述硬件解码器或所述软件转码器执行所述解码任务。
第三方面,本发明实施例还提供了一种转码系统,包括转码控制中心、多个转码服务器,所述转码服务器配置有硬件解码器、硬件编码器和软件转码器中的至少一者;
所述转码控制中心包括:
转码请求接收模块,用于接收源设备的转码请求;
编解码任务确定模块,用于响应于所述转码请求,确定解码任务与编码任务;
编码任务分配模块,用于根据硬件编码器和/或软件转码器的资源负载状态,分配所述硬件编码器和/或所述软件转码器执行所述编码任务;
解码任务分配模块,用于根据所述硬件解码器和/或所述软件转码器的资源负载状态,分配所述硬件解码器或所述软件转码器执行所述解码任务;
所述转码服务器包括:
原始视频数据接收模块,用于接收源设备发送的原始视频数据;
解码模块,用于调用所述硬件解码器或所述软件转码器执行所述解码任务,以将所述原始视频数据解码为中间视频数据;
编码模块,用于调用所述硬件编码器和/或所述软件转码器执行所述编码任务,以将所述中间视频数据编码为目标视频数据。
第四方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的转码资源的调度方法。
第五方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的转码资源的调度方法。
在本实施例中,接收源设备的转码请求,响应于转码请求,确定解码任务与编码任务,解码任务用于将原始视频数据解码为中间视频数据、编码任务用于将中间视频数据编码为目标视频数据,根据硬件编码器和/或软件转码器的资源负载状态,分配硬件编码器和/或软件转码器执行编码任务,根据硬件解码器和/或软件转码器的资源负载状态,分配硬件解码器或软件转码器执行解码任务,通过同时提供硬件的编解码器件、软件的编解码器件,一方面,硬件的编解码器件可以实现高画质、超高画质等视频数据的编码,从而保证转码的质量,另一方面,软件的编解码器件可以根据实际需求生成编码器、解码器进行转码,灵活性相对较高,配合硬件的编解码器件进行转码,能够充分地利用硬件、软件的资源,从而提高实时能够承载的视频转码需求。
附图说明
图1为一种转码流程的示意图;
图2为一种转码服务器的结构示意图;
图3为本发明实施例一提供的一种转码资源的调度方法的流程图;
图4为本发明实施例二提供的一种转码资源的调度装置的结构示意图;
图5为本发明实施例三提供的一种转码系统的结构示意图;
图6为本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
如图1为一种转码流程的示意图。
如图1所示,在转码的流程中,涉及的设备包括源设备101、转码控制中心102、多个转码服务器103。
其中,源设备101为实时提供待转码的视源数据的设备,其中,该视频数据可以称之为原始视频数据,通常为编码之后的视频数据,编码的格式可以根据实际情况设置,例如,H.264、H.265,等等。
在直播的场景中,该源设备101可以为主播用户所登录的设备,如个人电脑、移动终端(如手机、平板电脑等)等,也可以为CDN(Content Delivery Network,内容分发网络)节点,该CDN节点接收主播用户所登录的设备所上传的原始视频数据,并转发至其他CDN节点或转码系统等待转码,本实施例对此不加以限制。
转码控制中心102管理直播转码服务器及为源设备提供转码服务器分配服务,具体而言,转码控制中心102可以根据源设备的转码需求调度转码服务器中的转码资源,即根据转码服务器中转码资源的资源负载状态,选择与源设备的转码需求适配的转码服务器对原始视频数据进行转码。
转码服务器103通常以计算机集群的形式部署,负责对视频数据进行转码,转码包括解码与编码,解码之后的视频数据的体积较大,在以太网传输较为困难,因此,针对同一个视频数据,通常是在同一个转码服务器103中进行转码,并不会使用两个或两个以上的转码服务器103进行转码。
如图2所示,转码服务器一般包括硬件解码器211、硬件编码器212、软件转码器220、第一队列231、第二队列232、第三队列233、第四队列234。
其中,硬件解码器211为物理实体性质的解码器Decoder,用于对视频数据进行解码,解码后格式根据视频转码需求有所不同,包括但不限于YUV,等等。
硬件编码器212为物理实体性质的编码器Encoder,用于对视频数据进行编码,编码的格式根据其规格有所不同,包括但不限于MPEG-2、MPEG-4、H.264、AVS、VC-1,等等。
一般情况下,硬件解码器与硬件编码器的比例为1:2或1:3。
软件转码器220为虚拟的转码器,用于对视频数据进行转码,在实际应用中,软件转码器220可以根据任务的需求,使用CPU(Central Processing Unit,中央处理器)、内存等资源生成软件解码器221、软件编码器222的实例。
软件解码器221为编程虚拟性质的解码器Decoder,用于对视频数据进行解码,解码的格式根据其规格有所不同,包括但不限于YUV,等等。
软件编码器222为编程虚拟性质的编码器Encoder,用于对视频数据进行编码,编码的格式根据其规格有所不同,包括但不限于MPEG-2、MPEG-4、H.264、AVS、VC-1,等等。
第一队列231用于存储待转码的视频数据,如源设备上传的原始视频数据,硬件解码器、软件解码器从该第一队列中读取原始视频数据。
第二队列232用于存储硬件解码器解码之后的视频数据,为便于区分,该视频数据可以称之为中间视频数据,硬件编码器、软件编码器从该第二队列中读取中间视频数据。
第三队列233用于存储软件解码器解码之后的视频数据,为便于区分,该视频数据可以称之为中间视频数据,硬件编码器、软件编码器从该第三队列中读取中间视频数据。
第四队列234用于存储硬件编码器、软件编码器编码之后的视频数据,为便于区分,该视频数据可以称之为目标视频数据。
在本实施例中,硬件解码器对应的第二队列、软件转码器(软件解码器)对应的第三队列作为存储中间视频数据(已解码、未编码的视频数据),使得硬件编码器、软件转码器(软件编码器)均可从第二队列、第三队列读取中间视频数据进行编码,方便将编码任务拆分至硬件编码器、软件转码器(软件编码器)执行,能够灵活调度编码任务。
在某些情况中,转码服务器可能仅配置软件转码器,而未配置包括硬件解码器、硬件编码器,本实施例对此不加以限制。
此外,转码的视频数据涉及的视频质量如下:
超高画质:纵向分辨率大于1080,采用H.264或H.265标准编码、且码率高于3Mbps。
高画质:纵向分辨率大于720,采用H.264或H.265标准编码、且码率高于1.5Mbps。
中画质:纵向分辨率大于540,采用H.264或H.265标准编码、且码率高于1Mbps。
低画质:纵向分辨率大于360,采用H.264或H.265标准编码、且码率在500Kbps~800Kbps。
超低画质:纵向分辨率大于240,采用H.264或H.265标准编码、且码率在200Kbps~500Kbps。
实施例一
图3为本发明实施例一提供的一种转码资源的调度方法的流程图,本实施例可适用于在提供硬件转码资源、软件转码资源的情况下根据资源负载情况实时调度,该方法可以由转码资源的调度装置来执行,该转码资源的调度装置可以由软件和/或硬件实现,可配置在计算机设备中,例如服务器、工作站、个人电脑,等等。
该方法具体包括如下步骤:
S301、接收源设备的转码请求。
在本实施例中,源设备实时产生一路原始视频数据,并向计算机设备发送转码请求,请求将该原始视频数据转码为多路目标视频数据。
在一种情况中,源设备首次产生原始视频数据,即原始视频数据为新的视频数据,此时,可生成新的转码请求。
在另一种情况中,源设备并非首次产生原始视频数据,即原始视频数据为旧的视频数据,但是,转码的需求发生变化,此时,可生成新的转码请求。
例如,在直播中,观看用户的数量发生变化,达到预设的条件,如低于某个阈值、高于某个阈值等,转码的需求发生变化,此时,可生成新的转码请求,请求将原始视频数据转码生成其他画质的目标视频数据,在转码请求中,可保留房间ID、原始视频数据的ID等数据,标识原始视频数据为旧的视频数据。
S302、响应于转码请求,确定解码任务与编码任务。
在本实施例中,响应于源设备的转码请求,将转码的任务划分为解码任务、编码任务。
其中,解码任务用于将原始视频数据解码为中间视频数据,编码任务用于将中间视频数据编码为目标视频数据。
对于计算机设备而言,实时与转码服务器进行通信,在转码服务器的资源负载状态发生变化时,采集最新的资源负载状态,源设备在上传原始视频数据进行转码之前,将原始视频数据的相关信息(如直播中的房间ID、主播ID等)封装在转码请求中发送至计算机设备。
若原始视频数据为新的视频数据,在可以在任一转码服务器中、根据资源负载状态查找与该解码任务及该编码任务适配的转码服务器。
若原始视频数据为原有的视频数据(如同一直播间(以房间ID表示)、同一主播用户(以主播ID表示)的视频数据),在可以验证在先对该原始视频数据进行转码的转码服务器中的资源负载状态是否适配该解码任务与该编码任务,若适配,则调整硬件编码器、硬件解码器和软件转码器的资源负载状态,若不适配,则在其他转码服务器中适配该解码任务与该编码任务的转码服务器,并通知在先的转码服务器释放资源。
若所有转码服务器均不适配该解码任务与该编码任务,则可以提示技术人员新增转码服务器,以适配该解码任务与该编码任务。
S303、根据硬件编码器和/或软件转码器的资源负载状态,分配硬件解码器和/或软件转码器执行编码任务。
在具体实现中,编码任务根据需求不同,可以由硬件解码器单独执行,也可以由软件转码器(软件编码器)单独执行,还可以由硬件解码器与软件转码器(软件编码器)同时执行,因此,可以检测转码服务器中硬件编码器和/或软件转码器的资源负载状态,分配满足该编码任务的需求的硬件编码器和/或软件转码器执行该编码任务。
在本发明的一个实施例中,S303可以包括如下步骤:
S3031、将编码任务拆分为已规定使用硬件编码器的第一编码子任务、已规定使用软件转码器的第二编码子任务、允许使用硬件编码器或软件转码器的第三编码子任务。
在本实施例中,将编码任务划分为第一编码子任务、第二编码子任务、第三编码子任务。
其中,第一编码子任务规定使用硬件编码器进行编码,禁止使用软件转码器(软件编码器)进行编码。
第二编码子任务规定使用软件转码器(软件编码器)进行编码,禁止使用硬件编码器进行编码。
第三编码子任务并未限定编码的形式,既允许使用硬件编码器进行编码,也允许使用软件转码器(软件编码器)进行编码。
例如,对于质量码率比需求高的直播(通常为观众用户数量大的秀场直播)规定使用软件转码器(软件编码器)进行编码,超高分辨率(通常为游戏直播)及质量码率比需求低的直播规定使用硬件编码器进行编码,其他类型的直播既允许使用硬件编码器进行编码,也允许使用软件转码器(软件编码器)进行编码。
其中,质量码率比为视频质量与编码码率的比值,质量码率比越高则传输相同质量的视频数据所占用的网络带宽越少。
S3032、将第三编码子任务拆分为第四编码子任务、第五编码子任务。
对于第三编码子任务,可以根据实际情况进一步拆分为第四编码子任务、第五编码子任务,其中,第四编码子任务适于硬件编码器进行编码,第五编码子任务适于软件转码器(软件编码器)进行编码。
在具体实现中,第三编码子任务规定编码多路不同视频质量(如分辨率)的目标视频数,此时,可按照视频质量对第三编码子任务规定编码的目标视频数据进行降序排序。
确定切分位置。
一方面,生成第四编码子任务,第四编码子任务用于对排序位于切分位置之前的目标视频数据进行编码,即使用硬件编码器编码视频质量要求较高的目标视频。
另一方面,生成第五编码子任务,第五编码子任务用于对排序位于切分位置之后的目标视频数据进行编码,即使用软件转码器(软件编码器)编码视频质量要求较低的目标视频。
在初始时,可以将指定的位置设置为初始的切分位置,如位于中间的位置,如果初始的切分位置满足编码的需求,则结束将第三编码子任务拆分为第四编码子任务、第五编码子任务。
在S3033中,若硬件编码器的资源负载状态未满足执行第一编码子任务与第四编码子任务,则向前移动切分位置,如移动一格位置,直至满足编码的需求。
或者,
在S3034中,若软件转码器(软件编码器)的资源负载状态未满足执行第二编码子任务与第五编码子任务,则向后移动切分位置,如移动一格位置,直至满足编码的需求。
S3033、若硬件编码器的资源负载状态满足执行第一编码子任务与第四编码子任务,则分配硬件编码器执行第一编码子任务与第四编码子任务。
在本实施例中,对于某个转码服务器,接收到源设备的转码请求的当前时刻,可能还会存在其他编码操作占用硬件编码器的资源,其中,该资源可以以硬件编码器的数量或承载能力进行表示。
此时,可以检测硬件编码器的资源负载状态,如果此时硬件编码器的资源负载状态还有空闲,可以满足第一编码子任务与第四编码子任务的需求,则分配该转码服务器中的硬件编码器执行第一编码子任务与第四编码子任务。
在具体实现中,可以查询硬件编码器已被(其他编码操作)占用的资源,作为第一硬件编码资源HEN。
通过预设的、目标视频数据与资源之间的映射关系,计算硬件编码器执行第一编码子任务时被占用的资源,作为第二硬件编码资源HEEset。
计算硬件编码器执行第四编码子任务时被占用的资源,作为第三硬件编码资源HELset。
查询硬件编码器所有的资源,作为第四硬件编码资源HES。
若第一硬件编码资源HEN、第二硬件编码资源HEEset与第三硬件编码资源HELset之间的和值小于或等于第四硬件编码资源HES,则表示硬件编码器剩余的资源满足第一编码子任务与第四编码子任务的需求,可以分配硬件编码器执行第一编码子任务与第四编码子任务,用公式表示如下:
HEN+HEEset+HELset≤HES
S3034、若软件转码器的资源负载状态满足执行第二编码子任务与第五编码子任务,则分配软件转码器执行第二编码子任务与第五编码子任务。
在本实施例中,对于某个转码服务器,接收到源设备的转码请求的当前时刻,可能还会存在其他编码操作、其他解码操作占用软件转码器的资源,其中,该资源可以以CPU占用率等参数进行表示。
此时,可以检测软件转码器的资源负载状态,如果此时软件转码器的资源负载状态还有空闲,可以满足第二编码子任务与第五编码子任务的需求,则分配软件转码器执行第二编码子任务与第五编码子任务,此时,软件转码器生成软件编码器的实例,使用该软件编码器执行第二编码子任务与第五编码子任务。
在具体实现中,可以查询软件转码器已被(其他编码操作、其他解码操作)占用的资源,作为第一软件转码资源SEDN。
通过预设的、目标视频数据与资源之间的映射关系,计算软件转码器执行第二编码子任务时被占用的资源,作为第二软件转码资源SEEset。
计算软件转码器(软件编码器)执行第五编码子任务时被占用的资源,作为第三软件转码资源SELset。
查询软件转码器所有的资源,作为第四软件转码资源SEDS。
若第一软件转码资源SEDN、第二软件转码资源SEEset与第三软件转码资源SELset之间的和值小于或等于第四软件转码资源SEDS,则表示软件转码器剩余的资源满足第二编码子任务与第五编码子任务的需求,可以分配软件转码器执行第二编码子任务与第五编码子任务,用公式表示如下:
SEDN+SEEset+SELset≤SEDS
需要说明的是,若转码服务器中的硬件编码器、软件转码器无法同时满足执行第一编码子任务、第二编码子任务、第四编码子任务与第五编码子任务,则表示该转码服务器无法执行编码任务,则转向下一个转码服务器继续判断是否可执行编码任务。
S304、根据硬件解码器和软件转码器的资源负载状态,分配硬件解码器或软件转码器执行解码任务。
在具体实现中,解码任务根据需求不同,可以由硬件解码器单独执行,也可以由软件转码器(软件解码器)单独执行,因此,可以检测转码服务器中硬件编码器和/或软件转码器的资源负载状态,分配满足该解码任务的需求的硬件解码器或软件转码器(软件解码器)执行该解码任务。
在本发明的一个实施例中,S304可以包括如下步骤:
S3041、确定解码任务已规定使用硬件解码器。
视频数据按照视频质量升序排序为V1,V2,…,Vn(n为正整数),其中,Vm,Vm+1,…,Vn(m为正整数)为视频质量属于高画质、超高画质的视频数据,规定使用硬件解码器进行解码、以及、使用硬件编码器进行编码。
假设当前原始视频数据的视频质量为Vk,在排序上,若Vk≥Vm,即k≥m,则表示解码任务规定使用硬件解码器进行解码,禁止使用软件转码器(软件解码器)进行解码。
S3042、若硬件解码器的资源负载状态满足执行解码任务,则分配硬件解码器执行解码任务。
对于某个转码服务器,接收到源设备的转码请求的当前时刻,可能还会存在其他解码操作占用硬件解码器的资源,其中,该资源可以以硬件解码器的数量或承载能力进行表示。
此时,可以检测硬件解码器的资源负载状态,如果此时硬件编码器的资源负载状态还有空闲,可以满足解码任务的需求,则分配该转码服务器中的硬件解码器执行解码任务。
在具体实现中,可以查询硬件解码器中已被(其他解码操作)占用的资源,作为第一硬件解码资源HDN。
通过预设的、原始视频数据与资源之间的映射关系,计算硬件解码器执行解码任务时被占用的资源,作为第二硬件解码资源HDk。
查询硬件解码器所有的资源,作为第三硬件解码资源HDS。
若第一硬件解码资源HDN与第二硬件解码资源HDk之间的和值小于第三硬件解码资源HDS,则表示硬件解码器剩余的资源满足解码任务的需求,可以分配硬件解码器执行解码任务。
在本发明的一个实施例中,S304可以包括如下步骤:
S3043、确定解码任务允许使用硬件解码器或软件转码器。
视频数据按照视频质量升序排序为V1,V2,…,Vn(n为正整数),其中,Vm,Vm+1,…,Vn(m为正整数)为视频质量属于高画质、超高画质的视频数据,规定使用硬件解码器进行解码、以及、使用硬件编码器进行编码。
假设当前原始视频数据的视频质量为Vk,在排序上,若Vk<Vm,即k<m,则表示解码任务既可以使用硬件解码器进行解码,也可以使用软件转码器(软件解码器)进行解码。
S3044、若硬件解码器的资源负载状态在执行解码任务时为资源充裕状态,则分配硬件解码器执行解码任务。
由于硬件解码器进行解码效率较高,但高画质、超高画质的视频数据规定使用硬件解码器进行解码,因此,在对硬件解码器预留资源、对后续可能出现的高画质、超高画质的视频数据进行解码的情况下,即硬件解码器的资源负载状态在执行解码任务时为资源充裕状态,可以分配硬件解码器执行解码任务。
在具体实现中,查询硬件解码器中已被占用的资源,作为第一硬件解码资源HDN;
计算硬件解码器执行解码任务时被占用的资源,作为第二硬件解码资源HDk;
若第一硬件解码资源HDN与第二硬件解码资源HDk之间的和值小于预设的资源阈值DTk,则表示硬件解码器的资源负载状态在执行解码任务时为资源充裕状态,可以分配硬件解码器执行解码任务,其中,资源阈值DTk为硬件解码器所有的资源中指定的比例,如20%、30%等,用公式表示如下:
HDN+HDk<DTk
S3045、若软件转码器分配编码任务之后的资源负载状态满足执行解码任务,则分配软件转码器执行解码任务。
在本实施例中,对于某个转码服务器,接收到源设备的转码请求的当前时刻,可能还会存在其他编码操作、其他解码操作、当前的编码操作占用软件转码器的资源,其中,该资源可以以CPU占用率、内存占用率等参数进行表示。
此时,可以检测软件转码器的资源负载状态,如果此时软件转码器的资源负载状态还有空闲,可以满足解码任务的需求,则分配软件转码器执行解码任务,此时,软件转码器生成软件解码器的实例,使用该软件解码器执行解码任务。
在具体实现中,可以确定第一软件转码资源SEDN,第一软件转码资源SEDN为软件转码器已被((其他编码操作、其他解码操作))占用的资源。
确定第二软件转码资源SEEset,第二软件转码资源SEEset为分配软件转码器执行第二编码子任务时被占用的资源,第二编码子任务为编码任务中规定使用软件转码器的子任务。
确定第三软件转码资源SELset,第三软件转码资源SELset为分配软件转码器执行第五编码子任务时被占用的资源,第五编码子任务为编码任务中允许允许使用硬件编码器或软件转码器、且分配给软件转码器的子任务。
确定第四软件转码资源SEDS,第四软件转码资源SEDS为软件转码器所有的资源。
通过预设的、目标视频数据与资源之间的映射关系,计算软件转码器执行解码任务时被占用的资源,作为第五软件转码资源SDk。
若第一软件转码资源SEDN、第二软件转码资源SEEset、第三软件转码资源SELset与第五软件转码资源SDk之间的和值小于或等于第四软件转码资源SEDS,则表示软件转码器剩余的资源满足解码任务的需求,可以分配软件转码器执行解码任务,用公式表示如下:
SEDN+SDk+SEEset+SELset<SEDS
S3046、若硬件解码器的资源负载状态满足执行解码任务,则分配硬件解码器执行解码任务。
对于某个转码服务器,接收到源设备的转码请求的当前时刻,可能还会存在其他解码操作占用硬件解码器的资源,其中,该资源可以以硬件解码器的数量进行表示。
此时,可以检测硬件解码器的资源负载状态,如果此时硬件编码器的资源负载状态还有空闲,可以满足解码任务的需求,则分配该转码服务器中的硬件解码器执行解码任务。
在具体实现中,可以查询硬件解码器中已被(其他解码操作)占用的资源,作为第一硬件解码资源HDN。
通过预设的、原始视频数据与资源之间的映射关系,计算硬件解码器执行解码任务时被占用的资源,作为第二硬件解码资源HDk。
查询硬件解码器所有的资源,作为第三硬件解码资源HDS。
若第一硬件解码资源HDN与第二硬件解码资源HDk之间的和值小于第三硬件解码资源HDS,则表示硬件解码器剩余的资源满足解码任务的需求,可以分配硬件解码器执行解码任务,用公式表示如下:
HDN+HDk<DTk
需要说明的是,S3044、S3045、S3046可以独立实施,也可以组合实施,例如,先判断硬件解码器的资源负载状态在执行解码任务时是否为资源充裕状态,若是,则分配硬件解码器执行解码任务,若否,则判断软件转码器分配编码任务之后的资源负载状态是否满足执行解码任务,若是,则分配软件转码器执行解码任务,若否,则判断硬件解码器的资源负载状态是否满足执行解码任务,若是,则分配硬件解码器执行解码任务,等等,本实施例对此不加以限制。
此外,若转码服务器中的硬件解码器、软件转码器无法同时满足执行解码任务,则表示该转码服务器无法执行解码任务,则转向下一个转码服务器继续判断是否可执行解码任务。
在确定解码任务与编码任务之后,通知相应的转码服务器预留硬件编码器、硬件解码器和/或软件转码器的资源,并且,通知源设备将原始视频数据发送至该转码服务器,该转码服务器使用相应的硬件解码器或软件转码器执行解码任务,将原始视频数据解码为中间视频数据,使用相应的硬件编码器和/或软件转码器执行编码任务,将中间视频数据编码为一路或多路目标视频数据。
对于直播的场景,多是一路原始视频数据转码为多路目标视频数据,编码任务占用的资源比解码任务占用的资源多,在本实施例中,先对编码任务分配资源,再对解码任务分配解码资源,可以根据转码任务的优先程度合理地调配资源,尤其是在分配软件转码器的资源时,适配直播的需求。
在直播中,转码服务器可以将该目标视频数据发送至CDN节点,该CDN节点可以将该目标视频数据发送至CDN节点或观众用户登录的设备。
在本实施例中,接收源设备的转码请求,响应于转码请求,确定解码任务与编码任务,解码任务用于将原始视频数据解码为中间视频数据、编码任务用于将中间视频数据编码为目标视频数据,根据硬件编码器和/或软件转码器的资源负载状态,分配硬件编码器和/或软件转码器执行编码任务,根据硬件解码器和/或软件转码器的资源负载状态,分配硬件解码器或软件转码器执行解码任务,通过同时提供硬件的编解码器件、软件的编解码器件,一方面,硬件的编解码器件可以实现高画质、超高画质等视频数据的编码,从而保证转码的质量,另一方面,软件的编解码器件可以根据实际需求生成编码器、解码器进行转码,灵活性相对较高,配合硬件的编解码器件进行转码,能够充分地利用硬件、软件的资源,从而提高实时能够承载的视频转码需求。
实施例二
图4为本发明实施例二提供的一种转码资源的调度装置的结构示意图,该装置具体可以包括如下模块:
转码请求接收模块401,用于接收源设备的转码请求;
编解码任务确定模块402,用于响应于所述转码请求,确定解码任务与编码任务,所述解码任务用于将原始视频数据解码为中间视频数据、所述编码任务用于将所述中间视频数据编码为目标视频数据;
编码任务分配模块403,用于根据硬件编码器和/或软件转码器的资源负载状态,分配所述硬件编码器和/或所述软件转码器执行所述编码任务;
解码任务分配模块404,用于根据所述硬件解码器和/或所述软件转码器的资源负载状态,分配所述硬件解码器或所述软件转码器执行所述解码任务。
在本发明的一个实施例中,所述编码任务分配模块403包括:
编码任务拆分子模块,用于将所述编码任务拆分为已规定使用硬件编码器的第一编码子任务、已规定使用软件转码器的第二编码子任务、允许使用硬件编码器或软件转码器的第三编码子任务;
编码子任务拆分子模块,用于将所述第三编码子任务拆分为第四编码子任务、第五编码子任务;
硬件编码分配子模块,用于若所述硬件编码器的资源负载状态满足执行所述第一编码子任务与所述第四编码子任务,则分配所述硬件编码器执行所述第一编码子任务与所述第四编码子任务;
软件编码分配子模块,用于若所述软件转码器的资源负载状态满足执行所述第二编码子任务与所述第五编码子任务,则分配所述软件转码器执行所述第二编码子任务与所述第五编码子任务。
在本发明的一个实施例中,所述编码子任务拆分子模块包括:
降序排序单元,用于按照视频质量对所述第三编码子任务规定编码的目标视频数据进行降序排序;
切分位置确定单元,用于确定切分位置;
第一生成子单元,用于生成第四编码子任务,所述第四编码子任务用于对排序位于所述切分位置之前的目标视频数据进行编码;
第二生成子单元,用于生成第五编码子任务,所述第五编码子任务用于对排序位于所述切分位置之后的目标视频数据进行编码。
在本发明的一个实施例中,所述切分位置确定单元包括:
位置设置子单元,用于将指定的位置设置为初始的切分位置;
位置前移子单元,用于若所述硬件编码器的资源负载状态未满足执行所述第一编码子任务与所述第四编码子任务,则向前移动切分位置;
或者,
位置后移子单元,用于若所述软件转码器的资源负载状态未满足执行所述第二编码子任务与所述第五编码子任务,则向后移动切分位置。
在本发明的一个实施例中,所述硬件编码分配子模块包括:
第一硬件编码资源查询单元,用于查询所述硬件编码器已被占用的资源,作为第一硬件编码资源;
第二硬件编码资源计算单元,用于计算所述硬件编码器执行所述第一编码子任务时被占用的资源,作为第二硬件编码资源;
第三硬件编码资源计算单元,用于计算所述硬件编码器执行所述第四编码子任务时被占用的资源,作为第三硬件编码资源;
第四硬件编码资源查询单元,用于查询所述硬件编码器所有的资源,作为第四硬件编码资源;
硬件确定分配单元,用于若所述第一硬件编码资源、所述第二硬件编码资源与所述第三硬件编码资源之间的和值小于或等于所述第四硬件编码资源,则分配所述硬件编码器执行所述第一编码子任务与所述第四编码子任务。
在本发明的一个实施例中,所述软件编码分配子模块包括:
第一软件转码资源查询单元,用于查询所述软件转码器已被占用的资源,作为第一软件转码资源;
第二软件转码资源计算单元,用于计算所述软件转码器执行所述第二编码子任务时被占用的资源,作为第二软件转码资源;
第三软件转码资源计算单元,用于计算所述软件转码器执行所述第五编码子任务时被占用的资源,作为第三软件转码资源;
第四软件转码资源查询单元,用于查询所述软件转码器所有的资源,作为第四软件转码资源;
软件确定分配单元,用于若所述第一软件转码资源、所述第二软件转码资源与所述第三软件转码资源之间的和值小于或等于所述第四软件转码资源,则分配所述软件转码器执行所述第二编码子任务与所述第五编码子任务。
在本发明的一个实施例中,所述解码任务分配模块404包括:
第一解码规定确定子模块,用于确定所述解码任务已规定使用硬件解码器;
第一硬件解码分配子模块,用于若所述硬件解码器的资源负载状态满足执行所述解码任务,则分配所述硬件解码器执行所述解码任务。
在本发明的一个实施例中,所述第一硬件解码分配子模块包括:
第一硬件解码资源查询单元,用于查询所述硬件解码器中已被占用的资源,作为第一硬件解码资源;
第二硬件解码资源计算单元,用于计算所述硬件解码器执行所述解码任务时被占用的资源,作为第二硬件解码资源;
阈值分配单元,用于若所述第一硬件解码资源与所述第二硬件解码资源之间的和值小于预设的资源阈值,则分配所述硬件解码器执行所述解码任务,其中,所述资源阈值为所述硬件解码器所有的资源中指定的比例。
在本发明的另一个实施例中,所述解码任务分配模块404包括:
第二解码规定确定子模块,用于确定所述解码任务允许使用硬件解码器或软件转码器;
第二硬件解码分配子模块,用于若所述硬件解码器的资源负载状态在执行所述解码任务时为资源充裕状态,则分配所述硬件解码器执行所述解码任务;
软件解码分配子模块,用于若所述软件转码器分配所述编码任务之后的资源负载状态满足执行所述解码任务,则分配所述软件转码器执行所述解码任务;
硬件解码满足分配子模块,用于若所述硬件解码器的资源负载状态满足执行所述解码任务,则分配所述硬件解码器执行所述解码任务。
在本发明的一个实施例中,所述第二硬件解码分配子模块包括:
第一硬件解码资源查询单元,用于查询所述硬件解码器中已被占用的资源,作为第一硬件解码资源;
第二硬件解码资源计算单元,用于计算所述硬件解码器执行所述解码任务时被占用的资源,作为第二硬件解码资源;
阈值分配单元,用于若所述第一硬件解码资源与所述第二硬件解码资源之间的和值小于预设的资源阈值,则分配所述硬件解码器执行所述解码任务,其中,所述资源阈值为所述硬件解码器所有的资源中指定的比例。
在本发明的一个实施例中,所述软件解码分配子模块包括:
第一软件转码资源确定单元,用于确定第一软件转码资源,所述第一软件转码资源为所述软件转码器已被占用的资源;
第二软件转码资源确定单元,用于确定第二软件转码资源,所述第二软件转码资源为分配所述软件转码器执行第二编码子任务时被占用的资源;
第三软件转码资源确定单元,用于确定第三软件转码资源,所述第三软件转码资源为分配所述软件转码器执行第五编码子任务时被占用的资源;
第四软件转码资源确定单元,用于确定第四软件转码资源,所述第四软件转码资源为所述软件转码器所有的资源;
第五软件转码资源计算单元,用于计算所述软件转码器执行所述解码任务时被占用的资源,作为第五软件转码资源;
软件确定分配单元,用于若所述第一软件转码资源、所述第二软件转码资源、所述第三软件转码资源与所述第五软件转码资源之间的和值小于或等于所述第四软件转码资源,则分配所述软件转码器执行所述解码任务。
在本发明的一个实施例中,所述硬件解码满足分配子模块包括:
第一硬件解码资源查询单元,用于查询所述硬件解码器中已被占用的资源,作为第一硬件解码资源;
第二硬件解码资源计算单元,用于计算所述硬件解码器执行所述解码任务时被占用的资源,作为第二硬件解码资源;
第三硬件解码资源查询单元,用于查询所述硬件解码器所有的资源,作为第三硬件解码资源;
硬件确定分配单元,用于若所述第一硬件解码资源与所述第二硬件解码资源之间的和值小于所述第三硬件解码资源,则分配所述硬件解码器执行所述解码任务。
本发明实施例所提供的转码资源的调度装置可执行本发明任意实施例所提供的转码资源的调度方法,具备执行方法相应的功能模块和有益效果。
实施例三
图5为本发明实施例三提供的一种转码系统的结构示意图,该系统具体可以包括转码控制中心510、多个转码服务器520,所述转码服务器520配置有硬件解码器521、硬件编码器522和软件转码器523中的至少一者;
所述转码控制中心510包括:
转码请求接收模块511,用于接收源设备的转码请求;
编解码任务确定模块521,用于响应于所述转码请求,确定解码任务与编码任务;
编码任务分配模块513,用于根据硬件编码器和/或软件转码器的资源负载状态,分配所述硬件编码器和/或所述软件转码器执行所述编码任务;
解码任务分配模块514,用于根据所述硬件解码器和/或所述软件转码器的资源负载状态,分配所述硬件解码器或所述软件转码器执行所述解码任务;
所述转码服务器520包括:
原始视频数据接收模块524,用于接收源设备发送的原始视频数据;
解码模块525,用于调用所述硬件解码器或所述软件转码器执行所述解码任务,以将所述原始视频数据解码为中间视频数据;
编码模块526,用于调用所述硬件编码器和/或所述软件转码器执行所述编码任务,以将所述中间视频数据编码为目标视频数据。
在本发明的一个实施例中,所述转码服务器还包括第一队列、第二队列、第三队列、第四队列;
所述原始视频数据接收模块524,还用于接收源设备发送的原始视频数据,将所述原始视频数据存储至所述第一队列;
所述解码模块525,还用于从所述第一队列读取所述原始视频数据,调用所述硬件解码器或所述软件转码器执行所述解码任务,以将所述原始视频数据解码为中间视频数据,将所述硬件解码器输出的中间视频数据存储至所述第二队列、将所述软件转码器输出的中间视频数据存储至所述第三队列;
编码模块526,还用于所述第二队列或所述第三队列读取所述中间视频数据,调用所述硬件解码器和/或所述软件转码器执行所述编码任务,以将所述中间视频数据编码为目标视频数据,将所述目标视频数据存储至所述第四队列。
本发明实施例所提供的转码系统装置可执行本发明任意实施例所提供的转码资源的调度方法,具备执行方法相应的功能模块和有益效果。
实施例四
图6为本发明实施例四提供的一种计算机设备的结构示意图。如图6所示,该计算机设备包括处理器600、存储器601、通信模块602、输入装置603和输出装置604;计算机设备中处理器600的数量可以是一个或多个,图6中以一个处理器600为例;计算机设备中的处理器600、存储器601、通信模块602、输入装置603和输出装置604可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器601作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本实施例中的转码资源的调度方法对应的模块(例如,如图4所示的转码资源的调度装置中的转码请求接收模块401、编解码任务确定模块402、编码任务分配模块403和解码任务分配模块404;或者,如图5所示的转码系统中的转码请求接收模块511、编解码任务确定模块521、编码任务分配模块513、解码任务分配模块514、原始视频数据接收模块524、解码模块525和编码模块526)。处理器600通过运行存储在存储器601中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的转码资源的调度方法。
存储器601可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器601可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器601可进一步包括相对于处理器600远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信模块602,用于与显示屏建立连接,并实现与显示屏的数据交互。
输入装置603可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音设备。
输出装置604可以包括扬声器等音频设备。
需要说明的是,输入装置603和输出装置604的具体组成可以根据实际情况设定。
处理器600通过运行存储在存储器601中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的转码资源的调度方法。
本实施例提供的计算机设备,可执行本发明任一实施例提供的转码资源的调度方法,具体相应的功能和有益效果。
实施例五
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现一种转码资源的调度方法,该方法包括:
接收源设备的转码请求;
响应于所述转码请求,确定解码任务与编码任务,所述解码任务用于将原始视频数据解码为中间视频数据、所述编码任务用于将所述中间视频数据编码为目标视频数据;
根据硬件编码器和/或软件转码器的资源负载状态,分配所述硬件编码器和/或所述软件转码器执行所述编码任务;
根据所述硬件解码器和/或所述软件转码器的资源负载状态,分配所述硬件解码器或所述软件转码器执行所述解码任务。
当然,本发明实施例所提供的计算机可读存储介质,其计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的转码资源的调度方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述转码资源的调度装置、转码系统的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (16)
1.一种转码资源的调度方法,其特征在于,包括:
接收源设备的转码请求;
响应于所述转码请求,确定解码任务与编码任务,所述解码任务用于将原始视频数据解码为中间视频数据、所述编码任务用于将所述中间视频数据编码为目标视频数据;
根据硬件编码器和/或软件转码器的资源负载状态,分配所述硬件编码器和/或所述软件转码器执行所述编码任务;
根据硬件解码器和/或所述软件转码器的资源负载状态,分配所述硬件解码器或所述软件转码器执行所述解码任务。
2.根据权利要求1所述的方法,其特征在于,所述根据硬件编码器和/或软件转码器的资源负载状态,分配所述硬件编码器和/或所述软件转码器执行所述编码任务,包括:
将所述编码任务拆分为已规定使用硬件编码器的第一编码子任务、已规定使用软件转码器的第二编码子任务、允许使用硬件编码器或软件转码器的第三编码子任务;
将所述第三编码子任务拆分为第四编码子任务、第五编码子任务;
若所述硬件编码器的资源负载状态满足执行所述第一编码子任务与所述第四编码子任务,则分配所述硬件编码器执行所述第一编码子任务与所述第四编码子任务;
若所述软件转码器的资源负载状态满足执行所述第二编码子任务与所述第五编码子任务,则分配所述软件转码器执行所述第二编码子任务与所述第五编码子任务。
3.根据权利要求2所述的方法,其特征在于,所述将所述第三编码子任务拆分为第四编码子任务、第五编码子任务,包括:
按照视频质量对所述第三编码子任务规定编码的目标视频数据进行降序排序;
确定切分位置;
生成第四编码子任务,所述第四编码子任务用于对排序位于所述切分位置之前的目标视频数据进行编码;
生成第五编码子任务,所述第五编码子任务用于对排序位于所述切分位置之后的目标视频数据进行编码。
4.根据权利要求3所述的方法,其特征在于,所述确定切分位置,包括:
将指定的位置设置为初始的切分位置;
若所述硬件编码器的资源负载状态未满足执行所述第一编码子任务与所述第四编码子任务,则向前移动切分位置;
或者,
若所述软件转码器的资源负载状态未满足执行所述第二编码子任务与所述第五编码子任务,则向后移动切分位置。
5.根据权利要求2所述的方法,其特征在于,所述若所述硬件编码器的资源负载状态满足执行所述第一编码子任务与所述第四编码子任务,则分配所述硬件编码器执行所述第一编码子任务与所述第四编码子任务,包括:
查询所述硬件编码器已被占用的资源,作为第一硬件编码资源;
计算所述硬件编码器执行所述第一编码子任务时被占用的资源,作为第二硬件编码资源;
计算所述硬件编码器执行所述第四编码子任务时被占用的资源,作为第三硬件编码资源;
查询所述硬件编码器所有的资源,作为第四硬件编码资源;
若所述第一硬件编码资源、所述第二硬件编码资源与所述第三硬件编码资源之间的和值小于或等于所述第四硬件编码资源,则分配所述硬件编码器执行所述第一编码子任务与所述第四编码子任务。
6.根据权利要求2所述的方法,其特征在于,所述若所述软件转码器的资源负载状态满足执行所述第二编码子任务与所述第五编码子任务,则分配所述软件转码器执行所述第二编码子任务与所述第五编码子任务,包括:
查询所述软件转码器已被占用的资源,作为第一软件转码资源;
计算所述软件转码器执行所述第二编码子任务时被占用的资源,作为第二软件转码资源;
计算所述软件转码器执行所述第五编码子任务时被占用的资源,作为第三软件转码资源;
查询所述软件转码器所有的资源,作为第四软件转码资源;
若所述第一软件转码资源、所述第二软件转码资源与所述第三软件转码资源之间的和值小于或等于所述第四软件转码资源,则分配所述软件转码器执行所述第二编码子任务与所述第五编码子任务。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述根据所述硬件解码器和/或所述软件转码器的资源负载状态,分配所述硬件解码器或所述软件转码器执行所述解码任务,包括:
确定所述解码任务已规定使用硬件解码器;
若所述硬件解码器的资源负载状态满足执行所述解码任务,则分配所述硬件解码器执行所述解码任务。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述根据所述硬件解码器和/或所述软件转码器的资源负载状态,分配所述硬件解码器或所述软件转码器执行所述解码任务,包括:
确定所述解码任务允许使用硬件解码器或软件转码器;
若所述硬件解码器的资源负载状态在执行所述解码任务时为资源充裕状态,则分配所述硬件解码器执行所述解码任务;
若所述软件转码器分配所述编码任务之后的资源负载状态满足执行所述解码任务,则分配所述软件转码器执行所述解码任务;
若所述硬件解码器的资源负载状态满足执行所述解码任务,则分配所述硬件解码器执行所述解码任务。
9.根据权利要求8所述的方法,其特征在于,所述若所述硬件解码器的资源负载状态在执行所述解码任务时为资源充裕状态,则分配所述硬件解码器执行所述解码任务,包括:
查询所述硬件解码器中已被占用的资源,作为第一硬件解码资源;
计算所述硬件解码器执行所述解码任务时被占用的资源,作为第二硬件解码资源;
若所述第一硬件解码资源与所述第二硬件解码资源之间的和值小于预设的资源阈值,则分配所述硬件解码器执行所述解码任务,其中,所述资源阈值为所述硬件解码器所有的资源中指定的比例。
10.根据权利要求8所述的方法,其特征在于,所述若所述软件转码器分配所述编码任务之后的资源负载状态满足执行所述解码任务,则分配所述软件转码器执行所述解码任务,包括:
确定第一软件转码资源,所述第一软件转码资源为所述软件转码器已被占用的资源;
确定第二软件转码资源,所述第二软件转码资源为分配所述软件转码器执行第二编码子任务时被占用的资源;
确定第三软件转码资源,所述第三软件转码资源为分配所述软件转码器执行第五编码子任务时被占用的资源;
确定第四软件转码资源,所述第四软件转码资源为所述软件转码器所有的资源;
计算所述软件转码器执行所述解码任务时被占用的资源,作为第五软件转码资源;
若所述第一软件转码资源、所述第二软件转码资源、所述第三软件转码资源与所述第五软件转码资源之间的和值小于或等于所述第四软件转码资源,则分配所述软件转码器执行所述解码任务。
11.根据权利要求8所述的方法,其特征在于,所述若所述硬件解码器的资源负载状态满足执行所述解码任务,则分配所述硬件解码器执行所述解码任务,包括:
查询所述硬件解码器中已被占用的资源,作为第一硬件解码资源;
计算所述硬件解码器执行所述解码任务时被占用的资源,作为第二硬件解码资源;
查询所述硬件解码器所有的资源,作为第三硬件解码资源;
若所述第一硬件解码资源与所述第二硬件解码资源之间的和值小于所述第三硬件解码资源,则分配所述硬件解码器执行所述解码任务。
12.一种转码资源的调度装置,其特征在于,包括:
转码请求接收模块,用于接收源设备的转码请求;
编解码任务确定模块,用于响应于所述转码请求,确定解码任务与编码任务,所述解码任务用于将原始视频数据解码为中间视频数据、所述编码任务用于将所述中间视频数据编码为目标视频数据;
编码任务分配模块,用于根据硬件编码器和/或软件转码器的资源负载状态,分配所述硬件编码器和/或所述软件转码器执行所述编码任务;
解码任务分配模块,用于根据硬件解码器和/或所述软件转码器的资源负载状态,分配所述硬件解码器或所述软件转码器执行所述解码任务。
13.一种转码系统,其特征在于,包括转码控制中心、多个转码服务器,所述转码服务器配置有硬件解码器、硬件编码器和软件转码器中的至少一者;
所述转码控制中心包括:
转码请求接收模块,用于接收源设备的转码请求;
编解码任务确定模块,用于响应于所述转码请求,确定解码任务与编码任务;
编码任务分配模块,用于根据硬件编码器和/或软件转码器的资源负载状态,分配所述硬件编码器和/或所述软件转码器执行所述编码任务;
解码任务分配模块,用于根据所述硬件解码器和/或所述软件转码器的资源负载状态,分配所述硬件解码器或所述软件转码器执行所述解码任务;
所述转码服务器包括:
原始视频数据接收模块,用于接收源设备发送的原始视频数据;
解码模块,用于调用所述硬件解码器或所述软件转码器执行所述解码任务,以将所述原始视频数据解码为中间视频数据;
编码模块,用于调用所述硬件编码器和/或所述软件转码器执行所述编码任务,以将所述中间视频数据编码为目标视频数据。
14.根据权利要求13所述的系统,其特征在于,所述转码服务器还包括第一队列、第二队列、第三队列、第四队列;
所述原始视频数据接收模块,还用于接收源设备发送的原始视频数据,将所述原始视频数据存储至所述第一队列;
所述解码模块,还用于从所述第一队列读取所述原始视频数据,调用所述硬件解码器或所述软件转码器执行所述解码任务,以将所述原始视频数据解码为中间视频数据,将所述硬件解码器输出的中间视频数据存储至所述第二队列、将所述软件转码器输出的中间视频数据存储至所述第三队列;
编码模块,还用于所述第二队列或所述第三队列读取所述中间视频数据,调用所述硬件编码器和/或所述软件转码器执行所述编码任务,以将所述中间视频数据编码为目标视频数据,将所述目标视频数据存储至所述第四队列。
15.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一所述的转码资源的调度方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-11中任一所述的转码资源的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010318660.XA CN111510743B (zh) | 2020-04-21 | 2020-04-21 | 转码资源的调度方法、装置、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010318660.XA CN111510743B (zh) | 2020-04-21 | 2020-04-21 | 转码资源的调度方法、装置、系统、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111510743A CN111510743A (zh) | 2020-08-07 |
CN111510743B true CN111510743B (zh) | 2022-04-05 |
Family
ID=71872876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010318660.XA Active CN111510743B (zh) | 2020-04-21 | 2020-04-21 | 转码资源的调度方法、装置、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111510743B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112543374A (zh) * | 2020-11-30 | 2021-03-23 | 联想(北京)有限公司 | 一种转码控制方法、装置及电子设备 |
CN114125432B (zh) * | 2021-11-22 | 2022-09-16 | 北京天融信网络安全技术有限公司 | 视频数据处理方法、装置、设备及存储介质 |
CN114679593B (zh) * | 2022-02-09 | 2023-09-22 | 上海哔哩哔哩科技有限公司 | 直播转码处理方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162809A (zh) * | 2015-10-23 | 2015-12-16 | 北京理工大学 | 一种基于模块间通信的实时视频转码系统 |
CN105992020A (zh) * | 2015-07-24 | 2016-10-05 | 乐视云计算有限公司 | 一种分配视频转换资源的方法及系统 |
CN109213593A (zh) * | 2017-07-04 | 2019-01-15 | 阿里巴巴集团控股有限公司 | 用于全景视频转码的资源分配方法、装置和设备 |
CN110769278A (zh) * | 2019-10-29 | 2020-02-07 | 鹏城实验室 | 一种分布式视频转码方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11082455B2 (en) * | 2017-05-03 | 2021-08-03 | T-Mobile Usa, Inc. | Network gateway transcoder-utilization-aware session control |
-
2020
- 2020-04-21 CN CN202010318660.XA patent/CN111510743B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105992020A (zh) * | 2015-07-24 | 2016-10-05 | 乐视云计算有限公司 | 一种分配视频转换资源的方法及系统 |
CN105162809A (zh) * | 2015-10-23 | 2015-12-16 | 北京理工大学 | 一种基于模块间通信的实时视频转码系统 |
CN109213593A (zh) * | 2017-07-04 | 2019-01-15 | 阿里巴巴集团控股有限公司 | 用于全景视频转码的资源分配方法、装置和设备 |
CN110769278A (zh) * | 2019-10-29 | 2020-02-07 | 鹏城实验室 | 一种分布式视频转码方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111510743A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111510743B (zh) | 转码资源的调度方法、装置、系统、设备和存储介质 | |
US10148990B2 (en) | Video streaming resource optimization | |
EP3244621B1 (en) | Video encoding method, system and server | |
KR101555855B1 (ko) | 다양한 참가 디바이스의 화상회의 방법 및 시스템 | |
US10225305B2 (en) | Adaptive data segment delivery arbitration for bandwidth optimization | |
CN108965884B (zh) | 一种转码任务的分配方法及调度设备、转码设备 | |
CN104469370A (zh) | 一种视频转码的方法和装置 | |
JP7474528B2 (ja) | データ・ストリーム変更を制御するシステムおよび方法 | |
CN108063911B (zh) | 一种视频会议扩容方法 | |
CN105577819A (zh) | 一种虚拟化桌面的分享系统、分享方法以及分享装置 | |
CN1271834C (zh) | 一种支持大容量用户的多路实时视频网关及其应用方法 | |
US11843792B2 (en) | Dynamic decoder configuration for live transcoding | |
CN111163335B (zh) | 一种分布式服务器的视频处理方法及装置 | |
WO2001037565A1 (en) | Method and apparatus for controlling moving picture synthesis | |
CN109819333B (zh) | 视频流码率分配方法、装置及计算机可读存储介质 | |
CN115209189B (zh) | 一种视频流传输方法、系统、服务器及存储介质 | |
JP2015186036A (ja) | 情報処理装置、情報処理システム、情報処理方法及びプログラム | |
US9667683B2 (en) | Scalable architecture for media mixing | |
Boros et al. | Enabling superior and controllable video streaming QoE with 5G network orchestration | |
US10958945B2 (en) | Elementary module of a system for distributing an audiovisual content | |
CN111432159B (zh) | 计算任务处理方法、装置、系统与计算机可读存储介质 | |
KR101566397B1 (ko) | 대역폭 관리 장치, 중앙 관리 장치, 및 대역폭 관리 방법 | |
KR102541455B1 (ko) | 엣지 컴퓨팅 환경에서 라이브 비디오 스트리밍 품질을 고려한 비용 최적화를 위한 트랜스코딩 작업 할당 방법 및 시스템 | |
CN111182309B (zh) | 一种视频解码处理方法及装置 | |
WO2022048255A1 (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221206 Address after: 31a, 15 / F, building 30, maple mall, bangrang Road, Brazil, Singapore Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd. Address before: 5-13 / F, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou, Guangdong 510000 Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |