基于转码失败的智能重试的方法和系统的制作方法

文档序号:7781557阅读:211来源:国知局
基于转码失败的智能重试的方法和系统的制作方法
【专利摘要】本申请公开了基于转码失败的智能重试的方法和系统,该方法包括:监测到视频转码失败,获取该视频的转码处理数据;根据该转码处理数据,生成该视频的转码失败类型标签;将转码失败类型标签置于该视频的转码任务中,将转码任务加入再转码队列;读取再转码队列中的转码任务中的转码失败类型标签,并采用与转码失败类型标签相匹配的失败处理规则,对视频进行转码处理。本发明解决了对转码失败的视频进行再转码时不断重复强制转码的问题。
【专利说明】基于转码失败的智能重试的方法和系统【技术领域】
[0001]本申请涉及视频转码领域,更具体地,涉及一种基于转码失败的智能重试的方法和系统。
【背景技术】
[0002]现有技术中,视频网站将丰富的视频资源(片源)转换成适合于网络播放的格式(视频成品),具体来说,对于不同的视频资源来说,其具有不同的视频格式,并不是所有的视频格式都适合于网络传输播放,视频网站将视频资源转换为如flv”或“.mp4”等格式的视频成品进行网络传输(其中,“.f Iv ”格式适合于电视终端传输及播放,“.mp4 ”格式适合于计算机及移动终端网络传输及播放)。为了保证用户的观看体验,视频网站通常都会提供大量的视频共用户自由选择播放。也就是说,视频网站需要建立大量的转码任务,并通过其内部的转码服务器来执行相应的转码任务以进行视频转码处理。
[0003]由于片源的格式、转码处理自适应错误或转码服务器自身的运行状态等原因都有可能造成转码的失败,如:片源的视频和音频格式不兼容,在转码处理后视频成品没有视频图像而只有音频,或只有视频图像而没有音频,造成转码失败;片源分辨率较低,却被指定转换为更高的分辨率,那么,转码处理后的成品必然难以达到规定的清晰度,造成转码失败;转码服务器长时间满负荷运行,其内部CPU (中央处理器)出现短暂卡死,转码完成的视频成品中出现花屏、音频噪声等现象,造成转码失败。
[0004]在转码服务器中,具有视频转码失败的重试机制,但是,目前的重试机制是将转码失败的视频进行强制转码重试,在转码重试后仍然可能出现视频的转码失败,如:
[0005]对于片源的视频和音频格式不兼容的情况,强制进行转码重试,重试后的视频依然存在视频图像缺失或音频缺失;对于片源分辨率较低的片源,仍指定为高分辨率进行转码重试,重试后的视频难以达到规定的清晰度;对于出现花屏、音频噪声等现象的视频进行转码重试,增加了转码服务器的负担,甚至会造成转码服务器停机。
[0006]由于转码重试机制的局限性,导致对转码失败的视频不断重复转码,不仅增加了转码服务器的负载,也浪费了转码资源,在大量转码任务的情况下,严重影响转码任务处理进度。

【发明内容】

[0007]有鉴于此,本申请所要解决的技术问题是提供了一种基于转码失败的智能重试的方法和系统,以解决对转码失败的视频进行再转码时不断重复强制转码的问题。
[0008]为了解决上述技术问题,本申请公开了一种基于转码失败的智能重试的方法,其特征在于,包括:
[0009]监测到视频转码失败,获取该视频的转码处理数据;
[0010]根据该转码处理数据,生成该视频的转码失败类型标签;
[0011]将所述转码失败类型标签置于该视频的转码任务中,将所述转码任务加入再转码队列;
[0012]读取所述再转码队列中的所述转码任务中的所述转码失败类型标签,并采用与所述转码失败类型标签相匹配的失败处理规则,对所述视频进行转码处理。
[0013]优选地,所述失败处理规则,包括:
[0014]根据与所述转码失败类型标签所对应的失败类型相匹配的特定数据而设置的失败处理规则;
[0015]其中,所述特定数据包括转码脚本、转码参数和转码服务器信息。
[0016]优选地,根据该转码处理数据,生成该视频的转码失败类型标签,包括:
[0017]根据包含有特定转码处理数据片段的数据库,确定该转码处理数据所包含的所有转码处理数据片段中,是否存在与所述数据库中包含的特定转码处理数据片段匹配一致的转码处理数据片段;其中,所述数据库中包含的特定转码处理数据片段为从历次视频转码失败的转码处理数据中提取出的、能够表征转码失败类型的转码处理数据片段;
[0018]在判断结果为是时,根据所述匹配一致的转码处理数据片段所表征的转码失败类型,生成该视频的转码失败类型标签。
[0019]优选地,还包括:
[0020]对转码处理完毕的转码任务从所述再转码队列中删除,对转码处理失败的转码任务放入所述再转码队列末尾等待处理。
[0021]优选地,读取所述再转码队列中的所述转码任务中的所述转码失败类型标签,包括:
[0022]在按照所述再转码队列中的各转码任务的创建时间由先至后的顺序,依次执行所述再转码队列中的转码任务的过程中,在执行到包含所述转码失败类型标签的所述转码任务时,从包含所述转码失败类型标签的所述转码任务中读取所述转码失败类型标签。
[0023]为了解决上述技术问题,本申请还公开了一种基于转码失败的智能重试的系统,其特征在于,该系统包括:获取单元、设置单元以及处理单元,其中,
[0024]所述获取单元,用于监测到视频转码失败,获取该视频的转码处理数据;
[0025]所述设置单元,用于根据该转码处理数据,生成该视频的转码失败类型标签,将该转码失败类型标签置于该视频的转码任务中,将所述转码任务加入再转码队列;
[0026]所述处理单元,用于读取所述再转码队列中的所述转码任务中的所述转码失败类型标签,并采用与所述转码失败类型标签相匹配的失败处理规则,对所述视频进行转码处理。
[0027]优选地,所述失败处理规则,包括:
[0028]根据与所述转码失败类型标签所对应的失败类型相匹配的特定数据而设置的失败处理规则;
[0029]其中,所述特定数据包括转码脚本、转码参数和转码服务器信息。
[0030]优选地,所述设置单元,具体用于:
[0031]根据包含有特定转码处理数据片段的数据库,确定该转码处理数据所包含的所有转码处理数据片段中,是否存在与所述数据库中包含的特定转码处理数据片段匹配一致的转码处理数据片段;其中,所述数据库中包含的特定转码处理数据片段为从历次视频转码失败的转码处理数据中提取出的、能够表征转码失败类型的转码处理数据片段;[0032]在判断结果为是时,根据所述匹配一致的转码处理数据片段所表征的转码失败类型,生成该视频的转码失败类型标签。
[0033]优选地,所述设置单元,还用于:
[0034]对转码处理完毕的转码任务从所述再转码队列中删除,对转码处理失败的转码任务放入所述再转码队列末尾等待处理。
[0035]优选地,读取所述再转码队列中的所述转码任务中的所述转码失败类型标签,包括:
[0036]在按照所述再转码队列中的各转码任务的创建时间由先至后的顺序,依次执行所述再转码队列中的转码任务的过程中,在执行到包含所述转码失败类型标签的所述转码任务时,从包含所述转码失败类型标签的所述转码任务中读取所述转码失败类型标签。
[0037]与现有技术相比,本申请所述的一种基于转码失败的智能重试的方法和系统,达到了如下效果:
[0038]I)本申请对由于不同原因造成视频转码失败的转码任务,从相应的转码服务器中获取对应的转码处理时的处理数据,再通过与预置的规则比对,查找到本次视频转码失败的原因及其类型,以再转码队列的方式通过不同的转码服务器对失败的转码任务进行转码,有效解决了对转码失败的视频进行再转码时不断重复强制转码的问题。
[0039]2)本申请不会对转码失败的视频不断重复转码,有效降低了转码服务器的负载,并提升了针对视频转码失败进行处理的效率。
[0040]当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
【专利附图】

【附图说明】
[0041]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0042]图1是本申请实施例一所述的转码任务的调度方法的流程图。
[0043]图2是本申请实施例二所述的转码任务的调度方法的流程图。
[0044]图3是本申请实施例四所述的转码任务的调度系统的结构框图。
【具体实施方式】
[0045]如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
[0046]实施例一[0047]如图1所示,为本申请实施例一所述的一种基于转码失败的智能重试的方法,该方法包括:
[0048]步骤101,监测到视频转码失败,获取该视频的转码处理数据。
[0049]当转码服务器需要进行视频转码时,会通过调取相应的片源服务器中存储的视频进行转码处理,并建立相应的转码任务,在本实施例中,采用云构架的转码服务器进行转码处理,即各地用户均可以将视频资源上传到相应的片源服务器,在生成相应的转码任务发送到本实施例中的转码服务器中进行转码处理,经过转码处理后,其他各地区的用户便可通过计算机终端、移动终端或电视终端访问该视频网站观看或下载相应的视频资源。当然,对于本实施例中的转码服务器还可以是其他构架结构,并不构成对本申请的限定。
[0050]步骤101中,所述转码处理数据,具体是从对该视频进行转码处理的转码服务器中获取的转码处理数据。
[0051]其中,对于转码服务器来说,每天都需要处理大量的转码任务,由于视频质量、转码服务器状态、转码自适应等多种原因,造成视频转码失败,如:由于视频的质量参差不齐,某些视频中的音频受损,转码处理过程中不能对音频进行识别处理,从而导致转码失败。无论该视频转码成功还是失败,所述转码服务器对该视频的转码处理的全过程,都以所述转码处理数据的形式体现,即所述转码处理数据是整个转码过程的记录数据,其记录了该视频的属性信息(包括视频的码流、分辨率、时长等信息)、转码服务器的状态信息、转码自适应的状态信息等多种信息。
[0052]步骤102,根据该转码处理数据,生成该视频的转码失败类型标签。
[0053]步骤103,将所述转码失败类型标签置于该视频的转码任务中,将所述转码任务加入再转码队列。
[0054]对于步骤103,对所述转码失败的视频再进行转码(即转码重试)时,便可以将所述转码失败类型标签设置于视频转码失败的转码任务中,由于转码失败的所述视频数量较多,因此采用所述再转码队列以便进行统一管理和后续处理,即将具有所述转码失败类型标签的所述转码任务加入再转码队列。其中,所述再转码队列可以是预先生成的,也可以是监测到有视频转码失败时生成。
[0055]步骤104,读取所述再转码队列中的所述转码任务中的所述转码失败类型标签,并采用与所述转码失败类型标签相匹配的失败处理规则,对所述视频进行转码处理。
[0056]其中,读取所述再转码队列中的所述转码任务中的所述转码失败类型标签,包括:在按照所述再转码队列中的各转码任务的创建时间由先至后的顺序,依次执行所述再转码队列中的转码任务的过程中,在执行到包含所述转码失败类型标签的所述转码任务时,从包含所述转码失败类型标签的所述转码任务中读取所述转码失败类型标签。从而,最先加入所述再转码队列的所述转码任务,排列在该再转码队列的首位,并按照不同所述转码任务的加入时间一次排列,在进行转码处理时,排列在该再转码队列首位的所述转码任务将最先被处理,并按照该再转码队列的排列顺序依次处理后续的所述转码任务,保证了对多个转码任务的有序处理,不会出现处理混乱的现象。
[0057]实施例二
[0058]如图2所示,为本申请实施例二中所述的一种基于转码失败的智能重试的方法,该方法包括:[0059]步骤201,监测到视频转码失败,从相应的转码服务器中获取该视频的转码处理数据。
[0060]其中,所述转码处理数据,具体是从对该视频进行转码处理的转码服务器中获取的,记录有该视频的属性信息(包括视频的码流、分辨率、时长等信息)、转码服务器的状态信息、转码自适应的状态信息等多种信息的记录数据。
[0061]步骤202,根据该转码处理数据,生成该视频的转码失败类型标签。
[0062]其中,在步骤202中,根据该转码处理数据,生成该视频的转码失败类型标签,具体包括:根据包含有特定转码处理数据片段的数据库,确定该转码处理数据所包含的所有转码处理数据片段中,是否存在与所述数据库中包含的特定转码处理数据片段匹配一致的转码处理数据片段;其中,所述数据库中包含的特定转码处理数据片段为从历次视频转码失败的转码处理数据中提取出的、能够表征转码失败类型的转码处理数据片段;
[0063]在判断结果为是时,根据所述匹配一致的转码处理数据片段所表征的转码失败类型,生成该视频的转码失败类型标签。
[0064]步骤203,将所述转码失败类型标签置于该视频的转码任务中,将所述转码任务加入再转码队列。
[0065]步骤204,读取所述再转码队列中的所述转码任务中的所述转码失败类型标签,并采用与所述转码失败类型标签相匹配的失败处理规则,对所述视频进行转码处理。
[0066]所述失败处理规则,包括:根据与所述转码失败类型标签所对应的失败类型相匹配的特定数据而设置的失败处理规则。其中,所述特定数据包括转码脚本、转码参数和转码服务器信息。
[0067]所以,在步骤204中,对所述视频进行转码处理,具体为:识别所述转码失败类型标签后,根据该转码失败类型标签所对应的失败处理规则,使用转码脚本、转码参数或转码服务器对该转码任务进行转码处理。
[0068]具体来说,若在步骤202中,通过所述转码处理数据生成的视频的所述转码失败类型标签所对应的类型为:所述转码服务器中的转码脚本版本过低,造成所述视频转码失败,则在步骤204中,通过识别相应的所述转码失败类型标签,使用更新的所述转码脚本对所述转码任务进行转码处理。
[0069]例如:视频A具体是码流格式为720P的高清视频,该转码服务器中运行的转码脚本并不支持对高清视频的转码处理,所以,通过获取相应的转码处理数据后,查找对应的所述失败数据规则,可以生成失败类型为“转码脚本版本过低”的所述转码失败类型标签,将该转码失败类型标签置于视频A的转码任务中,准备对该视频A进行再转码。当转码服务器识别出该转码失败类型标签后,将对其中的所述转码脚本进行优化升级,升级后的转码脚本可以支持对高清视频的转码处理,再对该视频A进行转码,得到相应的视频成品。当然,还可以通过将该视频A的转码任务发送至特定转码服务器的方式进行转码处理,或其他可以支持高清视频转码的方式,并不构成对本申请的限定。
[0070]步骤205,转码处理成功则将该转码任务从所述再转码队列中删除,转码处理失败则将该转码任务放入所述再转码队列末尾继续等待处理。
[0071]对于步骤205,转码处理成功后,已经获得了相应的视频成品,便将所述转码任务从所述再转码队列中删除;转码处理失败后,再次获取所述转码处理数据,并查找对应的所述失败处理规则,再生产对应的所述转码失败类型标签,同时,为了保证后续转码任务的处理进度,将该转码任务放入所述再转码队列的末尾。
[0072]另外,在本实施例中,不同的转码任务的紧急程度不同,如:某些视频是新闻视频或直播视频,转码失败后,将造成视频不能及时播放。所以,在本实施例中,还可以通过所述转码处理数据的视频的属性信息中,提取该视频相应的业务信息,如:直播类、广告类、新闻类和/或影视剧类等。以确定该视频的优先级后,生成对应的优先级标签,从而,在所述再转码队列中,处理按照所述先入先出机制外,还根据所述优先级标签对该再转码队列中的转码任务进行排序。当然,上述内容可以根据实际应用中的需要进行调整,并不构成对本申请的限定。
[0073]实施例三
[0074]下面对所述基于转码失败的智能重试的方法的具体应用进行详细说明:
[0075]设定:转码服务器对视频A和B进行转码(首次转码均失败),其中,视频A属于直播类视频;视频B为影视剧类的高清视频。
[0076]基于转码失败的智能重试的过程为:
[0077]步骤一,监测视频A和B的转码状态,当监测到视频A和B转码失败后,分别从该转码服务器中获取视频A的转码处理数据a和视频B的转码处理数据b。
[0078]步骤二,根据转码处理数据a,获知该视频A转码失败的类型是“转码参数设置错误”,因此,生成类型为“转码参数设置错误”的转码失败类型标签置于视频A的转码任务中;
[0079]根据转码处理数据b,获知该视频B转码失败的类型是“转码脚本版本过低”,因此,生成类型为“转码脚本版本过低”的转码失败类型标签置于视频B的转码任务中;
[0080]将视频A和B的转码任务分别加入再转码队列,其中,视频A的转码任务先于视频B的转码任务加入所述再转码队列。
[0081]步骤三,读取所述再转码队列中的所述转码任务中的所述转码失败类型标签,并采用与所述转码失败类型标签相匹配的失败处理规则对视频A和B的转码任务进行转码处理。
[0082]具体来说:
[0083]对于视频A
[0084]由于视频A的转码任务排列在所述再转码队列的首位,而且由于视频A为直播类视频,需要快速处理,以便保证视频A可以及时播放,因此,采用特定转码服务器的方式对视频A的转码任务进行转码处理。所述特定转码服务器中相应的处理线程,对视频A的转码任务中的转码失败类型标签进行识别,识别出该转码失败类型标签的失败类型为“转码参数设置错误”后,调用符合该视频A的转码参数对视频A的转码任务进行转码,并将视频A转码成功。
[0085]此时,将所述视频A的转码任务从所述再转码队列中删除。
[0086]对于视频B
[0087]在视频A处理完成后,对该视频B的转码任务进行转码处理,由于视频B为影视剧类视频,不需要视频A的快速处理,便不用通过特定服务器的方式对视频B的转码任务进行处理。该转码服务器的转码线程对视频B的转码任务中的转码失败类型标签进行识别,识别出该转码失败类型标签的失败类型为“转码脚本版本过低”后,该转码服务器对其中的所述转码脚本进行优化升级,升级后的转码脚本可以支持对高清视频的转码处理,再对该视频B进行转码,并将视频B转码成功。
[0088]此时,将所述视频B的转码任务从所述再转码队列中删除。
[0089]另外,在本实施例中,如果单纯采用时间先后顺序的机制,并不能保证重要视频(如:直播类视频、新闻类视频)的优先转码,所以,可以对不同的视频根据其属性信息设置不同的优先级数值,从而直观地按照优先级的顺序对视频进行转码。
[0090]如:表一,所述视频属性信息对应的优先级数值
[0091]
【权利要求】
1.一种基于转码失败的智能重试的方法,其特征在于,包括: 监测到视频转码失败,获取该视频的转码处理数据; 根据该转码处理数据,生成该视频的转码失败类型标签; 将所述转码失败类型标签置于该视频的转码任务中,将所述转码任务加入再转码队列; 读取所述再转码队列中的所述转码任务中的所述转码失败类型标签,并采用与所述转码失败类型标签相匹配的失败处理规则,对所述视频进行转码处理。
2.如权利要求1所述的基于转码失败的智能重试的方法,其特征在于,所述失败处理规则,包括: 根据与所述转码失败类型标签所对应的失败类型相匹配的特定数据而设置的失败处理规则; 其中,所述特定数据包括转码脚本、转码参数和转码服务器信息。
3.如权利要求1所述的基于转码失败的智能重试的方法,其特征在于,根据该转码处理数据,生成该视频的转码失败类型标签,包括: 根据包含有特定转码处理数据片段的数据库,确定该转码处理数据所包含的所有转码处理数据片段中,是否存在与所述数据库中包含的特定转码处理数据片段匹配一致的转码处理数据片段;其中,所述数据库中包含的特定转码处理数据片段为从历次视频转码失败的转码处理数据中提取出的、能够表征转码失败类型的转码处理数据片段;` 在判断结果为是时,根据所述匹配一致的转码处理数据片段所表征的转码失败类型,生成该视频的转码失败类型标签。
4.如权利要求1所述的基于转码失败的智能重试的方法,其特征在于,还包括: 对转码处理完毕的转码任务从所述再转码队列中删除,对转码处理失败的转码任务放入所述再转码队列末尾等待处理。
5.如权利要求1所述的基于转码失败的智能重试的方法,其特征在于,读取所述再转码队列中的所述转码任务中的所述转码失败类型标签,包括: 在按照所述再转码队列中的各转码任务的创建时间由先至后的顺序,依次执行所述再转码队列中的转码任务的过程中,在执行到包含所述转码失败类型标签的所述转码任务时,从包含所述转码失败类型标签的所述转码任务中读取所述转码失败类型标签。
6.一种基于转码失败的智能重试的系统,其特征在于,该系统包括:获取单元、设置单元以及处理单元,其中, 所述获取单元,用于监测到视频转码失败,获取该视频的转码处理数据; 所述设置单元,用于根据该转码处理数据,生成该视频的转码失败类型标签,将该转码失败类型标签置于该视频的转码任务中,将所述转码任务加入再转码队列; 所述处理单元,用于读取所述再转码队列中的所述转码任务中的所述转码失败类型标签,并采用与所述转码失败类型标签相匹配的失败处理规则,对所述视频进行转码处理。
7.如权利要求6所述的基于转码失败的智能重试的系统,其特征在于,所述失败处理规则,包括: 根据与所述转码失败类型标签所对应的失败类型相匹配的特定数据而设置的失败处理规则;其中,所述特定数据包括转码脚本、转码参数和转码服务器信息。
8.如权利要求6所述的基于转码失败的智能重试的系统,其特征在于,所述设置单元,具体用于: 根据包含有特定转码处理数据片段的数据库,确定该转码处理数据所包含的所有转码处理数据片段中,是否存在与所述数据库中包含的特定转码处理数据片段匹配一致的转码处理数据片段;其中,所述数据库中包含的特定转码处理数据片段为从历次视频转码失败的转码处理数据中提取出的、能够表征转码失败类型的转码处理数据片段; 在判断结果为是时,根据所述匹配一致的转码处理数据片段所表征的转码失败类型,生成该视频的转码失败类型标签。
9.如权利要求6所述的基于转码失败的智能重试的系统,其特征在于,所述设置单元,还用于: 对转码处理完毕的转码任务从所述再转码队列中删除,对转码处理失败的转码任务放入所述再转码队列末尾等待处理。
10.如权利要求6所述的基于转码失败的智能重试的系统,其特征在于,读取所述再转码队列中的所述转码任务中的所述转码失败类型标签,包括: 在按照所述再转码队列中的各转码任务的创建时间由先至后的顺序,依次执行所述再转码队列中的转码任务的过程中,在执行到包含所述转码失败类型标签的所述转码任务时,从包含所述转码失 败类型标签的所述转码任务中读取所述转码失败类型标签。
【文档编号】H04N21/234GK103686204SQ201310714114
【公开日】2014年3月26日 申请日期:2013年12月20日 优先权日:2013年12月20日
【发明者】刘钧石, 边智, 魏伟, 鲍大磊, 王孝庆 申请人:乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1