1.本发明涉及智能家居系统领域,尤其涉及一种基于智能家居的分布式视频转码系统。
背景技术:
2.随着科技的不断进步,越来越多的智能设备走进了千家万户,其中,智能家居系统也在不断地普及。智能家居系统是利用先进的计算机技术、网络通讯技术、智能云端控制、综合布线技术并融合个性需求,将与家居生活有关的各个子系统如安防、灯光控制、窗帘控制、煤气阀控制、信息家电、场景联动、地板采暖、健康保健、卫生防疫、安防保安等有机地结合在一起,通过网络化综合智能控制和管理,实现“以人为本”的全新家居生活体验。智能家居通过物联网技术将家中的各种设备(如视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等)连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。
3.由于视频编码格式和视频文件格式的种类众多,以及不同设备的硬件资源、处理能力不同,智能家居系统中的视频文件在传输时需要进行转码。视频转码是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求,转码本质上是一个先解码,再编码的过程。
4.现有的智能家居系统中,转码通常是由接收到视频的设备单独进行,这就导致了单节点负载过高,而其他节点闲置未用,造成大量的计算计算浪费和无谓的时间消耗。
5.现有技术如申请号为:cn202011109431.3的发明申请提出一种基于分布式转码服务器的视频转码系统,包括终端设备、多媒体资源应用平台、web服务器、资源管理服务器、转码调度服务器、job tracker服务器、分布式转码服务器和reduce task服务器。本发明的视频转码系统采用hadoop框架,通过转码调度服务器实现视频转码系统内部的调度管理以及数据收集,利用job tracker服务器、分布式转码服务器和reduce task服务器分别完成对待转码视频文件的分割、分片文件的并行转码以及转码完成后的分片文件的合并,提高了转码速度,使终端设备或者多媒体资源应用平台不会出现播放卡顿,为用户提供了良好的视频播放体验,非常适合大规模推广应用。
6.但是该方法仅适用于分布式服务器中,无法将智能家居中大量小节点的资源利用起来,从而导致大量算力的闲置。
7.因此,有必要提供一种基于智能家居的分布式视频转码系统来解决上述技术问题。
技术实现要素:
8.为解决上述技术问题,本发明一种基于智能家居的分布式视频转码系统,部署于智能家居系统中,所述智能家居系统包括若干计算节点;所述分布式视频转码系统部署在
各计算节点上,并根据节点用途划分为中心调度节点和转码执行节点,所述中心调度节点分别与各转码执行节点有线和/或无线通信连接。
9.具体的,所述中心调度节点用于系统资源分配、任务调度和视频合成,包括任务分解模块、视频合并模块和调度模块;所述任务分解模块自动将上传至中心调度节点的原始视频分割为多个分段视频基本流;所述调度模块用于为各转码执行节点分配对应的分段视频基本流,各转码执行节点对对应的分段视频基本流执行转码操作,得到转码分段视频基本流;所述视频合并模块用于接收来自各转码执行节点的转码分段视频基本流,并进行视频合并操作;得到转码视频基本流后,中心调度节点将转码视频基本流返回给用户并完成一次分布式视频转码操作。
10.作为更进一步的解决方案,所述任务分解模块通过如下步骤进行任务分解操作:
11.a1自动接收上传至中心调度节点待转码的原始视频;
12.a2读取原始视频长度;
13.a3根据标准分割长度对原始视频进行分割,得到分段视频基本流;
14.a4为每个分段视频基本流分配一条唯一索引码,建立索引目录;
15.a5完成任务分解,得到索引目录和索引目录对应的分段视频基本流。
16.作为更进一步的解决方案,所述标准分割长度为预设值,剩余分段长度不满一个单位标准分割长度时,以剩余分段长度作为分割长度;分段视频基本流的首尾部分与相邻分段视频基本流设置有具备相同数据片段的数据冗余区,所述分段视频基本流首部的数据冗余区与其前一个分段视频基本流尾部的数据冗余区的数据相同;分段视频基本流尾部的数据冗余区与其后一个视频流首部的数据冗余区的数据相同;所述索引码为对应分段视频基本流的hash值,所述索引目录为hash值对应的merkle树。
17.具体的,所述数据冗余区通过冗余起始位和冗余停止位在数据序列中进行标注;所述分段视频基本流未冗余部分通过图组起始位和图组停止位在数据序列中进行标注;所述数据序列在首尾两处标注有序列起始位和序列停止位。
18.作为更进一步的解决方案,各转码执行节点中还部署有负载采集模块;所述负载采集模块用于采集各转码执行节点的当前任务数与平均响应时间,并将当前任务数与平均响应时间实时发送给中心调度节点。
19.作为更进一步的解决方案,所述中心调度节点中还部署有权重计算模块;所述权重计算模块根据所述负载采集模块采集的当前任务数与平均响应时间计算各转码执行节点的权重;计算步骤如下:
20.b1通过负载采集模块采集各转码执行节点的当前任务数qn与平均响应时间tn;
21.其中,n为各转码执行节点序号;平均响应时间tn为最近k次执行转码相同数据量的平均时间,公式为:ti为第i次执行转码任务所花费时间;
22.b2通过权重公式计算各转码执行节点的权重wn;
23.其中,权重公式为:n为各转码执行节点序号、qn为当前任务数。
24.b3完成对所有转码执行节点的权重计算,并在新任务分配时,重新执行上述操作,
完成权重更新。
25.作为更进一步的解决方案,所述调度模块通过如下步骤进行任务调度分配:
26.c1接收来自任务分解模块的索引目录和索引目录对应的分段视频基本流;
27.c2权重计算模块执行权重计算步骤,得到各转码执行节点的权重;
28.c3将系统中所有转码执行节点的集合记为e={e1,e2,e3,
…
,en};
29.c4相应的转码执行节点的权重的集合记为w={w1,w2,w3,
…
,wn};
30.c5将集合w中的元素按从大到小的顺序排序,排序后的集合记为v={v1,v2,v3,
…
,vn}其中vj》v
j 1
;
31.c6排序后对应的转码执行节点集合记为f={f1,f2,f3,
…
,fn};
32.c7将步骤c1中的分段视频基本流按数据量从大到小排序,排序后的集合记为a={a1,a2,a3,
…
,an},其中aj》a
j 1
;
33.c8将集合a中的分段视频基本流依次分配给集合f中的转码执行节点。
34.作为更进一步的解决方案,所述转码执行节点预设有基于软件编程的转码器,并通过如下步骤进行视频转码:
35.d1接收中心调度节点分配的分段视频基本流;
36.d2接收分配的分段视频基本流对应hash值;
37.d3接收中心调度节点分配转码任务,其中,转码任务包括解码、编辑和编码;
38.d4通过hash值验证分段视频基本流的完整性;
39.d5若分段视频基本流验证为完整则继续执行视频转码步骤,若分段视频基本流验证为不完整则向中心调度节点报错,并停止执行视频转码步骤;
40.d6根据转码任务选择对应的转码器,其中,转码器包括解码器、编辑器和编码器;
41.d7通过转码器对分段视频基本流进行转码操作,得到转码分段视频基本流;
42.d8计算转码分段视频基本流的hash值并作为验证码,将转码前分段视频基本流的hash值作为索引码,将验证码、索引码和转码分段视频基本流打包,得到转码数据包;
43.d9将转码数据包上传至中心调度节点,完成视频转码。
44.作为更进一步的解决方案,所述视频合并模块通过如下步骤进行视频合并操作:
45.e1中心调度节点实时接收各转码执行节点上传的转码数据包;
46.e2中心调度节点对转码数据包进行解包,得到验证码、索引码和转码分段视频基本流;
47.e3中心调度节点验证转码分段视频基本流的完整性:计算转码分段视频基本流的hash值并与包内验证码进行比对;若一致则通过完整性验证并继续执行视频合并操作;若不一致则视为转码数据包损坏并返回步骤e1;
48.e4将各转码分段视频基本流按照索引目录进行匹配,匹配通过对比索引码比对进行,重复e1-e3步骤,直至索引目录各项均建立匹配,并得到拼接序列;
49.e5解析各转码分段视频基本流的数据序列,验证转码丢帧情况:
50.e6若图组起始位和图组停止位存在任一丢失,则视为主体丢帧,返回步骤e1并记录错误信号,否则执行下一步骤;
51.e7若序列起始位和序列停止位存在任一丢失,则视为冗余区丢帧并执行丢帧补偿步骤,否则执行冗余合成步骤;其中:
52.丢帧补偿步骤:
53.f1检查相邻数据冗余区是否完整,即相邻数据冗余区是否同时具备冗余起始位和冗余停止位;若是则执行下一步骤;若否,则无法进行丢帧补偿,返回步骤e1并记录错误信号;
54.f2将完整的数据冗余区衔接在相邻两个转码分段视频基本流之间,完成丢帧补偿步骤;
55.冗余合成步骤:
56.g1将拼接序列中相邻两个数据冗余区保留任一,另一数据冗余区进行去冗余;
57.g2将保留的数据冗余区衔接在相邻两个转码分段视频基本流之间,完成冗余合成步骤;
58.e8重复e5-e7步骤,直至各转码分段视频基本流均按照拼接序列进行拼接,完成视频合并,得到转码视频基本流。
59.作为更进一步的解决方案,所述中心调度节点中还部署有管理模块,所述管理模块用于管理各转码执行节点,包括各转码执行节点的注册、删除和监控;
60.注册是指新的转码执行节点向管理模块发送注册信息,管理模块接收注册信息,确认通过后,才将新的转码执行节点加入系统,下次分配任务时,为其分配数据量最小的视频片段;
61.删除是指能对已注册的转码执行节点进行节点删除,管理模块在删除前会记录已分配给该转码执行节点尚未完成的任务,并将尚未完成的任务发给调度模块,调度模块把尚未完成的任务重新放入待分配任务的队列;
62.监控是指能对已注册的监控转码执行节点进行状态监测,包括工作/空闲,正常/故障;若出现故障状态,管理模块在会记录已分配给该转码执行节点尚未完成的任务,将尚未完成的任务发给调度模块,调度模块把尚未完成的任务重新放入待分配任务的队列。
63.作为更进一步的解决方案,所述中心调度节点为冗余节点,包括主节点和备节点,正常工作时,主节点和备节点都接受指令,进行资源调度和任务分配,只是备节点的指令并不输出到转码执行节点,只有主节点的指令输出;主节点和备节点保持通信,当备节点检测到主节点故障时,则进行切换,备节点成为主节点,输出备节点的指令,同时主节点进入故障状态,屏蔽主节点的指令输出。
64.与相关技术相比较,本发明提供的用于一种基于智能家居的分布式视频转码系统具有如下有益效果:
65.1、本发明根据节点用途划分为中心调度节点和转码执行节点,充分利用智能家居系统中各计算节点的算力,且将任务进行分解,在单一节点出现故障时不会影响整个系统完成解码任务。此外,由于利用了很多空闲的计算节点,充分利用计算资源,避免了算力浪费并减少转码所需时间,在智能家居系统越发普及的今天,其也具备广阔的市场应用前景;
66.2、本发明通过任务分解模块对待转码的原始视频分解为若干分段视频基本流并建立索引目录,在后续的视频合成阶段便能通过索引目录将各个视频片段毫无差错地找出来,并按照正确的拼接顺序进行拼接;由于索引码采用的hash值,在为每个分段视频基本流分配一条唯一索引码的同时还可以用来验证数据的完整性和是否损坏,通过merkle树作为索引目录,merkle树大多用来进行完整性验证,比如分布式环境下,从多台主机获取数据,
怎么验证获取的数据是否正确呢,只要验证merkle树根哈希一致,即可;merkle树还可以用来对数据进行快速比对,快速定位到不一致的数据;
67.3、本发明通过在每一段分段视频基本流的首尾均设置有数据冗余区,主要是考虑到了分布式解码系统容易在首尾造成局部丢帧的情况,并在数据序列中对各段数据进行标注,从而能快速地寻找定位各段数据;
68.4、本发明各个转码执行节点的算力不同,计算速度不同,其能负载的任务量也不同;故需要负载采集模块来对各转码执行节点的实时计算情况进行采集,并通过权重计算模块计算各转码执行节点的任务分配权重,在有新任务加入时,有限分配权重排名高的转码执行节点,从而保证整个系统的负载均衡,不会出现单一节点过载或单一节点空闲的情况。
附图说明
69.图1为本发明提供的一种基于智能家居的分布式视频转码系统的较佳实施例系统示意图;
70.图2为本发明提供的一种基于智能家居的分布式视频转码系统的较佳实施例视频合并示意图一;
71.图3为本发明提供的一种基于智能家居的分布式视频转码系统的较佳实施例视频合并示意图二;
72.图4为本发明提供的一种基于智能家居的分布式视频转码系统的较佳实施例视频合并示意图三;
73.图5为本发明提供的一种基于智能家居的分布式视频转码系统的较佳实施例视频合并流程图。
具体实施方式
74.下面结合附图和实施方式对本发明作进一步说明。
75.如图1至图5所示,本发明一种基于智能家居的分布式视频转码系统,部署于智能家居系统中,所述智能家居系统包括若干计算节点;所述分布式视频转码系统部署在各计算节点上,并根据节点用途划分为中心调度节点和转码执行节点,所述中心调度节点分别与各转码执行节点有线和/或无线通信连接。
76.需要说明的是:传统的智能家居系统针对转码这类任务往往是通过单一节点计算,待转码成功后再将转码后视频进行播放或者提供给用户使用;这种方式受限于单一节点的计算能力且计算等待时间较长,当单一节点出现故障时,还容易造成任务丢失等问题。为此,本实施例提出一种基于智能家居的分布式视频转码系统,充分利用智能家居系统中各计算节点的算力,且将任务进行分解,在单一节点出现故障时不会影响整个系统完成解码任务。此外,由于利用了很多空闲的计算节点,充分利用计算资源,避免了算力浪费并减少转码所需时间,在智能家居系统越发普及的今天,其也具备广阔的市场应用前景。
77.具体的,所述中心调度节点用于系统资源分配、任务调度和视频合成,包括任务分解模块、视频合并模块和调度模块;所述任务分解模块自动将上传至中心调度节点的原始视频分割为多个分段视频基本流;所述调度模块用于为各转码执行节点分配对应的分段视
频基本流,各转码执行节点对对应的分段视频基本流执行转码操作,得到转码分段视频基本流;所述视频合并模块用于接收来自各转码执行节点的转码分段视频基本流,并进行视频合并操作;得到转码视频基本流后,中心调度节点将转码视频基本流返回给用户并完成一次分布式视频转码操作。
78.需要说明的是:中心调度节点的设置通常是采用智能家居系统内算力较强的计算节点担任,但也可以单独设置,仅需满足以下需求即可:
79.处理器:arm架构的主处理器
80.接口:具有标准的以太网接口、zigbee接口和wifi接口
81.操作系统:linux
82.人机交互界面:基于qt5开发
83.而智能家居系统中的各计算节点通常本身就具备一定的解码能力,故可以将这些具备解码能力的计算节点作为转码执行节点,当有转码任务时,中心调度节点将转码任务分解为子任务并发送给这些节点即可。
84.作为更进一步的解决方案,所述任务分解模块通过如下步骤进行任务分解操作:
85.a1自动接收上传至中心调度节点待转码的原始视频;
86.a2读取原始视频长度;
87.a3根据标准分割长度对原始视频进行分割,得到分段视频基本流;
88.a4为每个分段视频基本流分配一条唯一索引码,建立索引目录;
89.a5完成任务分解,得到索引目录和索引目录对应的分段视频基本流。
90.作为更进一步的解决方案,所述标准分割长度为预设值,剩余分段长度不满一个单位标准分割长度时,以剩余分段长度作为分割长度;分段视频基本流的首尾部分与相邻分段视频基本流设置有具备相同数据片段的数据冗余区,所述分段视频基本流首部的数据冗余区与其前一个分段视频基本流尾部的数据冗余区的数据相同;分段视频基本流尾部的数据冗余区与其后一个视频流首部的数据冗余区的数据相同;所述索引码为对应分段视频基本流的hash值,所述索引目录为hash值对应的merkle树。
91.需要说明的是:本实施例通过任务分解模块对待转码的原始视频分解为若干分段视频基本流并建立索引目录,在后续的视频合成阶段便能通过索引目录将各个视频片段毫无差错地找出来,并按照正确的拼接顺序进行拼接;由于索引码采用的hash值,在为每个分段视频基本流分配一条唯一索引码的同时还可以用来验证数据的完整性和是否损坏,通过merkle树作为索引目录,merkle树大多用来进行完整性验证,比如分布式环境下,从多台主机获取数据,怎么验证获取的数据是否正确呢,只要验证merkle树根哈希一致,即可。merkle树还可以用来对数据进行快速比对,快速定位到不一致的数据。比如分布式存储中,一份数据会有多个副本,并且分布在不同的机器上。为了保持数据一致性,需要进行副本同步,而首要的就是比对当前副本是否一致,如一致,则无需同步,如不一致,还需找出不一致的地方,然后进行同步。很明显,如果采用直接传输数据进行比对,非常低效,一般采用对数据进行哈希,传输哈希值进行对比的方法。为此,可以对每台机器需要比对的数据构造merkle树,如果根哈希一致,则数据相同,如果根哈希不一致,则通过merkle树快速检索到不一致的数据。此外,merkle树还能一定程度避免数据分叉等问题;总之,merkle树在本实施例分布式转码系统中有着诸多优势。
92.具体的,所述数据冗余区通过冗余起始位和冗余停止位在数据序列中进行标注;所述分段视频基本流未冗余部分通过图组起始位和图组停止位在数据序列中进行标注;所述数据序列在首尾两处标注有序列起始位和序列停止位。
93.需要说明的是:本实施例在每一段分段视频基本流的首尾均设置有数据冗余区,主要是考虑到了分布式解码系统容易在首尾造成局部丢帧的情况,并在数据序列中对各段数据进行标注,从而能快速地寻找定位各段数据。
94.作为更进一步的解决方案,各转码执行节点中还部署有负载采集模块;所述负载采集模块用于采集各转码执行节点的当前任务数与平均响应时间,并将当前任务数与平均响应时间实时发送给中心调度节点。
95.作为更进一步的解决方案,所述中心调度节点中还部署有权重计算模块;所述权重计算模块根据所述负载采集模块采集的当前任务数与平均响应时间计算各转码执行节点的权重;计算步骤如下:
96.b1通过负载采集模块采集各转码执行节点的当前任务数qn与平均响应时间tn;
97.其中,n为各转码执行节点序号;平均响应时间tn为最近k次执行转码相同数据量的平均时间,公式为:ti为第i次执行转码任务所花费时间;
98.b2通过权重公式计算各转码执行节点的权重wn;
99.其中,权重公式为:n为各转码执行节点序号、qn为当前任务数。
100.b3完成对所有转码执行节点的权重计算,并在新任务分配时,重新执行上述操作,完成权重更新。
101.需要说明的是:各个转码执行节点的算力不同,计算速度不同,其能负载的任务量也不同;故需要负载采集模块来对各转码执行节点的实时计算情况进行采集,并通过权重计算模块计算各转码执行节点的任务分配权重,在有新任务加入时,有限分配权重排名高的转码执行节点,从而保证整个系统的负载均衡,不会出现单一节点过载或单一节点空闲的情况。
102.作为更进一步的解决方案,所述调度模块通过如下步骤进行任务调度分配:
103.c1接收来自任务分解模块的索引目录和索引目录对应的分段视频基本流;
104.c2权重计算模块执行权重计算步骤,得到各转码执行节点的权重;
105.c3将系统中所有转码执行节点的集合记为e={e1,e2,e3,
…
,en};
106.c4相应的转码执行节点的权重的集合记为w={w1,w2,w3,
…
,wn};
107.c5将集合w中的元素按从大到小的顺序排序,排序后的集合记为v={v1,v2,v3,
…
,vn}其中vj》v
j 1
;
108.c6排序后对应的转码执行节点集合记为f={f1,f2,f3,
…
,fn};
109.c7将步骤c1中的分段视频基本流按数据量从大到小排序,排序后的集合记为a={a1,a2,a3,
…
,an},其中aj》a
j 1
;
110.c8将集合a中的分段视频基本流依次分配给集合f中的转码执行节点。
111.需要说明的是:调度模块即通过权重计算模块来确定分配排名的。且排名实时更
新,保证动态分配。
112.作为更进一步的解决方案,所述转码执行节点预设有基于软件编程的转码器,并通过如下步骤进行视频转码:
113.d1接收中心调度节点分配的分段视频基本流;
114.d2接收分配的分段视频基本流对应hash值;
115.d3接收中心调度节点分配转码任务,其中,转码任务包括解码、编辑和编码;
116.d4通过hash值验证分段视频基本流的完整性;
117.d5若分段视频基本流验证为完整则继续执行视频转码步骤,若分段视频基本流验证为不完整则向中心调度节点报错,并停止执行视频转码步骤;
118.d6根据转码任务选择对应的转码器,其中,转码器包括解码器、编辑器和编码器;
119.d7通过转码器对分段视频基本流进行转码操作,得到转码分段视频基本流;
120.d8计算转码分段视频基本流的hash值并作为验证码,将转码前分段视频基本流的hash值作为索引码,将验证码、索引码和转码分段视频基本流打包,得到转码数据包;
121.d9将转码数据包上传至中心调度节点,完成视频转码。
122.需要说明的是:通过转码后的hash值能验证转码分段视频基本流的完整性。
123.作为更进一步的解决方案,所述视频合并模块通过如下步骤进行视频合并操作:
124.e1中心调度节点实时接收各转码执行节点上传的转码数据包;
125.e2中心调度节点对转码数据包进行解包,得到验证码、索引码和转码分段视频基本流;
126.e3中心调度节点验证转码分段视频基本流的完整性:计算转码分段视频基本流的hash值并与包内验证码进行比对;若一致则通过完整性验证并继续执行视频合并操作;若不一致则视为转码数据包损坏并返回步骤e1;
127.e4将各转码分段视频基本流按照索引目录进行匹配,匹配通过对比索引码比对进行,重复e1-e3步骤,直至索引目录各项均建立匹配,并得到拼接序列;
128.e5解析各转码分段视频基本流的数据序列,验证转码丢帧情况:
129.e6若图组起始位和图组停止位存在任一丢失,则视为主体丢帧,返回步骤e1并记录错误信号,否则执行下一步骤;
130.e7若序列起始位和序列停止位存在任一丢失,则视为冗余区丢帧并执行丢帧补偿步骤,否则执行冗余合成步骤;其中:
131.丢帧补偿步骤:
132.f1检查相邻数据冗余区是否完整,即相邻数据冗余区是否同时具备冗余起始位和冗余停止位;若是则执行下一步骤;若否,则无法进行丢帧补偿,返回步骤e1并记录错误信号;
133.f2将完整的数据冗余区衔接在相邻两个转码分段视频基本流之间,完成丢帧补偿步骤;
134.冗余合成步骤:
135.g1将拼接序列中相邻两个数据冗余区保留任一,另一数据冗余区进行去冗余;
136.g2将保留的数据冗余区衔接在相邻两个转码分段视频基本流之间,完成冗余合成步骤;
137.e8重复e5-e7步骤,直至各转码分段视频基本流均按照拼接序列进行拼接,完成视频合并,得到转码视频基本流。
138.需要说明的是:转码分段视频基本流中间部分出现丢帧通常是转码器的问题,故选择合适的转码器便能避免这种情况发生,但是在分布式转码过程中,由于分布时序难以统一等问题,所以在转码分段视频基本流首尾部分很容易发生部分丢帧,进而造成拼接后的视频卡顿跳闪等问题发生。为此,本实施例通过数据冗余区并配合视频合并操作实现在正常情况下进行冗余合成步骤;在单一数据冗余区出现丢帧时进行丢帧补偿步骤;在两者均出现丢帧时,返回步骤e1并记录错误信号;中心调度节点在接到错误信号后可以再次分配该任务通过其他节点继续执行,或者通知专业人员处理报错。
139.作为更进一步的解决方案,所述中心调度节点中还部署有管理模块,所述管理模块用于管理各转码执行节点,包括各转码执行节点的注册、删除和监控;
140.注册是指新的转码执行节点向管理模块发送注册信息,管理模块接收注册信息,确认通过后,才将新的转码执行节点加入系统,下次分配任务时,为其分配数据量最小的视频片段;
141.删除是指能对已注册的转码执行节点进行节点删除,管理模块在删除前会记录已分配给该转码执行节点尚未完成的任务,并将尚未完成的任务发给调度模块,调度模块把尚未完成的任务重新放入待分配任务的队列;
142.监控是指能对已注册的监控转码执行节点进行状态监测,包括工作/空闲,正常/故障;若出现故障状态,管理模块在会记录已分配给该转码执行节点尚未完成的任务,将尚未完成的任务发给调度模块,调度模块把尚未完成的任务重新放入待分配任务的队列。
143.作为更进一步的解决方案,所述中心调度节点为冗余节点,包括主节点和备节点,正常工作时,主节点和备节点都接受指令,进行资源调度和任务分配,只是备节点的指令并不输出到转码执行节点,只有主节点的指令输出;主节点和备节点保持通信,当备节点检测到主节点故障时,则进行切换,备节点成为主节点,输出备节点的指令,同时主节点进入故障状态,屏蔽主节点的指令输出。
144.需要说明的是:中心调度节点是系统的关键节点,中心调度节点宕机可能引起整个系统失能。因此调度中心作冗余设计。
145.本实施例将视频分为多段,在多个终端上执行转码后再合并。一个终端只用完成整个任务的一部分,可以降低对单个终端的性能需求,加快转码速度。现有智能家居系统主要存在以下缺点:转码过程依赖于单个设备,对于一些数据量较大的视频,需要较长时间。同时系统中其他具有转码功能的设备处于空闲状态,没有有效利用系统资源。故本实施具备较好的实用性。
146.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
转载请注明原文地址:https://tc.8miu.com/read-510.html