CN103605709B - 一种分布式音视频处理装置及处理方法 - Google Patents
一种分布式音视频处理装置及处理方法 Download PDFInfo
- Publication number
- CN103605709B CN103605709B CN201310558558.7A CN201310558558A CN103605709B CN 103605709 B CN103605709 B CN 103605709B CN 201310558558 A CN201310558558 A CN 201310558558A CN 103605709 B CN103605709 B CN 103605709B
- Authority
- CN
- China
- Prior art keywords
- processing
- video
- voice data
- singulated
- video data
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明涉及一种分布式音视频文件处理系统,包括:输入处理单元,用于接收源视频文件,对所述源视频文件进行处理获得视频数据和音频数据,并分别将所述视频数据和所述音频数据进行分割处理;数个视频数据处理单元,分别用于对经分割后的视频数据进行处理;数个音频数据处理单元,分别用于对经分割后的音频数据进行处理;输出处理单元,用于对经处理后的视频数据和音频数据进行处理并输出;调度单元,用于协调所述输入处理单元、所述数个视频数据处理单元、所述数个音频数据处理单元及输出处理单元的工作。同时,本发明还提供一种分布式音视频文件处理方法和一种分布式音视频文件处理装置。
Description
技术领域
本发明涉及一种利用计算机或数据处理装置处理数据的装置和方法,尤其涉及一种利用分布式计算机或数据处理装置对音视频文件进行处理的装置和方法。
技术背景
随着网络和文化事业的发展,音视频资源极大丰富,对音视频文件的处理的需要也快速增长。
音视频文件处理的大致流程如下:首先将需处理的音视频文件解封装成为视频帧序列和音频帧序列;然后将视频帧序列和音频帧序列分别解码为RAW格式和PCM格式数据;对RAW格式和PCM格式数据进行处理;再将RAW格式和PCM格式的数据编码为所需格式的音频帧序列和视频帧序列;最后将音频帧序列和视频帧序列封装成需要的文件格式。
以上处理是通过计算机或计算机构成的数据处理装置来完成的,现有的这些计算机或数据处理装置是依靠本机的软硬件资源来实现对文件的处理。音视频文件处理的计算量庞大,对处理装置的运算能力和存储资源消耗很大,而且随着高清音视频文件的日益增多和处理需求的不断增大,依靠单机进行音视频文件处理的瓶颈问题日益突出,单机处理速度慢且容易发生系统崩溃。即使用户使用配置很高的计算机也难以保证处理的速度和稳定程度,尤其无法满足大批量和时间要求很高的处理任务。
鉴于现有技术中存在的以上问题,本发明提供了一种分布式处理系统。使用多台计算机或处理装置来实现并行处理,大大减少了处理所需的时间,同时降低了系统的处理压力,减少了系统崩溃的可能性。由于使用了完善的监测系统,处理的可靠性很高,完全可以满足对处理质量的要求。
发明内容
本发明的第一层面提供一种分布式音视频文件处理系统,包括:输入处理单元,用于接收源视频文件,对所述源视频文件进行处理获得视频数据和音频数据,并分别将所述视频数据和所述音频数据进行分割处理;数个视频数据处理单元,分别用于对经分割后的视频数据进行处理;数个音频数据处理单元,分别用于对经分割后的音频数据进行处理;输出处理单元,用于对经处理后的视频数据和音频数据进行处理并输出;调度单元,用于协调所述输入处理单元、所述数个视频数据处理单元、所述数个音频数据处理单元及输出处理单元的工作。
优选地,所述输入处理单元具有第一监控模块、第一处理模块和第一传输模块;各视频数据处理单元分别具有第二监控模块、第二处理模块和第二传输模块;各音频数据处理单元分别具有第三监控模块、第三处理模块和第三传输模块;所述输出处理单元具有第四监控模块、第四处理模块和第四传输模块;其中,所述第一、第二、第三和第四监控模块分别与所述调度单元进行通信连接,从所述调度单元接收相关指令,并各自将相关处理单元的运行状态报告给所述调度单元;所述第一传输模块分别与各所述第二传输模块和各所述第三传输模块通信连接,将需要处理的相应的视频数据和音频数据分别发送至各所述第二传输模块和各所述第三传输模块;所述第四传输模块分别与各所述第二传输模块和各所述第三传输模块通信连接,接收经处理后的视频数据和音频数据。
优选地,所述输入处理单元对所接收的源文件进行解封装,获得视频序列和音频序列,并分别将所述视频序列和所述音频序列进行分割处理。
优选地,所述输出处理单元在判断从各视频数据处理单元和各音频数据处理单元接收到经处理后的所有的视频数据和音频数据后,将所接到的视频数据和音频数据进行合并,并按照预定格式进行封装。
优选地,所述调度单元和所述第一、第二、第三和第四监控模块通过系统配置文件获取的地址信息进行通信。
优选地,所述第一、第二、第三和第四监控模块分别定期地将相应处理单元的运行状态信息发送给所述调度单元;所述调度单元根据所述运行状态信息维护系统配置文件,并将更新的系统配置文件分别发送给所述第一、第二、第三和第四监控模块。
优选地,系统配置文件的内容包括所述视频数据处理单元的数量、物理地址、运行状态和工作目录和所述音频数据处理单元的数量、物理地址、运行状态和工作目录。
优选地,当所述视频数据处理单元和所述音频数据处理单元的中一个的处理发生错误时,其相应的第二或第三监控模块向所述调度单元报告该错误;所述调度模块根据系统配置文件的设置确定重新执行发生错误的处理或忽略该错误。
优选地,所述输入处理单元获取所述源视频文件的解封装后的视频帧数、音频帧数和音视频编码格式,并将所述视频帧数、音频帧数和音视频编码格式发送给相应的视频数据处理单元和音频数据处理单元。
优选地,所述输入处理单元将包含经分割后的视频数据的数量和经分割后的音频数据的数量的分割信息发送给所述输出处理单元。
优选地,所述分割信息还包括各经分割后的视频数据和各经分割后的音频数据在源视频文件中的顺序信息。
优选地,所述输出处理单元根据所述分割信息建立关于所述经处理后的视频数据和所述经处理后的音频数据的映射表,根据收到的所述顺序信息标记相应的所述经处理后的视频数据和所述经处理后的音频数据在映射表中所处的位置,以此确定所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量是否相同;当所述输出处理单元判断所收到的所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量相同时,对所述经处理后的视频数据和所述经处理后的音频数据进行整合处理,获得经处理后的音视频文件;当所述输出处理单元判断所收到的所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量不相同时,基于所述映射表获得所缺失的相应的经分割后的视频数据或/和经分割后的音频数据,并将相应的经分割后的视频数据或/和经分割后的音频数据的缺失信息发送至所述调度单元。
优选地,当所述调度单元接收到所述缺失信息时,指示所述输入处理单元向相应的视频数据处理单元或/和相应的音频数据处理单元再次发送所缺失的相应的经分割后的视频数据或/和经分割后的音频数据,由相应的视频数据处理单元或/和相应的音频数据处理单元再次对所缺失的相应的经分割后的视频数据或/和经分割后的音频数据进行处理,并将再次处理后的视频数据或/和音频数据发送至所述输出处理单元。
优选地,当所述调度单元接收到所述缺失信息时,指示相应的视频数据处理单元或/和相应的音频数据处理单元再次启动对相应的经分割后的视频数据或/和经分割后的音频数据的处理进程,并将再次处理后的视频数据或/和音频数据发送至所述输出处理单元。
本发明的第二层面提供一种音视频文件处理方法,包括:输入处理步骤,通过输入处理单元接收源视频文件,对所述源视频文件进行处理获得视频数据和音频数据,并分别将所述视频数据和所述音频数据进行分割处理;视频数据处理步骤,分别使用数个视频数据处理单元对经分割后的视频数据进行处理;音频数据处理步骤,分别使用数个音频数据处理单元对经分割后的音频数据进行处理;输出处理步骤,通过输出处理单元对经处理后的视频数据和音频数据进行处理并输出;调度步骤,通过调度单元协调所述输入处理单元、所述数个视频数据处理单元、所述数个音频数据处理单元及输出处理单元的工作。
优选地,所述输入处理步骤包括:解封装步骤,对所接收的源文件进行解封装,获得视频序列和音频序列;分割步骤,分别将所述视频序列和所述音频序列进行分割处理。
优选地,在所述输出处理步骤中,在判断从各视频数据处理单元和各音频数据处理单元接收到经处理后的所有的视频数据和音频数据后,将所接到的视频数据和音频数据进行合并,并按照预定格式进行封装。
优选地,在所述调度步骤中,通过系统配置文件获取的地址信息进行通信。
优选地,在所述调度步骤中,相应处理单元的运行状态信息分别定期地被发送给所述调度单元,所述调度单元根据所述运行状态信息维护系统配置文件,并发送更新的系统配置文件。
优选地,系统配置文件的内容包括所述视频数据处理单元的数量、物理地址、运行状态和工作目录和所述音频数据处理单元的数量、物理地址、运行状态和工作目录。
优选地,在所述视频数据处理步骤中,当所述视频数据处理单元中的一个的处理发生错误时,或在所述音频数据处理步骤中,当所述音频数据处理单元中的一个的处理发生错误时,向所述调度单元报告该错误;所述调度模块根据系统配置文件的设置确定重新执行发生错误的处理或忽略该错误。
优选地,在所述输入处理步骤中,获取所述源视频文件的解封装后的视频帧数、音频帧数和音视频编码格式,并将所述视频帧数、音频帧数和音视频编码格式发送给相应的视频数据处理单元和音频数据处理单元。
优选地,在所述输入处理步骤中,将包含经分割后的视频数据的数量和经分割后的音频数据的数量的分割信息发送给所述输出处理单元。
优选地,所述分割信息还包括各经分割后的视频数据和各经分割后的音频数据在源视频文件中的顺序信息。
优选地,在所述输出处理步骤中,根据所述分割信息建立关于所述经处理后的视频数据和所述经处理后的音频数据的映射表,根据收到的所述顺序信息标记相应的所述经处理后的视频数据和所述经处理后的音频数据在映射表中所处的位置,以此确定所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量是否相同;当判断所收到的所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量相同时,对所述经处理后的视频数据和所述经处理后的音频数据进行整合处理,获得经处理后的音视频文件;当判断所收到的所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量不相同时,基于所述映射表获得所缺失的相应的经分割后的视频数据或/和经分割后的音频数据,并将相应的经分割后的视频数据或/和经分割后的音频数据的缺失信息发送至所述调度单元。
优选地,当所述调度单元接收到所述缺失信息时,指示所述输入处理单元向相应的视频数据处理单元或/和相应的音频数据处理单元再次发送所缺失的相应的经分割后的视频数据或/和经分割后的音频数据,由相应的视频数据处理单元或/和相应的音频数据处理单元再次对所缺失的相应的经分割后的视频数据或/和经分割后的音频数据进行处理,并将再次处理后的视频数据或/和音频数据发送至所述输出处理单元。
优选地,当所述调度单元接收到所述缺失信息时,指示相应的视频数据处理单元或/和相应的音频数据处理单元再次启动对相应的经分割后的视频数据或/和经分割后的音频数据的处理进程,并将再次处理后的视频数据或/和音频数据发送至所述输出处理单元。
本发明的另一层面提供一种分布式音视频文件处理装置,包括:数台第一服务器,分别用于对视频数据进行处理;数台第二服务器,分别用于对音频数据进行处理;第三服务器,用于对经处理后的视频数据和音频数据进行处理并输出;第四服务器,用于接收源视频文件,对所述源视频文件进行处理获得视频数据和音频数据,并分别将所述视频数据和所述音频数据进行分割处理,以及协调所述数台第一服务器、所述数台第二服务器和所述第三服务器之间的工作。
优选地,每一台第一服务器仅运行一个视频数据处理进程;每一台第二服务器仅运行一个音频数据处理进程。
优选地,所述第四服务器对所接收的源文件进行解封装,获得视频序列和音频序列,并分别将所述视频序列和所述音频序列进行分割处理。
优选地,所述第三服务器在判断从各第一服务器和各第二服务器接收到经处理后的所有的视频数据和音频数据后,将所接到的视频数据和音频数据进行合并,并按照预定格式进行封装。
优选地,所述第四服务器获取所述源视频文件的解封装后的视频帧数、音频帧数和音视频编码格式,并将所述视频帧数、音频帧数和音视频编码格式发送给相应的第一服务器和第二服务器。
优选地,所述第四服务器将包含经分割后的视频数据的数量和经分割后的音频数据的数量的分割信息发送给所述第三服务器。
优选地,所述分割信息还包括各经分割后的视频数据和各经分割后的音频数据在源视频文件中的顺序信息。
优选地,所述第三服务器根据所述分割信息建立关于所述经处理后的视频数据和所述经处理后的音频数据的映射表,根据收到的所述顺序信息标记相应的所述经处理后的视频数据和所述经处理后的音频数据在映射表中所处的位置,以此确定所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量是否相同;当所述第三服务器判断所收到的所述经处理后的视频数据的总数和所述经处理后音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量相同时,对所述经处理后的视频数据和所述经处理后的音频数据进行整合处理,获得经处理后的音视频文件;当所述第三服务器判断所收到的所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量不相同时,基于所述映射表获得所缺失的相应的经分割后的视频数据或/和经分割后的音频数据,并将相应的经分割后的视频数据或/和经分割后的音频数据的缺失信息发送至所述第四服务器。
优选地,当所述第四服务器接收到所述缺失信息时,向相应的第一服务器或/和相应的第二服务器再次发送所缺失的相应的经分割后的视频数据或/和经分割后的音频数据,由相应的第一服务器或/和相应的第二服务器再次对所缺失的相应的经分割后的视频数据或/和经分割后的音频数据进行处理,并将再次处理后的视频数据或/和音频数据发送至所述第三服务器。
优选地,当所述第四服务器接收到所述缺失信息时,指示相应的第一服务器或/和相应的第二服务器再次启动对相应的经分割后的视频数据或/和经分割后的音频数据的处理进程,并将再次处理后的视频数据或/和音频数据发送至所述第三服务器。
本发明的分布式处理系统和处理方法解决了单机进行处理时的速度瓶颈,可以大大缩短音视频文件处理所需的时间。由于建立了可靠的任务分配机制和纠错机制,可以保证其处理结果的可靠性。同时可以有效避免单机处理负荷过高时频繁出现死机等故障。其可扩展性很好,系统配置灵活,尤其适用于特别庞大的或大量的音视频文件的处理。
附图说明
图1为本发明实施方式涉及的分布式处理系统的结构框图;
图2为本发明实施方式涉及的分布式处理系统的输入处理模块的结构框图;
图3为本发明实施方式涉及的分布式处理系统的输出处理模块的结构框图;
图4为本发明实施方式涉及的分布式处理系统的处理流程示意图;
图5为本发明实施方式涉及的分布式处理系统的处理步骤S5的处理流程图;
图6为本发明实施方式涉及的分布式处理系统的信息文件的结构示意图;
图7为本发明实施方式涉及的分布式处理系统的分割后的音频和视频文件的结构示意图;
图8为本发明实施方式涉及的分布式处理系统的处理步骤S6的处理流程图;
图9为本发明实施方式涉及的分布式处理系统的映射表的结构示意图;
图10为本发明实施方式涉及的分布式处理系统的处理步骤S8中的视频文件处理流程图;
图11为本发明实施方式涉及的分布式处理系统的处理步骤S8中的音频文件处理流程图;
图12为本发明实施方式涉及的分布式处理系统的处理步骤S9中输出处理单元的处理流程图;
图13为本发明实施方式涉及的分布式处理系统的输出处理单元音、视频文件接收出错时的接收映射表结构示意图。
具体实施方式
下面根据附图所示实施方式阐述本项发明。此次公开的实施方式可以认为在所有方面均为例示,不具限制性。本发明的范围不受上述实施方式的说明所限,仅由权利要求书的范围所示,而且包括与权利要求范围具有同样意思及权利要求范围内的所有变形。
图1为分布式处理系统的结构框图。如图1所示,本实施方式的分布式系统包括调度模块(Dispatcher模块)1、输入处理单元2、数个视频处理单元3和4、数个音频处理单元5和6、输出处理单元7、监视模块(Watcher模块)8以及客户端模块(Client模块)9。其中,调度模块1用于协调整个系统的各部分的运行。输入处理单元2包括监控模块(Monitor模块)21、输入处理模块(Ingress模块)22和传输模块(Offer模块)23。优选地,上述监控模块21、输入处理模块22和传输模块(Offer模块)23之间可以采用消息队列通信。上述视频处理单元3(4)包括监控模块(Monitor模块)31(41)、视频处理模块(VP模块)32(42)和传输模块(Offer模块)33(43)。优选地,上述监控模块31(41)、视频处理模块32(42)和传输模块(Offer模块)33(43)之间可以采用消息队列通信。音频处理单元5(6)包括监控模块(Monitor模块)51(61)、音频处理模块(AP模块)52(62)和传输模块(Offer模块)53(63)。优选地,上述监控模块51(61)、音频处理模块52(62)和传输模块(Offer模块)53(63)之间可以采用消息队列通信。输出处理单元7包括监控模块(Monitor模块)71、输出处理模块(Egress模块)72和传输模块(Offer模块)73。优选地,上述监控模块71、输出处理模块72和传输模块(Offer模块)73之间可以采用消息队列通信。监视模块8与调度模块1共享内存并由此获得调度模块1中的所有信息。监视模块8将获取的信息发送给客户端模块9,由客户端模块9将其以图形界面显示给用户。上述调度模块1、上述输入处理单元2和上述监视模块(Watcher模块)8可以共用一台物理机器(服务器)。每一个视频处理单元3或4可以单独用一台物理机器(服务器),即:上述监控模块31、上述视频处理模块32和上述传输模块33可以共用一台物理机器(服务器),以及上述监控模块41、上述视频处理模块42和上述传输模块43可以共用一台物理机(服务器),其中每一台物理机器(服务器)可以每一次仅运行一个视频处理进程(VP进程);每一个音频处理单元5或6可以单独用一台物理机器(服务器),即:上述监控模块51、上述音频处理模块52和上述传输模块53可以共用一台物理机器(服务器),以及上述监控模块61、上述音频处理模块62和上述传输模块63共用一台物理机器(服务器),其中每一台物理机器(服务器)可以每一次仅运行一个音频处理进程(AP进程)。上述输出处理单元7可以单独用一台物理机器(服务器),即:上述监控模块71、上述输出处理模块72和上述传输模块73可以共用一台物理机器(服务器)。
上述调度模块1分别与上述输入处理单元2中的监控模块21、各个视频处理单元(视频处理单元3和4)中的监控模块(监控模块31和41)、各个音频处理单元(音频处理单元5和6)中的监控模块(监控模块51和61)及上述输出处理单元7中的监控模块71进行通信连接,用于协调整个系统中的输入处理单元2、视频处理单元3和4、音频处理单元5和6和输出处理单元7等各部分的运行。上述输入处理单元2中的传输模块23分别与各个视频处理单元(视频处理单元3和4)中的传输模块(传输模块33和43)和各个音频处理单元(音频处理单元5和6)中的传输模块(监控模块53和63)进行通信连接,用于向各个视频处理单元(视频处理单元3和4)中的传输模块(传输模块33和43)和各个音频处理单元(音频处理单元5和6)中的传输模块(传输模块53和63)分别传输相应的信息和数据。上述输出处理单元7中的传输模块73分别与各个视频处理单元(视频处理单元3和4)中的传输模块(传输模块33和43)和各个音频处理单元(音频处理单元5和6)中的传输模块(传输模块53和63)进行通信连接,用于从各个视频处理单元(视频处理单元3和4)中的传输模块(传输模块33和43)和各个音频处理单元(音频处理单元5和6)中的传输模块(传输模块53和63)分别接受相应的信息和数据。
图2为上述输入处理模块22的结构框图。如图2所示,上述输入处理模块22包括解封装模块221、输入数据处理模块222和数据存储模块223,其中上述解封装模块221对上述输入处理单元2所接受的源视频文件进行解封装,上述输入数据处理模块222对音视频文件进行处理,上述数据存储模块223用于存储音视频文件及相关信息。上述解封装模块221包括音视频文件格式判断单元2211、解封装选择单元2212和数个解封装单元2213、2214、2215……。其中,上述数个解封装单元(2213、2214、2215……)具有不同的格式,并且上述解封装选择单元2212可以根据上述音视频文件格式判断单元2211的判断结果从上述数个解封装单元中选择相应的解封装单元对上述源视频文件进行解封装,从而使得上述解封装模块221可以对应于不同的文件格式进行解封装。上述输入处理模块22能够获取所述源视频文件的封装格式信息,并将上述信息通过上述传输模块23、33、43、53、63发送给上述输出处理单元7。
图3为上述输出处理模块72的结构框图。如图3所示,上述输出处理模块72包括封装模块721、输出数据处理模块722和存储模块723。其中,上述存储模块723存储经过上述视频处理单元3和4及上述音频处理单元5和6处理后的音频文件和视频文件,上述输出数据处理模块722对经过上述视频处理单元3和4及上述音频处理单元5和6处理后的音频文件和视频文件进行处理,并将经上述输出数据处理模块722处理后的音频文件和视频文件输送至上述封装模块721。
上述封装模块721包括封装格式选择单元7211和数个具有不同的封装格式的封装单元7212、7213、7214……,其中上述封装格式选择单元7211根据上述传输模块73所接收到的封装格式信息从数个封装单元(7212、7213、7214……)中选择相应的封装单元进行封装,从而可以使得上述封装模块721对应于不同的封装格式的要求进行封装。
图4为本发明的分布式处理系统的处理流程示意图。下面结合图4来说明分布式处理系统的处理流程。操作人员开启各物理机器(服务器),启动上述分布式处理系统(步骤S1)。上述调度模块1读取系统文件(步骤S2)。优选地,在步骤S2中,上述调度模块1在指定目录读取系统配置文件(例如tvmccd.cfg),获取该进程的<Input>(输入)、<Server>(服务器)和<Port>(端口)等配置项,同时在<Input>项指定的目录(例如/opt/tvmccd/ingress/Dispatcher/Input)读取相应的文件(例如tvmccd.par文件和logo文件),根据相应文件(例如tvmccd.par和tvmccd.cfg文件)中的内容生成源视频文件处理指令,其中上述源视频文件处理指令可以包括源视频文件的分段数目和源视频文件名与ID对应的映射表文件(Map文件,例如tvmccd.map)。上述logo文件可以有多个,也可以没有logo文件。系统配置文件中记录有整个分布式系统的配置信息,如:各模块所在计算机的IP地址、使用的端口号、工作目录的位置、视频处理和音频处理模块的数量、任务分配的方法等。PAR文件中记录有待处理文件的文件名及处理后的文件名、处理后的音视频文件的编码格式、码率、帧率、分辨率等各项参数。LOGO文件记录的是用户需要在视频中加入的水印、字幕等的内容及其大小、位置等参数。与调度模块1同样的,系统中的其他模块也都从各自的指定目录中读取系统配置文件,从配置文件中获得系统中各模块的通信地址等信息,以此与需要通信的其他模块建立连接。上述调度模块1分别与上述输入处理单元2的监控模块21、各视频处理单元(3和4)的监控模块(31和41)、各音频处理单元的监控模块(51和61)和上述输出处理单元7的监控模块71之间建立通信连接(步骤S3)。优选地,在步骤S3中,上述调度模块1建立Socket监听(监听端口号Dispatcher_Port在系统配置文件中,比如tvmccd.cfg),等待上述各监控模块的连接请求。各处理单元按系统配置文件中的地址向调度模块1发出建立Socket连接的请求,一旦上述调度模块1监听到上述监控模块的Socket连接请求,接受上述各监控模块的连接请求并建立Socket链接,同时将上述相应的文件发送给对应的监控模块(监控模块21、31、41、51、61或71)。例如,将tvmccd.par和tvmccd.map文件发送给每一个监控模块,将logo文件发送给各视频处理单元(5和6)的监控模块(51和61)。
上述输入处理单元2的传输模块23与各视频处理单元(3和4)的传输模块(33和43)和各音频处理单元(5和6)的传输模块(53和63)建立通信连接,同时上述输出处理单元7的传输模块73与各视频处理单元(3和4)的传输模块(33和43)和各音频处理单元(5和6)的传输模块(53和63)建立通信连接(步骤S4)。上述输入处理单元2开始对源视频文件的处理(步骤S5)。
图5为上述步骤S5的处理流程图。如图5所示,上述输入处理单元2的输入处理模块22将源视频文件的处理进程的启动时间和名称等信息发送给上述监控模块21(步骤S51)。上述输入处理模块22在指定目录读取系统配置文件(比如tvmccd.cfg文件),获取相应的<Source>(源项) 、<Processed>(处理项)、<Failed>(错误项)、<Output>(输出项)和<Send>(发送项)等配置项(步骤S52)。上述输入处理模块22从上述<Source>项目录按顺序读取源视频文件(步骤S53),并由上述输入处理模块22的解封装模块221依次对上述源视频文件进行解封装(步骤S54)。如果源视频文件解封装成功(步骤S55:是),获取相应的音、视频帧序列,并将解封装成功的源视频文件从<Source>项目录移送至<Processed>目录和将解封装后的音、视频帧序列存储至上述存储模块223(步骤S56)。上述输入处理模块22的输入数据处理模块222对上述存储模块223中的音、视频帧序列进行处理,获取其相关信息(比如编码信息等),并将所获取的相关信息(比如编码信息等)写入信息文件(info文件)(步骤S57)。图6为信息文件的格式示意图。如图6中所示,信息文件中含有源文件ID、文件长度、编码类型等。本实施例中,视频信息文件以VI-文件ID.info的格式命名,其中还包含视频比特率、视频高度、视频宽度等信息;音频信息文件以AI-文件ID.info的格式命名,其中还包含音频比特率、采样率、声道数等信息。在步骤S57中,当info文件正在写时,info文件被写入<Output>目录,当info文件写完成并确认无误时,将info文件移送到<Send>目录。上述输入处理模块22的输入数据处理模块222基于所读取的系统配置文件(比如tvmccd.cfg文件)将上述存储模块223中的音视频帧序列分割成数份(比如以GOP段(画面组)为单位,将音视频帧序列分割成数份GOP文件和GOA(音频组)文件)(步骤S58)。图7为GOP或GOA文件的格式示意图。如图7中所示,分割后的每个GOP文件和GOA文件中包含其源文件ID、本GOP或GOA文件在源文件的所有的GOP或GOA文件中的序号、包含的帧数等信息以及帧数据部分。上述输入处理模块22的输入数据处理模块222将生成的GOP和GOA文件分别写入<Output>项目录,并当GOP和GOA文件写磁盘完成并确认无误时被移送至<Send>项目录,随后源文件由<Source>目录移送至<Processed>目录(步骤S59),同时将GOP和GOA的总数写入总数文件(total文件)(步骤S510)。在步骤S510中,当total文件正在写时,其被写入<Output>项目录,当total文件写完成并确认无误时,其被移送至<Send>项目录。在步骤S511中,将文件名(包括源文件和GOP、GOA文件的文件名)、文件ID、视频帧数、音频帧数、视频编码格式和音频编码格式发送给上述监控模块21。如果源视频文件解封装出错(步骤S55:否),上述输入处理单元2将上述解封装出错的源视频文件从<Source>项目录移送到<Failed>项目录(步骤S512),同时将出错的源视频文件ID发送给上述监控模块21(步骤S513)。
返回图4,在步骤S6中,上述输入处理单元2的监控模块21将上述文件名、文件ID、视频帧数、音频帧数、视频编码格式和音频编码格式等相关信息发送给上述调度模块1并进行必要的处理,同时上述输入处理单元2的传输模块23将上述<Send>目录下的info文件、GOP和GOA文件和total文件等数据发送到相应的视频处理单元3(4)和音频处理单元5(6)(步骤S6)。
图8为上述步骤S6的处理流程图。如图8所示,上述调度模块1接收到上述输入处理单元2发送的上述文件名、文件ID、视频帧数、音频帧数、视频编码格式和音频编码格式等相关信息,填写上述Map文件(参照图9)(步骤S61)。例如,如图9所示,上述调度模块1接收到上述输入处理单元2发送的上述源视频文件名称(Tvm.mp4和Tvm2.avi)和对应的文件ID(F01和F02)。例如,Tvm.mp4被分割为10个GOP文件和10个GOA文件,Tvm2.avi被分割为6个GOP文件和6个GOA文件。Tvm.mp4的10个GOP文件名称为F01-1.gop~F01-10.gop,GOA文件名为F01-1.goa~F01-10.goa;Tvm2.avi的6个GOP文件名称为F02-1.gop~F02-6.gop,GOA文件名为F02-1.goa~F02-6.goa。在已经记录了源文件名和文件ID的Map文件中对应地填入分割后的GOP和GOA文件的文件名。
在步骤S62中,上述调度模块1根据步骤S61中所生成的Map文件,对上述音视频文件进行分配。例如,参照图9,调度模块1将Tvm.mp4的前五个GOP文件F01-1.gop~F01-5.gop分配给视频处理单元3(VP1),后五个GOP文件F01-6.gop~F01-10.gop分配给视频处理单元4(VP2);将Tvm.mp4的前五个GOA文件F01-1.goa~F01-5.goa分配给音频处理单元5(AP1),后五个GOA文件F01-6.goa~F01-10.goa分配给音频处理单元6(AP2)。同样,将Tvm2.avi的GOP文件和GOA文件也分配给相应的音频和视频处理单元。如图9所示,以上分配信息被记录在Map文件中。
然后,将上述GOP和GOA文件的分配结果通知上述输入处理单元2(步骤S63)。上述输入处理单元2的传输模块23将上述输入处理模块22所生成的GOP和GOA文件按上述分配结果发送到相应的视频处理单元3或4和音频处理单元5或6中进行处理,并将上述<Send>目录下的info文件和total文件等相关信息发送到相应的视频处理单元3、4和音频处理单元5、6中(步骤S64)。
返回图4,在步骤S7中,上述调度模块1将所完成的Map文件、视频帧数、音频帧数、视频编码格式和音频编码格式等相关信息发送到相应的视频处理单元3、4和音频处理单元5、6以及输出处理单元7中。
在步骤S8中,上述视频处理单元3(4)的视频处理模块32(42)根据监控模块31(41)所接收到的Map文件、视频帧数和视频编码格式等相关信息和输送模块33(43)所接收到的视频文件和info文件等信息对上述GOP文件(视频文件)进行相应的处理,同时上述音频处理单元5(6)根据监控模块51(61)所接收到的Map文件、音频帧数和音频编码格式等相关信息和输送模块53(63)所接收到的音频文件和info文件等信息对上述GOA文件(音频文件)进行相应的处理,并将经过处理后的音视频文件发送至上述输出处理单元7。
图10为步骤S8中的视频文件处理流程图。在本实施方式中,视频处理单元3和视频处理单元4的视频文件处理流程相同,因此仅就视频处理单元3介绍视频文件处理流程。如图10所示,上述视频处理单元3的视频处理模块32将视频文件处理进程的启动时间和收到的视频文件的ID信息(例如收到了以下文件:F01-1.gop~F01-5.gop和F02-1.gop~F02-3.gop)发送给上述监控模块31(步骤S811)。上述监控模块31可以将上述启动时间和视频文件的ID信息反馈到上述调度模块1,使得系统能够监控上述视频处理单元3的处理进程状况。上述视频处理模块32在指定目录读取系统配置文件(tvmccd.cfg),获取上述视频处理单元3的处理进程的<Source>(源项) 、<Output>(输出项)和<Send>(发送项)等配置项(步骤S812),并在<Source>项目录读取相关信息(info文件)和视频文件(gop文件)(步骤S813)。如果<Source>项目录下有total文件,则上述视频处理模块32将上述total文件移送至<Send>项目录。然后,上述视频处理模块32根据监控模块31所接收到的视频编码格式信息选择相应的解码器对上述视频文件进行解码(步骤S814)。如果解码成功(步骤S815:是),上述视频处理模块32对上述经解码后的视频数据进行预定处理(步骤S816)。上述预定处理可以是视频帧率定制调节、向视频中添加滚屏信息、不同音视频文件的合并等。上述视频处理模块32根据监控模块31从调度模块1收到的处理后的文件的参数要求将经过处理后的视频数据进行编码,获取经处理后的视频文件(gop文件),并将正在输出的视频文件(gop文件)写到<Output>项目录,在写磁盘结束并校验无误后将该文件移送到<Send>项目录,由上述传输模块33输送至上述输出处理单元7(步骤S817)。
如果解码出错(步骤S815:否),并且该视频文件的解码次数n没有超过预定阈值a(步骤S818:否),则将上述解码次数n加1(步骤S819)并返回到步骤S814进行重新解码,如果该视频文件的解码次数n超过预定阈值a(步骤S818:是),则将解码出错的视频文件的ID信息发送给监控模块31(步骤S8110)。上述监控模块31将解码出错的视频文件的ID信息反馈给上述调度模块1,上述调度模块1可以选择让输入处理单元2向上述视频处理单元3再次发送该视频文件,或让输入处理单元2将该视频文件分配给其它视频处理单元进行处理;调度模块1也可以选择直接忽略该解码错误,并将错误信息输出给用户。
图11为步骤S8中的音频文件处理流程图。在本实施方式中,音频处理单元5和音频处理单元6的视频文件处理流程相同,因此仅就音频处理单元5介绍音频文件处理流程。如图11所示,上述音频处理单元5的音频处理模块52将音频文件处理进程的启动时间和音频文件的ID信息(例如收到了以下文件:F01-1.goa~F01-5.goa和F02-1.goa~F02-3.goa)发送给上述监控模块51(步骤S821)。上述监控模块51可以将上述启动时间和音频文件的ID信息反馈到上述调度模块1,使得系统能够监控上述音频处理单元5的处理进程状况。上述音频处理模块52在指定目录读取系统配置文件(tvmccd.cfg),获取上述音频处理单元5的处理进程的<Source>(源项) 、<Output>(输出项)和<Send>(发送项)等配置项(步骤S822),并在<Source>项目录读取相关信息(info文件)和音频文件(goa文件)(步骤S823)。如果<Source>项目录下有total文件,则上述音频处理模块52将上述total文件移送至<Send>项目录。然后,上述音频处理模块52根据监控模块51从上述调度模块1所接收到的音频编码格式信息选择相应的解码器对上述音频文件进行解码(步骤S824)。如果解码成功(步骤S825:是),上述音频处理模块52对上述经解码后的音频数据进行预定处理(步骤S826)。上述预定处理可以是音量自动调节、音量定制调节或声道处理等。上述音频处理模块52根据监控模块51从调度模块1收到的处理后的文件的参数要求将经过处理后的音频数据进行编码,获取经处理后的音频文件(goa文件),并将正在输出的音频文件(goa文件)写到<Output>项目录,在写磁盘结束并校验无误后将该文件移送到<Send>项目录,由上述传输模块33输送至上述输出处理单元7(步骤S827)。
如果解码出错(步骤S825:否),并且该音频文件的解码次数m没有超过预定阈值b(步骤S828:否),则将上述解码次数m加1(步骤S829)并返回到步骤S824进行重新解码,如果该音频文件的解码次数m超过预定阈值b(步骤S828:是),则将解码出错的音频文件的ID信息发送给监控模块51(步骤S8210)。上述监控模块51将解码出错的音频文件的ID信息反馈给上述调度模块1,上述调度模块1可以选择让输入处理单元2向上述音频处理单元5再次发送该音频文件,或让输入处理单元2将该音频文件分配给其它音频处理单元进行处理;调度模块1也可以选择直接忽略该解码错误,并将错误信息输出给用户。
返回图4,在步骤S9中,上述输出处理单元7根据上述监控模块71从上述调度模块1所接收到的相关信息对来自上述视频处理单元3(4)的视频文件和来自上述音频处理单元5(6)的音频文件进行处理,获得经处理后的音视频文件。
图12为步骤S9中上述输出处理单元7的处理流程图。如图12所示,上述输出处理单元7的输出处理模块72将输出处理单元7的启动时间及处理进程的名称发送给上述输出处理单元7的监控模块71(步骤S91)。上述输出处理模块72在指定目录读取系统配置文件(比如tvmccd.cfg),获取上述处理进程的配置项,例如<Source>(源项) 、<Output>(输出项)和<Finished>(完成项)等配置项(步骤S92),并且监控<Source>项目录的write_close事件(写入关闭事件),当有write_close事件到来时,获取write_close的文件的文件名,并记录最新的write_close事件的时刻(步骤S93)。由此,可以监控<Source>项目录最新收到的文件,如果收到由传输模块23经过传输模块33、43、53和/或63传输到传输模块73的total文件,就读取total文件中关于音频文件的总数信息和视频文件的总数信息,比如GOP文件的总数信息和GOA文件的总数信息,同时上述输出数据处理模块721获取音、视频文件(比如GOP和GOA文件),生成音、视频文件的接收映射表(步骤S94)。其中,上述音、视频文件的接收映射表的部分结构可以与步骤S61所生成的映射表的结构相同(参照图9和图13),并且上述所接收到的音频文件的总数信息和视频文件的总数信息以及所生成的接收映射表均可存储在上述输出处理模块72的存储模块723中。在步骤S95中,上述输出数据处理模块722获取音频文件的总数和视频文件的总数,判断上述源视频文件中的所有音、视频文件(GOP和GOA文件)是否均已接收(步骤S96)。当接收到的文件总数与total文件的信息不同时,说明还有音、视频文件(GOP和GOA文件)没有接收到。
如果上述输出数据处理模块722判断上述源视频文件中的所有音、视频文件(GOP和GOA文件)均已接收(步骤S96:是),则在上述输出处理模块72的封装模块721中进行封装处理(步骤S97)。如果封装成功(步骤S98:是),上述封装模块721将封装成功的新音视频文件输出到上述输出数据处理单元7的传输模块73(步骤S99)。如果封装出错(步骤S98:否),上述输出数据处理模块722判断尝试重新封装处理的次数M是否超出预定值B(步骤S914)。如果上述尝试重新封装处理的次数M没有超出预定值B(步骤S914:否),将M加1(步骤S915),并回到上述封装模块721再次尝试封装处理。如果上述尝试重新封装处理的次数M超出预定值B(步骤S914:是),将封装出错的音、视频文件的ID信息发送给上述输出处理单元7的监控模块71(步骤S916),上述监控模块71将上述封装错误信息和上述封装出错的音、视频文件的ID信息反馈给上述调度模块1(步骤S917)。上述调度模块1根据要求决定是否重新对上述源视频文件进行新一轮的处理,或者直接放弃对上述源视频文件进行新一轮的处理。
如果上述输出数据处理模块722判断上述源视频文件中的所有音、视频文件(GOP和GOA文件)没有被完全接收(步骤S96:否),则上述输出数据处理模块722判断等待没有被接收的音、视频文件的时间N是否超过预定阈值A(步骤S910)。如果等待没有被接收音、视频文件的时间N没有超过预定阈值A(步骤S910:否),则继续等待没有被接收的音、视频文件。如果等待没有被接收音、视频文件的时间N超过预定阈值A(步骤S910:是),则上述输出数据处理模块722检查上述音、视频文件的接收映射表,获得未收到的音频文件的ID信息和/或视频文件的ID信息等,并将其发送给上述输出处理单元7的监控模块71(步骤S911)。例如,如图13所示,上述输出数据处理模块722通过检查上述接收映射表发现Tvm.mp4的F01-4.goa和F01-6.gop两个文件在等待时间超过上述预定阈值A后仍没收到,上述输出数据处理模块722将未收到文件的文件ID发送给上述输出处理单元7的监控模块71。其中,上述等待时间可以由输出处理模块72读取到了某源文件的total文件起计算,也可以自该源文件的接收映射表被建立之时起计算。上述监控模块71将上述音、视频文件接收错误信息和未收到的音频和/或视频文件的ID信息反馈到上述调度模块1(步骤S912)。上述调度模块1根据上述监控模块71所反馈的上述音、视频文件接收错误信息和未收到的音频文件的ID信息和/或视频文件的ID信息可以命令上述输入处理单元2向相应的音频处理单元5(6)和/或视频处理单元3(4)重新发送上述未收到的音频文件和/或视频文件及相关信息,由相应的音频处理单元5(6)和/或视频处理单元3(4)对上述未收到的音频文件和/或视频文件进行重新处理(步骤S913)。调度模块1还可以将上述未收到的音频文件ID和/或视频文件ID及相关信息发送给音频处理单元5(6)和/或视频处理单元3(4),并且命令音频处理单元5(6)和/或视频处理单元3(4)在自己的工作目录下查找到未处理的该文件,重新进行处理后发送给输出处理单元7。
在上述实施方式中,上述输入处理模块22的输入数据处理模块222基于所读取的系统配置文件(比如tvmccd.cfg文件)对音视频帧序列进行分割。但是,本发明并不限于此,也可以是上述输入处理模块22的输入数据处理模块222基于来自上述调度模块1的原视频文件处理指令对音视频帧序列进行分割。
输入处理模块、视频处理模块、音频处理模块以及输出处理模块定时通过消息队列向各自的监控模块报告各自模块的工作状态、当前任务、已完成任务等,同时还将上述内容记入各自的日志文件。各监控模块定时将本处理单元的IP地址、系统负荷、网络状况、本进程状态以及从本单元的处理模块收到的上述信息发送给调度模块1。监视模块8定时与调度模块1分享上述信息,并通过客户端模块9处理后以图形界面显示给用户。
调度模块1利用各监控模块发来的信息维护配置文件,配置文件中为每个物理机器分配了一个状态属性,当该机器因掉电或断网暂时退出系统时,状态属性被设为不可用;当有新的物理机器加入系统时,用户指令调度模块1在配置文件中添加该机器的信息。配置文件中的信息发生变化后,调度模块1赋予其一个新的版本号,并立即将其发送至各控制模块。
如果系统运行中调度模块1掉电或者无响应,客户端模块9就无法从监视模块8获取数据,这种情况持续一定时间后,客户端模块9会通过提示框或警报声等方法提示用户排除故障。故障排除后,调度模块1重新读取配置文件与各监控模块建立连接,各监控模块根据各自的日志将未成功传送给调度模块1的信息重新传送。
如果某一监控模块停止工作,调度模块1在经过一定时间没有从该模块收到信息后判断该模块出现故障。故障原因可能是由断电或断网造成的物理故障也可能是该模块的进程无响应。调度模块1侦测与该监控模块的物理机器的连接是否正常(比如可以使用ping命令),如果不正常说明是物理故障,通过客户端模块9向用户发送提示。如果连接正常说明是该模块的进程无响应,则等待一定时间后再试,经过一定次数的尝试仍无法通信再通过客户端模块9向用户发送提示。
如果某一处理单元所在的物理机器掉电,重新通电后,该监控模块的处理单元重新初始化与其他模块建立连接。如果掉电的机器是输入处理单元、视频处理单元或音频处理单元所在的机器,已经完成处理的文件会被从<Source>项目录移送至<Processed>或<failed>等目录,因此,恢复后只要从<Source>项目录读取文件继续进行处理即可。如果掉电的机器是输出处理单元所在的机器,初始化后,输出处理模块扫描<Source>项目录,读取目录下的total文件,建立音、视频文件的接收映射表,并根据<Source>项目录下的GOP和GOA文件填写接收映射表。扫描的同时监视最新收到的文件,对<Source>项目录下的所有文件都完成上述操作后继续S93~S917的处理。如果某一处理单元所在的物理机器断网,当连接恢复时,调度模块1向其发送最新的配置文件,该单元的监控模块查询日志,并指令该单元的传输模块将<Send >目录下的文件传输给指定的处理单元。
如果监控模块的进程无响应后被重启,重启后首先与其他模块建立通信,然后在日志中查询与各模块的最后通信时间,要求调度模块1和对应的处理模块、传输模块重传该时间之后的信息。监控模块向调度模块1发送信息时都带有配置文件的版本号,因此,调度模块1发现信息中的配置文件过期会重新发送新的配置文件。监控模块对收到的重传的信息执行正常的操作。
如上所述,输入处理模块、视频处理模块、音频处理模块以及输出处理模块定时通过消息队列向各自的监控模块报告各自模块的工作状态,因此,当某个模块的进程无响应超过一定时间,对应的监控模块就会发现异常,如果等待一定时间不能恢复,监控模块就提醒用户重启该模块的进程或者自行重启该模块的进程。重启后,这些模块从各自的工作目录读取文件进行处理即可。
在本实施方式中,各物理机器通过局域网连接,各模块的地址为所在机器的IP地址和对应端口号,但各物理机器也可以通过广域网或高速总线等其他方式连接,只要可以赋予各模块相应的地址表示方式即可。
另外,在利用本发明的系统处理大量的小体积视频文件时,也可以省略分割音视频文件的步骤,让每个音视频处理模块独自处理一个源文件的音频或视频部分。
在本实施方式中,分布式系统用于处理音视频文件,但本系统改变相应模块的功能后也可以用于处理其他类型的数据,只要这种分块处理后再合并的处理流程不会对该数据的处理结果造成影响即可。
Claims (31)
1.一种分布式音视频文件处理系统,包括:
输入处理单元,用于接收源视频文件,对所述源视频文件进行处理获得视频数据和音频数据,并分别将所述视频数据和所述音频数据进行分割处理;
数个视频数据处理单元,分别用于对经分割后的视频数据进行处理;
数个音频数据处理单元,分别用于对经分割后的音频数据进行处理;
输出处理单元,用于对经处理后的视频数据和音频数据进行处理并输出;
调度单元,用于协调所述输入处理单元、所述数个视频数据处理单元、所述数个音频数据处理单元及输出处理单元的工作;其中,
所述输入处理单元将包含经分割后的视频数据的数量和经分割后的音频数据的数量的分割信息发送给所述输出处理单元;
所述分割信息还包括各经分割后的视频数据和各经分割后的音频数据在源视频文件中的顺序信息;
所述输出处理单元根据所述分割信息建立关于所述经处理后的视频数据和所述经处理后的音频数据的映射表,根据收到的所述顺序信息标记相应的所述经处理后的视频数据和所述经处理后的音频数据在映射表中所处的位置,以此确定所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量是否相同;
其中,当有新的音频处理单元和/或视频处理单元加入时,用户指令调度单元在配置文件中添加该单元的信息,调度单元更新配置文件的版本号,并将更新后的配置文件发送至系统的各单元。
2.根据权利要求1所述的音视频文件处理系统,其特征在于:
所述输入处理单元具有第一监控模块、第一处理模块和第一传输模块;
各视频数据处理单元分别具有第二监控模块、第二处理模块和第二传输模块;
各音频数据处理单元分别具有第三监控模块、第三处理模块和第三传输模块;
所述输出处理单元具有第四监控模块、第四处理模块和第四传输模块;
其中,所述第一、第二、第三和第四监控模块分别与所述调度单元进行通信连接,从所述调度单元接收相关指令,并各自将相关处理单元的运行状态报告给所述调度单元;所述第一传输模块分别与各所述第二传输模块和各所述第三传输模块通信连接,将需要处理的相应的视频数据和音频数据分别发送至各所述第二传输模块和各所述第三传输模块;所述第四传输模块分别与各所述第二传输模块和各所述第三传输模块通信连接,接收经处理后的视频数据和音频数据。
3.根据权利要求2所述的音视频文件处理系统,其特征在于:
所述输入处理单元对所接收的源文件进行解封装,获得视频序列和音频序列,并分别将所述视频序列和所述音频序列进行分割处理。
4.根据权利要求1所述的音视频文件处理系统,其特征在于:
所述输出处理单元在判断从各视频数据处理单元和各音频数据处理单元接收到经处理后的所有的视频数据和音频数据后,将所接到的视频数据和音频数据进行合并,并按照预定格式进行封装。
5.根据权利要求2所述的音视频文件处理系统,其特征在于:
所述调度单元和所述第一、第二、第三和第四监控模块通过系统配置文件获取的地址信息进行通信。
6.根据权利要求5所述的音视频文件处理系统,其特征在于:
所述第一、第二、第三和第四监控模块分别定期地将相应处理单元的运行状态信息发送给所述调度单元; 所述调度单元根据所述运行状态信息维护系统配置文件,并将更新的系统配置文件分别发送给所述第一、第二、第三和第四监控模块。
7.根据权利要求5所述的音视频文件处理系统,其特征在于:
系统配置文件的内容包括所述视频数据处理单元的数量、物理地址、运行状态和工作目录和所述音频数据处理单元的数量、物理地址、运行状态和工作目录。
8.根据权利要求5所述的音视频文件处理系统,其特征在于:
当所述视频数据处理单元和所述音频数据处理单元的中一个的处理发生错误时,其相应的第二或第三监控模块向所述调度单元报告该错误;
所述调度模块根据系统配置文件的设置确定重新执行发生错误的处理或忽略该错误。
9.根据权利要求1所述的音视频文件处理系统,其特征在于:
所述输入处理单元获取所述源视频文件的解封装后的视频帧数、音频帧数和音视频编码格式,并将所述视频帧数、音频帧数和音视频编码格式发送给相应的视频数据处理单元和音频数据处理单元。
10.根据权利要求1所述的音视频文件处理系统,其特征在于:
当所述输出处理单元判断所收到的所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量相同时,对所述经处理后的视频数据和所述经处理后的音频数据进行整合处理,获得经处理后的音视频文件;
当所述输出处理单元判断所收到的所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量不相同时,基于所述映射表获得所缺失的相应的经分割后的视频数据或/和经分割后的音频数据,并将相应的经分割后的视频数据或/和经分割后的音频数据的缺失信息发送至所述调度单元。
11.根据权利要求10所述的音视频文件处理系统,其特征在于:
当所述调度单元接收到所述缺失信息时,指示所述输入处理单元向相应的视频数据处理单元或/和相应的音频数据处理单元再次发送所缺失的相应的经分割后的视频数据或/和经分割后的音频数据,由相应的视频数据处理单元或/和相应的音频数据处理单元再次对所缺失的相应的经分割后的视频数据或/和经分割后的音频数据进行处理,并将再次处理后的视频数据或/和音频数据发送至所述输出处理单元。
12.根据权利要求10所述的音视频文件处理系统,其特征在于:
当所述调度单元接收到所述缺失信息时,指示相应的视频数据处理单元或/和相应的音频数据处理单元再次启动对相应的经分割后的视频数据或/和经分割后的音频数据的处理进程,并将再次处理后的视频数据或/和音频数据发送至所述输出处理单元。
13.一种分布式音视频文件处理方法,包括:
输入处理步骤,通过输入处理单元接收源视频文件,对所述源视频文件进行处理获得视频数据和音频数据,并分别将所述视频数据和所述音频数据进行分割处理; 视频数据处理步骤,分别使用数个视频数据处理单元对经分割后的视频数据进行处理;
音频数据处理步骤,分别使用数个音频数据处理单元对经分割后的音频数据进行处理;
输出处理步骤,通过输出处理单元对经处理后的视频数据和音频数据进行处理并输出;
调度步骤,通过调度单元协调所述输入处理单元、所述数个视频数据处理单元、所述数个音频数据处理单元及输出处理单元的工作;其中,
在所述输入处理步骤中,将包含经分割后的视频数据的数量和经分割后的音频数据的数量的分割信息发送给所述输出处理单元;
所述分割信息还包括各经分割后的视频数据和各经分割后的音频数据在源视频文件中的顺序信息;
在所述输出处理步骤中,根据所述分割信息建立关于所述经处理后的视频数据和所述经处理后的音频数据的映射表,根据收到的所述顺序信息标记相应的所述经处理后的视频数据和所述经处理后的音频数据在映射表中所处的位置,以此确定所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量是否相同;
其中,当有新的音频处理单元和/或视频处理单元加入时,用户指令调度单元在配置文件中添加该单元的信息,调度单元更新配置文件的版本号,并将更新后的配置文件发送至系统的各单元。
14.根据权利要求13所述的音视频文件处理方法,其特征在于:
所述输入处理步骤包括:解封装步骤,对所接收的源文件进行解封装,获得视频序列和音频序列;分割步骤,分别将所述视频序列和所述音频序列进行分割处理。
15.根据权利要求13所述的音视频文件处理方法,其特征在于:
在所述输出处理步骤中,在判断从各视频数据处理单元和各音频数据处理单元接收到经处理后的所有的视频数据和音频数据后,将所接到的视频数据和音频数据进行合并,并按照预定格式进行封装。
16.根据权利要求13~15中任一项所述的音视频文件处理方法,其特征在于:
在所述调度步骤中,通过系统配置文件获取的地址信息进行通信。
17.根据权利要求16所述的音视频文件处理方法,其特征在于:
在所述调度步骤中,相应处理单元的运行状态信息分别定期地被发送给所述调度单元,所述调度单元根据所述运行状态信息维护系统配置文件,并发送更新的系统配置文件。
18.根据权利要求16所述的音视频文件处理方法,其特征在于:
系统配置文件的内容包括所述视频数据处理单元的数量、物理地址、运行状态和工作目录和所述音频数据处理单元的数量、物理地址、运行状态和工作目录。
19.根据权利要求16所述的音视频文件处理方法,其特征在于:
在所述视频数据处理步骤中,当所述视频数据处理单元中的一个的处理发生错误时,或在所述音频数据处理步骤中,当所述音频数据处理单元中的一个的处理发生错误时,向所述调度单元报告该错误;
所述调度模块根据系统配置文件的设置确定重新执行发生错误的处理或忽略该错误。
20.根据权利要求13所述的音视频文件处理方法,其特征在于:
在所述输入处理步骤中,获取所述源视频文件的解封装后的视频帧数、音频帧数和音视频编码格式,并将所述视频帧数、音频帧数和音视频编码格式发送给相应的视频数据处理单元和音频数据处理单元。
21.根据权利要求13所述的音视频文件处理方法,其特征在于:
当判断所收到的所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量相同时,对所述经处理后的视频数据和所述经处理后的音频数据进行整合处理,获得经处理后的音视频文件;
当判断所收到的所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量不相同时,基于所述映射表获得所缺失的相应的经分割后的视频数据或/和经分割后的音频数据,并将相应的经分割后的视频数据或/和经分割后的音频数据的缺失信息发送至所述调度单元。
22.根据权利要求21所述的音视频文件处理方法,其特征在于:
当所述调度单元接收到所述缺失信息时,指示所述输入处理单元向相应的视频数据处理单元或/和相应的音频数据处理单元再次发送所缺失的相应的经分割后的视频数据或/和经分割后的音频数据,由相应的视频数据处理单元或/和相应的音频数据处理单元再次对所缺失的相应的经分割后的视频数据或/和经分割后的音频数据进行处理,并将再次处理后的视频数据或/和音频数据发送至所述输出处理单元。
23.根据权利要求21所述的音视频文件处理方法,其特征在于:
当所述调度单元接收到所述缺失信息时,指示相应的视频数据处理单元或/和相应的音频数据处理单元再次启动对相应的经分割后的视频数据或/和经分割后的音频数据的处理进程,并将再次处理后的视频数据或/和音频数据发送至所述输出处理单元。
24.一种分布式音视频文件处理装置,包括:
数台第一服务器,分别用于对视频数据进行处理;
数台第二服务器,分别用于对音频数据进行处理;
第三服务器,用于对经处理后的视频数据和音频数据进行处理并输出;
第四服务器,用于接收源视频文件,对所述源视频文件进行处理获得视频数据和音频数据,并分别将所述视频数据和所述音频数据进行分割处理,以及协调所述数台第一服务器、所述数台第二服务器和所述第三服务器之间的工作;其中,
所述第四服务器将包含经分割后的视频数据的数量和经分割后的音频数据的数量的分割信息发送给所述第三服务器;
所述分割信息还包括各经分割后的视频数据和各经分割后的音频数据在源视频文件中的顺序信息;
所述第三服务器根据所述分割信息建立关于所述经处理后的视频数据和所述经处理后的音频数据的映射表,根据收到的所述顺序信息标记相应的所述经处理后的视频数据和所述经处理后的音频数据在映射表中所处的位置,以此确定所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量是否相同;
其中,当有新的音频处理单元和/或视频处理单元加入时,用户指令调度单元在配置文件中添加该单元的信息,调度单元更新配置文件的版本号,并将更新后的配置文件发送至系统的各单元。
25.根据权利要求24所述的装置,其特征在于:
每一台第一服务器仅运行一个视频数据处理进程;
每一台第二服务器仅运行一个音频数据处理进程。
26.根据权利要求24所述的装置,其特征在于:
所述第四服务器对所接收的源文件进行解封装,获得视频序列和音频序列,并分别将所述视频序列和所述音频序列进行分割处理。
27.根据权利要求24所述的装置,其特征在于:
所述第三服务器在判断从各第一服务器和各第二服务器接收到经处理后的所有的视频数据和音频数据后,将所接到的视频数据和音频数据进行合并,并按照预定格式进行封装。
28.根据权利要求24所述的装置,其特征在于:
所述第四服务器获取所述源视频文件的解封装后的视频帧数、音频帧数和音视频编码格式,并将所述视频帧数、音频帧数和音视频编码格式发送给相应的第一服务器和第二服务器。
29.根据权利要求24所述的装置,其特征在于:
当所述第三服务器判断所收到的所述经处理后的视频数据的总数和所述经处理后音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量相同时,对所述经处理后的视频数据和所述经处理后的音频数据进行整合处理,获得经处理后的音视频文件;
当所述第三服务器判断所收到的所述经处理后的视频数据的总数和所述经处理后的音频数据的总数与所述经分割后的视频数据的数量和所述经分割后的音频数据的数量不相同时,基于所述映射表获得所缺失的相应的经分割后的视频数据或/和经分割后的音频数据,并将相应的经分割后的视频数据或/和经分割后的音频数据的缺失信息发送至所述第四服务器。
30.根据权利要求29所述的装置,其特征在于:
当所述第四服务器接收到所述缺失信息时,向相应的第一服务器或/和相应的第二服务器再次发送所缺失的相应的经分割后的视频数据或/和经分割后的音频数据,由相应的第一服务器或/和相应的第二服务器再次对所缺失的相应的经分割后的视频数据或/和经分割后的音频数据进行处理,并将再次处理后的视频数据或/和音频数据发送至所述第三服务器。
31.根据权利要求29所述的装置,其特征在于:
当所述第四服务器接收到所述缺失信息时,指示相应的第一服务器或/和相应的第二服务器再次启动对相应的经分割后的视频数据或/和经分割后的音频数据的处理进程,并将再次处理后的视频数据或/和音频数据发送至所述第三服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310558558.7A CN103605709B (zh) | 2013-11-12 | 2013-11-12 | 一种分布式音视频处理装置及处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310558558.7A CN103605709B (zh) | 2013-11-12 | 2013-11-12 | 一种分布式音视频处理装置及处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103605709A CN103605709A (zh) | 2014-02-26 |
CN103605709B true CN103605709B (zh) | 2017-10-24 |
Family
ID=50123932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310558558.7A Expired - Fee Related CN103605709B (zh) | 2013-11-12 | 2013-11-12 | 一种分布式音视频处理装置及处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103605709B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838878B (zh) * | 2014-03-27 | 2017-03-01 | 无锡天脉聚源传媒科技有限公司 | 一种分布式音视频处理系统及处理方法 |
CN104168435B (zh) * | 2014-08-15 | 2018-01-12 | 北京彩云动力教育科技有限公司 | 一种音频文件批量合并和播放的方法及系统 |
CN105407360A (zh) * | 2015-10-29 | 2016-03-16 | 无锡天脉聚源传媒科技有限公司 | 一种数据处理方法及装置 |
CN105302645B (zh) * | 2015-10-29 | 2018-10-26 | 无锡天脉聚源传媒科技有限公司 | 一种任务分发方法及装置 |
CN105404649A (zh) * | 2015-10-29 | 2016-03-16 | 无锡天脉聚源传媒科技有限公司 | 一种数据处理方法及装置 |
CN105338381A (zh) * | 2015-10-29 | 2016-02-17 | 无锡天脉聚源传媒科技有限公司 | 一种命令发送方法及装置 |
CN105354080B (zh) * | 2015-10-29 | 2018-11-20 | 无锡天脉聚源传媒科技有限公司 | 一种任务处理方法及装置 |
CN106328146A (zh) * | 2016-08-22 | 2017-01-11 | 广东小天才科技有限公司 | 一种视频的字幕生成方法及装置 |
CN108614829A (zh) * | 2016-12-12 | 2018-10-02 | 中移(杭州)信息技术有限公司 | 一种播放方法及终端 |
CN107038482A (zh) * | 2017-04-21 | 2017-08-11 | 上海极链网络科技有限公司 | 应用于ai算法工程化、系统化的分布式框架 |
CN110149518B (zh) * | 2018-02-12 | 2023-03-24 | 腾讯科技(深圳)有限公司 | 媒体数据的处理方法、系统、装置、设备以及存储介质 |
CN108449651B (zh) * | 2018-05-24 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 字幕添加方法、装置、设备及存储介质 |
CN110635864A (zh) * | 2019-10-09 | 2019-12-31 | 中国联合网络通信集团有限公司 | 参数解码方法、装置、设备及计算机可读存储介质 |
CN115955597B (zh) * | 2023-03-14 | 2023-05-12 | 深圳市英唐数码科技有限公司 | 一种多格式视频自适应切换方法、系统和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1328122A1 (en) * | 2002-01-11 | 2003-07-16 | Alcatel | Method and modules for transmitting and receiving compressed data |
CN101459848A (zh) * | 2008-12-26 | 2009-06-17 | 西安交通大学 | 一种分布式多格式数字视频转码结构设计方法 |
CN102685507A (zh) * | 2011-07-12 | 2012-09-19 | 天脉聚源(北京)传媒科技有限公司 | 一种mpeg-2传输流解码音视频同步方法和系统 |
CN103152606A (zh) * | 2013-03-19 | 2013-06-12 | 华为技术有限公司 | 视频文件处理方法及装置、系统 |
-
2013
- 2013-11-12 CN CN201310558558.7A patent/CN103605709B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1328122A1 (en) * | 2002-01-11 | 2003-07-16 | Alcatel | Method and modules for transmitting and receiving compressed data |
CN101459848A (zh) * | 2008-12-26 | 2009-06-17 | 西安交通大学 | 一种分布式多格式数字视频转码结构设计方法 |
CN102685507A (zh) * | 2011-07-12 | 2012-09-19 | 天脉聚源(北京)传媒科技有限公司 | 一种mpeg-2传输流解码音视频同步方法和系统 |
CN103152606A (zh) * | 2013-03-19 | 2013-06-12 | 华为技术有限公司 | 视频文件处理方法及装置、系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103605709A (zh) | 2014-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103605709B (zh) | 一种分布式音视频处理装置及处理方法 | |
CN103605710B (zh) | 一种分布式音视频处理装置及处理方法 | |
CN103838878B (zh) | 一种分布式音视频处理系统及处理方法 | |
CN111539726B (zh) | 区块链共识系统及方法 | |
CN102882829A (zh) | 一种转码方法及系统 | |
CN100559876C (zh) | 信息传送设备和信息传送方法 | |
CN103139634B (zh) | 云终端虚拟桌面视频播放方法 | |
US9184884B2 (en) | System and method for cloud-based live media ingestion and transcoding | |
CN102200901A (zh) | 图像转送方法、图像转送系统以及投影仪 | |
CN101447856A (zh) | 一种大容量文件传输方法 | |
CN102833585B (zh) | 一种泛终端视频传输系统和方法 | |
CN109874027A (zh) | 一种低延时手术示教直播方法及其系统 | |
CN104158909B (zh) | 一种分布式媒体处理方法及其系统 | |
CN110650203B (zh) | 数据传输方法、装置和系统、计算机存储介质及电子设备 | |
CN1469581A (zh) | 恢复保存的再生数据的恢复系统 | |
CN111796770B (zh) | 日志路由负载均衡实现方法及装置 | |
CN110851252A (zh) | 一种基于tsn架构的规约转换设备和规约转换方法 | |
CN107070535A (zh) | 一种提供全球天地一体卫星广播服务的方法 | |
CN103905843B (zh) | 一种规避连续i帧的分布式音视频处理装置和处理方法 | |
CN102857802B (zh) | 网络电视内容同步方法和系统 | |
WO2012174953A1 (zh) | 一种数据读、写方法及系统 | |
CN113992609B (zh) | 一种处理多链路业务数据乱序的方法及系统 | |
CN107995315B (zh) | 业务板间信息的同步方法、装置、存储介质及计算机设备 | |
CN114363289B (zh) | 一种基于规则引擎的虚拟网络智能调度系统 | |
CN115776486A (zh) | 一种基于交换节点分层组团的电子文件交换方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A distributed audio and video processing device and processing method Effective date of registration: 20210104 Granted publication date: 20171024 Pledgee: Inner Mongolia Huipu Energy Co.,Ltd. Pledgor: TVMINING (BEIJING) MEDIA TECHNOLOGY Co.,Ltd. Registration number: Y2020990001527 |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171024 Termination date: 20211112 |