CN108712422A - 一种创建转码任务的方法和装置 - Google Patents
一种创建转码任务的方法和装置 Download PDFInfo
- Publication number
- CN108712422A CN108712422A CN201810480686.7A CN201810480686A CN108712422A CN 108712422 A CN108712422 A CN 108712422A CN 201810480686 A CN201810480686 A CN 201810480686A CN 108712422 A CN108712422 A CN 108712422A
- Authority
- CN
- China
- Prior art keywords
- transcoding
- stream
- load value
- live
- task
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- 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/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种创建转码任务的方法和装置,属于互联网流媒体技术领域。所述方法包括:接收流媒体服务器发送的目标直播流的转码请求;根据预先存储的原视频参数、目的视频参数和预估负载值的对应关系,确定所述目标直播流对应的目标负载值;获取当前转码服务器的实际负载值,并计算当前所述转码服务器上所有处于启动阶段的转码任务的总预估负载值;如果所述目标负载值、所述实际负载值与所述总预估负载值之和不大于预设负载阈值,则创建所述目标直播流的转码任务及对应的转码进程,否则,向所述流媒体服务器反馈转码失败消息。
Description
技术领域
本发明涉及互联网流媒体技术领域,特别涉及一种创建转码任务的方法和装置。
背景技术
观看直播是一种当下主流的娱乐形式,大量的用户终端上都安装有直播客户端,通过直播客户端,用户可以播放直播平台提供的直播流。受播放终端多样、用户需求不同的影响,直播平台往往需要对直播流进行转码,即将原视频参数的直播流转码为不同目的视频参数的直播流,以满足不同的播放需求,其中,视频参数包含视频格式、码率、分辨率、帧率等。
直播平台的流媒体服务器从直播源拉取到新的直播流后,可以按照预设的多种目的视频参数,生成多个转码任务,然后可以将多个转码任务分发至不同的转码服务器。从而,转码服务器可以创建转码进程,通过转码进程实现对直播流的转码任务的启动、解析、转码、封装等步骤,之后可以将转码得到的直播流发送回流媒体服务器。这样,在接收到终端对于某一视频参数下的直播流的直播播放请求后,流媒体服务器可以向终端推送相应的直播流。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在用户观看直播的高峰时段,一个转码服务器往往需要同时处理大量直播流的转码任务,这样,转码服务器将持续处于高负荷的数据输出状态,甚至很容易进入超负荷过载状态,有很大概率发生故障,导致直播流转码中断或终止,故而直播服务的质量较差。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种创建转码任务的方法和装置。所述技术方案如下:
第一方面,提供了一种创建转码任务的方法,所述方法包括:
接收流媒体服务器发送的目标直播流的转码请求;
根据预先存储的原视频参数、目的视频参数和预估负载值的对应关系,确定所述目标直播流对应的目标负载值;
获取当前转码服务器的实际负载值,并计算当前所述转码服务器上所有处于启动阶段的转码任务的总预估负载值;
如果所述目标负载值、所述实际负载值与所述总预估负载值之和不大于预设负载阈值,则创建所述目标直播流的转码任务及对应的转码进程,否则,向所述流媒体服务器反馈转码失败消息。
可选的,所述计算当前所述转码服务器上所有处于启动阶段的转码任务的总预估负载值,包括:
遍历预先存储的转码任务启动列表,其中,所述转码任务启动列表中记录有当前转码服务器上所有处于启动阶段的转码任务;
确定所述转码任务启动列表中每个转码任务的预估负载值,计算所述转码任务启动列表中所有转码任务的总预估负载值。
可选的,所述创建所述目标直播流的转码任务及对应的转码进程之后,还包括:
在所述转码任务启动列表中添加所述目标直播流的转码任务。
可选的,所述方法还包括:
当所述转码进程完成所述目标直播流的流解析处理时,删除所述转码任务启动列表中记录的所述目标直播流的转码任务。
可选的,所述方法还包括:
持续检测并记录本地所有启动完成的转码任务对应的实时负载值;
周期性根据本周期内的所述实时负载值更新所述对应关系中的预估负载值。
可选的,所述方法还包括:
当检测到所述目标直播流的转码进程停止运行后,向所述流媒体服务器反馈转码结束消息,以使所述流媒体服务器根据所述目标直播流的拉流状态确定是否再次发起所述目标直播流的转码请求。
可选的,所述否则向所述流媒体服务器反馈转码失败消息,包括:
否则判断所述目标直播流是否为预设的关键直播流;
如果是,则取消所有处于启动阶段的转码任务中所述预估负载值大于且最接近所述目标直播流的预估负载值的非关键直播流的转码任务,并创建所述目标直播流的转码任务及对应的转码进程;
如果不是,则向所述流媒体服务器反馈转码失败消息。
第二方面,提供了一种创建转码任务的装置,所述装置包括:
接收模块,用于接收流媒体服务器发送的目标直播流的转码请求;
确定模块,用于根据预先存储的原视频参数、目的视频参数和预估负载值的对应关系,确定所述目标直播流对应的目标负载值;
计算模块,用于获取当前转码服务器的实际负载值,并计算当前所述转码服务器上所有处于启动阶段的转码任务的总预估负载值;
创建模块,用于如果所述目标负载值、所述实际负载值与所述总预估负载值之和不大于预设负载阈值,则创建所述目标直播流的转码任务及对应的转码进程,否则,向所述流媒体服务器反馈转码失败消息。
可选的,所述计算模块,用于:
遍历预先存储的转码任务启动列表,其中,所述转码任务启动列表中记录有当前转码服务器上所有处于启动阶段的转码任务;
确定所述转码任务启动列表中每个转码任务的预估负载值,计算所述转码任务启动列表中所有转码任务的总预估负载值。
可选的,所述装置还包括:
添加模块,用于在创建所述目标直播流的转码任务及对应的转码进程之后,在所述转码任务启动列表中添加所述目标直播流的转码任务。
可选的,所述装置还包括:
删除模块,用于当所述转码进程完成所述目标直播流的流解析处理时,删除所述转码任务启动列表中记录的所述目标直播流的转码任务。
可选的,所述装置还包括:
检测模块,用于持续检测并记录本地所有启动完成的转码任务对应的实时负载值;
更新模块,用于周期性根据本周期内的所述实时负载值更新所述对应关系中的预估负载值。
可选的,所述装置还包括:
反馈模块,用于当检测到所述目标直播流的转码进程停止运行后,向所述流媒体服务器反馈转码结束消息,以使所述流媒体服务器根据所述目标直播流的拉流状态确定是否再次发起所述目标直播流的转码请求。
可选的,所述创建模块,用于:
否则判断所述目标直播流是否为预设的关键直播流;
如果是,则取消所有处于启动阶段的转码任务中所述预估负载值大于且最接近所述目标直播流的预估负载值的非关键直播流的转码任务,并创建所述目标直播流的转码任务及对应的转码进程;
如果不是,则向所述流媒体服务器反馈转码失败消息。
第三方面,提供了一种转码服务器,所述转码服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的创建转码任务的方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,转码服务器在接收到目标直播流的转码请求后,可以先预估目标直播流对应的目标负载值,同时可以获取当前本机的实际负载值,并计算本机所有处于启动阶段的转码任务的总预估负载值,然后判断上述三者之和是否超过预设负载阈值,如果未超过,则创建目标直播流的转码任务,如果超过,则拒绝目标直播流的转码请求。这样,在需要创建新的转码任务时,转码服务器可以通过对处于启动阶段的转码任务的负载值的预估,以及当前本机的实际负载值,来预测在一段时间后,转码服务器是否会进入超负荷过载状态,并以此来决定是否创建新的转码任务,故而可以避免转码服务器负载过高,降低转码服务器发生故障的概率,一定程度上可以提高直播服务的质量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种直播平台的后台服务系统的系统框架图;
图2是本发明实施例提供的一种创建转码任务的方法流程图;
图3是本发明实施例提供的一种创建转码任务的装置结构示意图;
图4是本发明实施例提供的一种转码服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种创建转码任务的方法,该方法的执行主体可以是转码服务器,并由流媒体服务器辅助实现。其中,转码服务器可以用于接收流媒体服务器对于直播流的转码请求,生成相应的转码任务,并创建对应的转码进程,再通过转码进程实现直播流的转码处理;流媒体服务器可以用于从直播源拉流,然后将直播流提供给转码服务器转码,再将转码服务器转码后的直播流提供给直播客户端。直播平台的后台服务系统中可以包含有多台流媒体服务器和多台转码服务器,每台流媒体服务器可以向多台转码服务器发送转码请求,每台转码服务器可以同时支持多台流媒体服务器的转码需求,具体的系统框架可以参照图1所示。上述转码服务器和流媒体服务器中均可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中的创建转码任务的处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。
下面将结合具体实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:
步骤201,转码服务器接收流媒体服务器发送的目标直播流的转码请求。
在实施中,主播端生成直播流后,可以将直播流推送至直播平台的流媒体服务器处。流媒体服务器在获取到某一直播流(以目标直播流为例)后,可以按照直播平台预设的直播流格式确定对目标直播流的转码需求,然后可以向转码服务器发送目标直播流的转码请求。从而,转码服务器可以接收到流媒体服务器发送的目标直播流的转码请求。上述转码请求中可以携带有目标直播流的视频数据和目的视频参数。当然,在另一种情况下,转码请求中可以不携带目标直播流的视频数据,而是携带目标直播流的URL,这样,转码服务器可以根据目标直播流的URL,拉取目标直播流进行后续转码处理。
步骤202,转码服务器根据预先存储的原视频参数、目的视频参数和预估负载值的对应关系,确定目标直播流对应的目标负载值。
在实施中,直播平台的技术人员可以根据不同转码任务对应的原视频参数和目的视频参数,确定不同转码任务占用转码服务器的负载大小,并以预估负载值的形式来体现该负载大小,从而可以创建原视频参数、目的视频参数和预估负载值的对应关系,(此处以负载值为CPU使用率为例建立如表1所示的对应关系),然后将该对应关系存储在转码服务器中。
表1
这样,在接收到目标直播流的转码请求之后,转码服务器可以先确定目标直播流的元视频参数和转码请求所携带的目的视频参数,然后根据上述原视频参数、目的视频参数和预估负载值的对应关系,确定目标直播流对应的目标负载值。值得一提的是,由于转码过程中的编码处理的负载相对解码处理占用的负载较高,故而上述对应关系可以简化为目的视频参数和预估负载值的对应关系,进一步的,由于分辨率这一项视频参数对编码处理的负载影响较大,故而上述简化后的对应关系可以再次简化为包含分辨率在内的一项或多项目的视频参数和预估负载值的对应关系。
步骤203,转码服务器获取当前转码服务器的实际负载值,并计算当前转码服务器上所有处于启动阶段的转码任务的总预估负载值。
在实施中,在接收到目标直播流的转码请求之后,转码服务器可以获取当前转码服务器的实际负载值,同时,可以检测当前转码服务器上所有处于启动阶段的转码任务,然后计算这些处于启动阶段的转码任务的总预估负载值。需要说明的是,转码任务在启动阶段占用的负载较低,而在启动完成后将开始占用较高的负载,故而此处转码服务器的实际负载值中包含的处于启动阶段的转码任务当前所占用的负载可以忽略,而需要另外再统计处于启动阶段的转码任务在启动完成后预计占用的负载。
可选的,可以维护有专门记录转码服务器上处于启动阶段的转码任务的转码任务启动列表,相应的,步骤203中计算总预估负载值的处理可以具体如下:转码服务器遍历预先存储的转码任务启动列表;确定转码任务启动列表中每个转码任务的预估负载值,计算转码任务启动列表中所有转码任务的总预估负载值。
其中,转码任务启动列表中记录有当前转码服务器上所有处于启动阶段的转码任务。
在实施中,转码服务器在计算当前本地所有处于启动阶段的转码任务时,可以遍历预先存储的转码任务启动列表,然后确定转码任务启动列表中每个转码任务的预估负载值,进而可以计算转码任务启动列表中所有转码任务的总预估负载值。可以理解,转码任务启动列表中可以还记录有每个转码任务对应的预估负载值,这样,转码服务器在确定预估负载值,可以直接从转码任务启动列表中读取相应的数值即可。
步骤204,如果目标负载值、实际负载值与总预估负载值之和不大于预设负载阈值,则创建目标直播流的转码任务对应的转码进程,否则,向流媒体服务器反馈转码失败消息。
在实施中,在确定完目标直播流对应目标负载值,当前转码服务器的实际负载值和当前所有处于启动阶段的转码任务的总预估负载值之后,转码服务器可以计算这三者之和,然后将三者之和与预设负载阈值进行比较。此处的预设负载阈值可以是直播平台的技术人员基于转码服务器的设备性能,预先设定的负载警戒值,一旦转码服务器的实际负载值大于该预设负载阈值,转码服务器将会进入过载状态,很容易发生故障。这样,如果目标负载值、实际负载值与总预估负载值之和不大于预设负载阈值,转码服务器则可以创建目标直播流的转码任务及对应的转码进程。而如果上述三者之后大于预设负载阈值,则说明如果创建目标直播流的转码任务,在所有转码任务启动完成之后,转码服务器将进入过载状态,故而转码服务器可以拒绝创建转码任务,并向流媒体服务器反馈转码失败消息。
可选的,基于上述转码任务启动列表,转码服务器在创建了转码任务之后,可以在转码任务启动列表中添加相应的信息,故而步骤204之后可以存在如下处理:转码服务器在转码任务启动列表中添加目标直播流的转码任务。
在实施中,转码服务器在创建了目标直播流的转码任务及对应的转码进程之后,可以在预先存储的转码任务启动列表中添加目标直播流的转码任务,同时,还可以添加该转码任务对应的预估负载值。
可选的,目标直播流的转码任务启动完成后,可以在转码任务启动列表中删除相关项,相应的处理可以如下:当转码进程完成目标直播流的流解析处理时,转码服务器删除转码任务启动列表中记录的目标直播流的转码任务。
在实施中,转码服务器在创建了目标直播流的转码任务及对应的转码进程后,可以监控该转码进程的运行状态。当转码进程完成了目标直播流的流解析处理时,可以判定该转码任务已经启动完成,进而转码服务器可以删除转码任务启动列表中记录的目标直播流的转码任务。该处理中,转码进程完成目标直播流的流解析处理后通知转码服务器,转码服务器删除转码任务启动列表中记录的目标直播流的转码任务,或者转码服务器自行检测流解析进度完成后再进行上述相应处理。
可选的,转码服务器可以通过转码任务的实际负载值来调整步骤202中的对应关系,相应的处理可以如下:转码服务器持续检测并记录本地所有启动完成的转码任务对应的实时负载值;周期性根据本周期内的实时负载值更新对应关系中的预估负载值。
在实施中,受转码服务器的设备性能不同的影响,相同的转码任务在不同的转码服务器上可以会占用不同的负载值,故而转码服务器可以根据本机的转码任务运行状态,不断对直播平台的技术人员创建的原视频参数、目的视频参数和预估负载值的对应关系进行调整。具体的,转码服务器可以持续检测并记录本地所有启动完成的转码任务对应的实时负载值,然后按照预设周期汇总记录的实时负载值,进而可以周期性根据本周期内的实时负载值对上述对应关系中的预估负载值进行更新。
可选的,转码进程停止运行后,转码服务器可以让流媒体服务器来决定是否重新创建转码进程,相应的处理可以如下:当检测到目标直播流的转码进程停止运行后,转码服务器向流媒体服务器反馈转码结束消息,以使流媒体服务器根据目标直播流的拉流状态确定是否再次发起目标直播流的转码请求。
在实施中,转码服务器在创建并启动目标直播流的转码进程后,可以同时启动针对该转码进程的监控线程,然后通过监控线程监控转码进程的运行状态。当检测到目标直播流的转码进程停止运行后,转码服务器可以向流媒体服务器反馈转码结束消息。流媒体服务器接收到该转码结束消息后,可以检测目标直播流的拉流状态,然后根据拉流状态确定是否再次发起目标直播流的转码请求。具体的,如果与直播源的连接没有断开,说明转码进程是因为异常原因而结束,流媒体服务器则可以再次发起目标直播流的转码请求,以恢复转码任务;而如果与直播源的连接已断开,说明转码进程正常结束,流媒体服务器则可以不作任何处理。
可选的,转码服务器可以优先保证关键直播流的转码处理,相应的,步骤204中在目标负载值、实际负载值与总预估负载值之和大于预设负载阈值的情况下,转码服务器可以有如下处理:转码服务器判断目标直播流是否为预设的关键直播流;如果是,则取消所有处于启动阶段的转码任务中预估负载值大于且最接近目标直播流的预估负载值的非关键直播流的转码任务,并创建目标直播流的转码任务及对应的转码进程;如果不是,则向流媒体服务器反馈转码失败消息。
在实施中,直播平台的技术人员可以预先设定一些直播流(如热门主播的直播流)为关键直播流,并将关键直播流的设定结果配置在转码服务器中。这样,转码服务器在接收到目标直播流的转码请求,并发现目标直播流对应的目标负载值、当前转码服务器的实际负载值与当前转码服务器上所有处于启动阶段的转码任务的总预估负载值之和大于预设负载阈值之后,可以先判断目标直播流是否为预设的关键直播流。如果是,转码服务器则可以在所有处于启动阶段的转码任务中挑选出预估负载值大于且最接近目标直播流的预估负载值的一个非关键直播流的转码任务,然后取消该转码任务,并创建目标直播流的转码任务及对应的转码进程。而如果不是,转码服务器则可以拒绝创建转码任务,并向流媒体服务器反馈转码失败消息。
本发明实施例中,转码服务器在接收到目标直播流的转码请求后,可以先预估目标直播流对应的目标负载值,同时可以获取当前本机的实际负载值,并计算本机所有处于启动阶段的转码任务的总预估负载值,然后判断上述三者之和是否超过预设负载阈值,如果未超过,则创建目标直播流的转码任务,如果超过,则拒绝目标直播流的转码请求。这样,在需要创建新的转码任务时,转码服务器可以通过对处于启动阶段的转码任务的负载值的预估,以及当前本机的实际负载值,来预测在一段时间后,转码服务器是否会进入超负荷过载状态,并以此来决定是否创建新的转码任务,故而可以避免转码服务器负载过高,降低转码服务器发生故障的概率,一定程度上可以提高直播服务的质量。
基于相同的技术构思,本发明实施例还提供了一种创建转码任务的装置,如图3所示,所述装置包括:
接收模块301,用于接收流媒体服务器发送的目标直播流的转码请求;
确定模块302,用于根据预先存储的原视频参数、目的视频参数和预估负载值的对应关系,确定所述目标直播流对应的目标负载值;
计算模块303,用于获取当前转码服务器的实际负载值,并计算当前所述转码服务器上所有处于启动阶段的转码任务的总预估负载值;
创建模块304,用于如果所述目标负载值、所述实际负载值与所述总预估负载值之和不大于预设负载阈值,则创建所述目标直播流的转码任务及对应的转码进程,否则,向所述流媒体服务器反馈转码失败消息。
可选的,所述计算模块303,具体用于:
遍历预先存储的转码任务启动列表,其中,所述转码任务启动列表中记录有当前转码服务器上所有处于启动阶段的转码任务;
确定所述转码任务启动列表中每个转码任务的预估负载值,计算所述转码任务启动列表中所有转码任务的总预估负载值。
可选的,所述装置还包括:
添加模块,用于在创建所述目标直播流的转码任务及对应的转码进程之后,在所述转码任务启动列表中添加所述目标直播流的转码任务。
可选的,所述装置还包括:
删除模块,用于当所述转码进程完成所述目标直播流的流解析处理时,删除所述转码任务启动列表中记录的所述目标直播流的转码任务。
可选的,所述装置还包括:
检测模块,用于持续检测并记录本地所有启动完成的转码任务对应的实时负载值;
更新模块,用于周期性根据本周期内的所述实时负载值更新所述对应关系中的预估负载值。
可选的,所述装置还包括:
反馈模块,用于当检测到所述目标直播流的转码进程停止运行后,向所述流媒体服务器反馈转码结束消息,以使所述流媒体服务器根据所述目标直播流的拉流状态确定是否再次发起所述目标直播流的转码请求。
可选的,所述创建模块304,具体用于:
否则判断所述目标直播流是否为预设的关键直播流;
如果是,则取消所有处于启动阶段的转码任务中所述预估负载值大于且最接近所述目标直播流的预估负载值的非关键直播流的转码任务,并创建所述目标直播流的转码任务及对应的转码进程;
如果不是,则向所述流媒体服务器反馈转码失败消息。
本发明实施例中,转码服务器在接收到目标直播流的转码请求后,可以先预估目标直播流对应的目标负载值,同时可以获取当前本机的实际负载值,并计算本机所有处于启动阶段的转码任务的总预估负载值,然后判断上述三者之和是否超过预设负载阈值,如果未超过,则创建目标直播流的转码任务,如果超过,则拒绝目标直播流的转码请求。这样,在需要创建新的转码任务时,转码服务器可以通过对处于启动阶段的转码任务的负载值的预估,以及当前本机的实际负载值,来预测在一段时间后,转码服务器是否会进入超负荷过载状态,并以此来决定是否创建新的转码任务,故而可以避免转码服务器负载过高,降低转码服务器发生故障的概率,一定程度上可以提高直播服务的质量。
需要说明的是:上述实施例提供的创建转码任务的装置在创建转码任务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的创建转码任务的装置与创建转码任务的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图4是本发明实施例提供的转码服务器的结构示意图。该转码服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对转码服务器中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在转码服务器400上执行存储介质430中的一系列指令操作。
转码服务器400还可以包括一个或一个以上电源424,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,一个或一个以上键盘454,和/或,一个或一个以上操作系统441,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
转码服务器400可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述创建转码任务的指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种创建转码任务的方法,其特征在于,所述方法包括:
接收流媒体服务器发送的目标直播流的转码请求;
根据预先存储的原视频参数、目的视频参数和预估负载值的对应关系,确定所述目标直播流对应的目标负载值;
获取当前转码服务器的实际负载值,并计算当前所述转码服务器上所有处于启动阶段的转码任务的总预估负载值;
如果所述目标负载值、所述实际负载值与所述总预估负载值之和不大于预设负载阈值,则创建所述目标直播流的转码任务及对应的转码进程,否则,向所述流媒体服务器反馈转码失败消息。
2.根据权利要求1所述的方法,其特征在于,所述计算当前所述转码服务器上所有处于启动阶段的转码任务的总预估负载值,包括:
遍历预先存储的转码任务启动列表,其中,所述转码任务启动列表中记录有当前转码服务器上所有处于启动阶段的转码任务;
确定所述转码任务启动列表中每个转码任务的预估负载值,计算所述转码任务启动列表中所有转码任务的总预估负载值。
3.根据权利要求2所述的方法,其特征在于,所述创建所述目标直播流的转码任务及对应的转码进程之后,还包括:
在所述转码任务启动列表中添加所述目标直播流的转码任务。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述转码进程完成所述目标直播流的流解析处理时,删除所述转码任务启动列表中记录的所述目标直播流的转码任务。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
持续检测并记录本地所有启动完成的转码任务对应的实时负载值;
周期性根据本周期内的所述实时负载值更新所述对应关系中的预估负载值。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到所述目标直播流的转码进程停止运行后,向所述流媒体服务器反馈转码结束消息,以使所述流媒体服务器根据所述目标直播流的拉流状态确定是否再次发起所述目标直播流的转码请求。
7.根据权利要求1所述的方法,其特征在于,所述否则向所述流媒体服务器反馈转码失败消息,包括:
否则判断所述目标直播流是否为预设的关键直播流;
如果是,则取消所有处于启动阶段的转码任务中所述预估负载值大于且最接近所述目标直播流的预估负载值的非关键直播流的转码任务,并创建所述目标直播流的转码任务及对应的转码进程;
如果不是,则向所述流媒体服务器反馈转码失败消息。
8.一种创建转码任务的装置,其特征在于,所述装置包括:
接收模块,用于接收流媒体服务器发送的目标直播流的转码请求;
确定模块,用于根据预先存储的原视频参数、目的视频参数和预估负载值的对应关系,确定所述目标直播流对应的目标负载值;
计算模块,用于获取当前转码服务器的实际负载值,并计算当前所述转码服务器上所有处于启动阶段的转码任务的总预估负载值;
创建模块,用于如果所述目标负载值、所述实际负载值与所述总预估负载值之和不大于预设负载阈值,则创建所述目标直播流的转码任务及对应的转码进程,否则,向所述流媒体服务器反馈转码失败消息。
9.根据权利要求8所述的装置,其特征在于,所述计算模块,还用于:
遍历预先存储的转码任务启动列表,其中,所述转码任务启动列表中记录有当前转码服务器上所有处于启动阶段的转码任务;
确定所述转码任务启动列表中每个转码任务的预估负载值,计算所述转码任务启动列表中所有转码任务的总预估负载值。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
添加模块,用于在创建所述目标直播流的转码任务及对应的转码进程之后,在所述转码任务启动列表中添加所述目标直播流的转码任务。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
删除模块,用于当所述转码进程完成所述目标直播流的流解析处理时,删除所述转码任务启动列表中记录的所述目标直播流的转码任务。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
检测模块,用于持续检测并记录本地所有启动完成的转码任务对应的实时负载值;
更新模块,用于周期性根据本周期内的所述实时负载值更新所述对应关系中的预估负载值。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
反馈模块,用于当检测到所述目标直播流的转码进程停止运行后,向所述流媒体服务器反馈转码结束消息,以使所述流媒体服务器根据所述目标直播流的拉流状态确定是否再次发起所述目标直播流的转码请求。
14.根据权利要求8所述的装置,其特征在于,所述创建模块,还用于:
否则判断所述目标直播流是否为预设的关键直播流;
如果是,则取消所有处于启动阶段的转码任务中所述预估负载值大于且最接近所述目标直播流的预估负载值的非关键直播流的转码任务,并创建所述目标直播流的转码任务及对应的转码进程;
如果不是,则向所述流媒体服务器反馈转码失败消息。
15.一种转码服务器,其特征在于,所述转码服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一所述的创建转码任务的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810480686.7A CN108712422B (zh) | 2018-05-18 | 2018-05-18 | 一种创建转码任务的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810480686.7A CN108712422B (zh) | 2018-05-18 | 2018-05-18 | 一种创建转码任务的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108712422A true CN108712422A (zh) | 2018-10-26 |
CN108712422B CN108712422B (zh) | 2021-05-25 |
Family
ID=63869173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810480686.7A Active CN108712422B (zh) | 2018-05-18 | 2018-05-18 | 一种创建转码任务的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108712422B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110677687A (zh) * | 2019-10-21 | 2020-01-10 | 上海网达软件股份有限公司 | 一种支持延时的直播转码方法及系统 |
CN110708564A (zh) * | 2019-10-21 | 2020-01-17 | 上海网达软件股份有限公司 | 一种动态切换视频流的直播转码方法及系统 |
CN110913245A (zh) * | 2019-11-08 | 2020-03-24 | 网宿科技股份有限公司 | 一种控制视频转码码率的方法和装置 |
CN111526153A (zh) * | 2020-04-29 | 2020-08-11 | 高新兴科技集团股份有限公司 | 流媒体调度方法、计算机存储介质及电子设备 |
CN113596467A (zh) * | 2020-04-30 | 2021-11-02 | 北京达佳互联信息技术有限公司 | 一种转码服务的检测方法、装置、电子设备及存储介质 |
CN113676754A (zh) * | 2021-08-18 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 直播视频转码方法及装置 |
CN114071149A (zh) * | 2020-07-30 | 2022-02-18 | 株洲中车时代电气股份有限公司 | 分布式视频转码方法及相关装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102438279A (zh) * | 2011-12-31 | 2012-05-02 | 华为技术有限公司 | 一种负载控制的方法和设备 |
CN103309946A (zh) * | 2013-05-16 | 2013-09-18 | 华为技术有限公司 | 多媒体文件处理方法、装置及系统 |
CN104168488A (zh) * | 2014-08-29 | 2014-11-26 | 北京奇艺世纪科技有限公司 | 一种视频转码方法及装置 |
CN104182279A (zh) * | 2014-02-26 | 2014-12-03 | 无锡天脉聚源传媒科技有限公司 | 一种任务调度方法、装置及系统 |
CN104202305A (zh) * | 2014-08-13 | 2014-12-10 | 腾讯科技(深圳)有限公司 | 一种转码处理方法、装置及服务器 |
CN104539972A (zh) * | 2014-12-08 | 2015-04-22 | 中安消技术有限公司 | 一种多核处理器中视频并行解码的控制方法和装置 |
CN104717517A (zh) * | 2015-03-31 | 2015-06-17 | 北京奇艺世纪科技有限公司 | 一种视频转码任务调度方法及装置 |
CN106101276A (zh) * | 2016-08-10 | 2016-11-09 | 东方网力科技股份有限公司 | 一种集群负载均衡方法及装置 |
CN106488263A (zh) * | 2016-10-24 | 2017-03-08 | 北京小米移动软件有限公司 | 推送直播流媒体数据的方法及装置 |
CN106817588A (zh) * | 2017-02-06 | 2017-06-09 | 网宿科技股份有限公司 | 转码控制方法及装置、视频直播方法及系统 |
WO2017142691A1 (en) * | 2016-02-16 | 2017-08-24 | Arris Enterprises Llc | Efficient just-in-time transcoding by parameter extraction |
-
2018
- 2018-05-18 CN CN201810480686.7A patent/CN108712422B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102438279A (zh) * | 2011-12-31 | 2012-05-02 | 华为技术有限公司 | 一种负载控制的方法和设备 |
CN103309946A (zh) * | 2013-05-16 | 2013-09-18 | 华为技术有限公司 | 多媒体文件处理方法、装置及系统 |
CN104182279A (zh) * | 2014-02-26 | 2014-12-03 | 无锡天脉聚源传媒科技有限公司 | 一种任务调度方法、装置及系统 |
CN104202305A (zh) * | 2014-08-13 | 2014-12-10 | 腾讯科技(深圳)有限公司 | 一种转码处理方法、装置及服务器 |
CN104168488A (zh) * | 2014-08-29 | 2014-11-26 | 北京奇艺世纪科技有限公司 | 一种视频转码方法及装置 |
CN104539972A (zh) * | 2014-12-08 | 2015-04-22 | 中安消技术有限公司 | 一种多核处理器中视频并行解码的控制方法和装置 |
CN104717517A (zh) * | 2015-03-31 | 2015-06-17 | 北京奇艺世纪科技有限公司 | 一种视频转码任务调度方法及装置 |
WO2017142691A1 (en) * | 2016-02-16 | 2017-08-24 | Arris Enterprises Llc | Efficient just-in-time transcoding by parameter extraction |
CN106101276A (zh) * | 2016-08-10 | 2016-11-09 | 东方网力科技股份有限公司 | 一种集群负载均衡方法及装置 |
CN106488263A (zh) * | 2016-10-24 | 2017-03-08 | 北京小米移动软件有限公司 | 推送直播流媒体数据的方法及装置 |
CN106817588A (zh) * | 2017-02-06 | 2017-06-09 | 网宿科技股份有限公司 | 转码控制方法及装置、视频直播方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110677687A (zh) * | 2019-10-21 | 2020-01-10 | 上海网达软件股份有限公司 | 一种支持延时的直播转码方法及系统 |
CN110708564A (zh) * | 2019-10-21 | 2020-01-17 | 上海网达软件股份有限公司 | 一种动态切换视频流的直播转码方法及系统 |
CN110913245A (zh) * | 2019-11-08 | 2020-03-24 | 网宿科技股份有限公司 | 一种控制视频转码码率的方法和装置 |
CN111526153A (zh) * | 2020-04-29 | 2020-08-11 | 高新兴科技集团股份有限公司 | 流媒体调度方法、计算机存储介质及电子设备 |
CN113596467A (zh) * | 2020-04-30 | 2021-11-02 | 北京达佳互联信息技术有限公司 | 一种转码服务的检测方法、装置、电子设备及存储介质 |
CN113596467B (zh) * | 2020-04-30 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 一种转码服务的检测方法、装置、电子设备及存储介质 |
CN114071149A (zh) * | 2020-07-30 | 2022-02-18 | 株洲中车时代电气股份有限公司 | 分布式视频转码方法及相关装置 |
CN113676754A (zh) * | 2021-08-18 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 直播视频转码方法及装置 |
CN113676754B (zh) * | 2021-08-18 | 2023-08-29 | 上海哔哩哔哩科技有限公司 | 直播视频转码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108712422B (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108712422A (zh) | 一种创建转码任务的方法和装置 | |
US20160199742A1 (en) | Automatic generation of a game replay video | |
WO2017101488A1 (zh) | 实时转码的监控方法和实时转码系统 | |
US10887363B1 (en) | Streaming decision in the cloud | |
CN110418154B (zh) | 一种多媒体数据推送方法、装置及系统 | |
US9490992B2 (en) | Remote conference saving system for managing missing media data and storage medium | |
CN104702563A (zh) | 流媒体播放时长的获取方法和装置 | |
CN110830735A (zh) | 一种视频生成方法、装置、计算机设备和存储介质 | |
JP2005217791A (ja) | 画像表示方法及び画像表示装置並びに画像表示プログラム | |
CN112057846B (zh) | 云游戏服务调度的交互方法、装置、设备和存储介质 | |
CN108243222A (zh) | 服务器网络架构方法及装置 | |
JP2012059257A (ja) | キャッシュクラウド構造を利用したキャッシュシステムおよびキャッシングサービスの提供方法 | |
CN106789913B (zh) | 用户账号管理方法及装置 | |
KR20040093430A (ko) | 서비스 관리 시스템 및 그러한 시스템에서 사용되는 방법,통신 유닛 및 집적회로 | |
CN114143371A (zh) | 投屏方法、装置、存储介质及电子设备 | |
CN113741814A (zh) | 数据处理方法、装置、计算机可读存储介质和计算机设备 | |
US20230372811A1 (en) | Information system, service server, management server, information processing method, and recording medium | |
CN110582024A (zh) | 一种播放视频的方法和装置 | |
CN105898596B (zh) | 直播间显示控制方法及装置 | |
WO2023169066A1 (zh) | 监控回放控制方法、装置、存储介质及电子设备 | |
CN112269626A (zh) | 监控虚拟机的方法、装置及设备 | |
US10843072B2 (en) | Information processing apparatus, server system, and status management method | |
CN114422866A (zh) | 一种视频处理方法、装置、电子设备和存储介质 | |
CN114244843A (zh) | 流媒体下载方法、电子设备及存储介质 | |
CN111726658A (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 |