具体实施方式
参见图2及图3;视频分析融合***将每一个经过转码并且在视频元数据库中生成记录的文件作为一个任务,以该文件在元数据库中的ID值来标识任务。每个任务有可能有以下几种状态:未处理状态、正分析状态(开始视频分析状态、开始音频分析状态、开始字幕分析状态、视频分析结束状态、音频分析结束状态、字幕分析结束状态)、可融合状态、可审核状态、可入库状态、处理完成状态。对于每个任务的处理也需要严格按照分析、融合、审核、入库流程进行,换句话说,每个任务必须经过未处理状态、正分析状态、可融合状态、可审核状态、可入库状态、处理完成状态才能完成整个的视频分析流程。
在操作视频分析融合***之初,必须对基本信息配置单元进行配置。基本信息配置单元所需要配置的内容主要包括以下几个方面:
1)视频元数据库的服务器名、数据库名、用户名、用户密码、最大连接数、最小连接数;
2)音频元数据库的服务器名、数据库名、用户名、用户密码、最大连接数、最小连接数;
3)图片元数据库的服务器名、数据库名、用户名、用户密码、最大连接数、最小连接数;
4)视频特征数据库的服务器名、数据库名、用户名、用户密码、最大连接数、最小连接数;
5)音频特征数据库的服务器名、数据库名、用户名、用户密码、最大连接数、最小连接数;
6)字幕特征数据库的服务器名、数据库名、用户名、用户密码、最大连接数、最小连接数;
7)核心数据库的服务器名、数据库名、用户名、用户密码、最大连接数、最小连接数;
8)视频特征FTP服务器的IP地址、用户名、用户密码、上传路径;
9)音频特征FTP服务器的IP地址、用户名、用户密码、上传路径;
10)字幕特征FTP服务器的IP地址、用户名、用户密码、上传路径;
11)流媒体FTP服务器的IP地址、用户名、用户密码、上传路径;
12)临时文件FTP服务器的IP地址、用户名、用户密码、上传路径;
13)用户是否需要进行审核操作;
以上各个参数是视频分析融合***所必需的***参数,是***访问各个数据库、FTP服务器的基础。
在运行视频分析融合***之前,还需要配置核心数据库,核心数据库包括基本视频信息、基本的任务信息、文件状态信息、访问元数据库信息。下面对各种信息做详细的介绍:
基本视频信息包括:节目ID、节目名称、导演、演员、产地、文件格式、文件大小、片长、节目地址、节目文件名、上载时间、上载地址、节目级别;
基本任务信息包括:任务ID、屏幕长度、屏幕宽度、帧率;
文件状态信息包括:任务ID、任务状态(任务状态包括未处理状态、正分析状态、可融合状态、可审核状态、可入库状态、处理完成状态);
访问元数据库信息包括:程序最后访问元数据库时间,默认时间为1900年1月1日0时0分0秒。
在视频分析融合***启动以后,设备管理单元就开始监视各个设备。设备管理单元所管理的设备如图3所示,该单元监视视频分析服务器、音频分析服务器、字幕分析服务器、核心数据库、视频元数据库、音频元数据库、字幕元数据库、视频特征数据库、音频特征数据库、字幕特征数据库、视频特征FTP服务器、音频特征FTP服务器、字幕特征FTP服务器、流媒体FTP服务器、临时文件FTP服务器。设备管理单元通过定时发送数据包给相应的分析服务器,来检查各个分析服务器是否在线,并且将该信息及时反应到界面。当设备管理单元在打开数据库或者连接FTP服务器出现问题时,也会及时将消息反应到界面,并且写入日志。
在视频分析融合***启动以后,视频分析融合***的集中控制单元就会定时轮循视频元数据库,以获得最新的转码文件信息。集中控制单元记录下当前时间,然后根据对元数据库的最后访问时间(从核心数据库查询得到)查询元数据库中该时间之后的所有记录,并且返回给集中控制单元。如果返回的结果集非空,则表示有新的转码文件产生,集中控制单元则将该文件作为新的任务,标识该任务的状态为开始状态,将该任务保存在本地数据库中,同时给界面发送更新消息,使界面及时更新。
用户界面显示所有任务的列表,并记录该任务的当前状态。当某一任务是未开始状态时,界面需要根据各个分析服务器的连接情况而显示用户可以发送的分析请求,举个例子,如果视频分析服务器在线,而音频分析服务器、字幕分析服务器不在线,则界面只允许用户发送视频分析请求。下面以用户发出一个视频分析请求为例,描述具体的分析过程:
首先,集中控制单元接收到该视频分析请求,并且检查视频分析服务器是否在线;
第二,集中控制单元将该任务组成一个数据包,发送给视频分析服务器,数据包的内容主要包括:任务ID、任务基本信息(屏幕长度、屏幕宽度、帧率)、文件的基本信息(供视频分析服务器显示);
第三,集中控制单元更新该任务的状态为开始视频分析状态;
第四,集中控制单元更新核心数据库中该任务的状态值为开始视频分析状态;
第五,集中控制单元更新界面上该任务的状态为“正在视频分析状态”;
考虑到对于一个任务,视频分析、音频分析、字幕分析的开始、结束时间并不相同,因此将任务状态值的低8位分别表示以上几种状态:
开始视频分析状态用0x01表示;
开始音频分析状态用0x02表示;
开始字幕分析状态用0x04表示;
视频分析结束状态用0x10表示;
音频分析结束状态用0x20表示;
字幕分析结束状态用0x40表示;
当任务状态变化时,就加上新的状态值。在本例子中,任务的状态变为0x01。
视频分析服务器在接收到一个新任务之后,就会处理该任务,当该任务处理完毕之后,视频分析服务器就将分析结果写入XML文件,并且上传到临时文件FTP服务器,之后给视频分析融合***发送任务结束数据包,该数据包的主要内容是:分析完毕的任务的ID。
视频分析融合***的集中控制单元如果接收到视频分析服务器发送来的分析结束消息,则将该任务的状态值加上0x10,同时判断该任务是否视频分析、音频分析、字幕分析均已结束,判断方法就是计算该任务的状态值的视频分析结束位、音频分析结束位、字幕分析结束位是否为1,如果视频分析、音频分析、字幕分析均已结束,则该任务的状态值应变为可融合状态。
集中控制单元需要将上面所计算出的状态值更新到核心数据库和界面上。
以上描述集中控制单元对视频分析、音频分析和字幕分析的控制流程。该流程保证了视频分析、音频分析、字幕分析完全结束之后才能够融合的整体流程。
在一个任务进入可融合状态之后,用户就可以对该任务发送融合请求。融合模块根据任务的ID到临时文件FTP服务器上下载相应的分析结果。为了方便访问,视频分析融合***对于所有生成文件的命名做了统一的规定:
视频分析的结果XML命名为:PID_video.xml;
音频(语音)分析的结果XML命名为:PID_audio.xml;
音频(拼音)分析的结果XML命名为:PID_voice.xml;
字幕分析的结果XML命名为:PID_text.xml;
经过融合后的视频分析的结果XML命名为:PID_DBvideo.xml;
经过融合后的语音分析的结果XML命名为:PID_DBaudio.xml;
经过融合后的拼音分析的结果XML命名为:PID_DBvoice.xml;
经过融合后的字幕分析的结果XML命名为:PID_DBtext.xml;
经过融合后的统一的结果XML命名为:PID_DBmerge.xml;
上面的PID代表该任务的ID;
视频分析结果XML文件中记载着如下内容:
1)所解析的文件的基本信息(包括媒体文件路径、媒体类型等);
2)场景信息(包括场景ID、场景开始时间、场景结束时间、场景关键帧ID、镜头ID);
3)镜头信息(包括镜头ID、镜头开始时间、镜头结束时间、镜头关键帧ID);
4)关键帧信息(包括关键帧ID、关键帧的特征数据)。
音频(语音)分析结果XML文件记载如下内容:
1)所解析的文件的基本信息(包括媒体文件路径、媒体类型等);
2)音频片断基本信息(包括片断开始时间、结束时间、音频类型、特征数据ID);
3)语音特征信息(特征数据ID、特征数据);
音频(拼音)分析结果XML文件记载如下内容:
1)所解析的文件的基本信息(包括媒体文件路径、媒体类型等);
2)音频片断基本信息(包括片断开始时间、结束时间、音频类型、特征数据ID);
3)拼音特征信息(特征数据ID、特征数据);
字幕分析结果XML文件记载如下内容:
1)所解析的文件的基本信息(包括媒体文件路径、媒体类型等);
2)字幕串基本信息(包括串开始时间、结束时间、特征数据ID);
3)字幕特征信息(字幕特征信息ID、字幕特征信息);
经过融合后的视频分析的结果XML记载如下内容:
1)所解析的文件的基本信息(包括媒体文件路径、媒体类型等);
2)场景信息(包括场景ID、场景开始时间、场景结束时间、场景关键帧ID、镜头ID);
3)镜头信息(包括镜头ID、镜头开始时间、镜头结束时间、镜头关键帧ID);
4)关键帧信息(包括关键帧ID、关键帧的特征数据)。
经过融合后的语音分析的结果XML记载如下内容:
1)所解析的文件的基本信息(包括媒体文件路径、媒体类型等);
2)场景信息(包括场景ID、场景开始时间、场景结束时间、镜头ID);
3)镜头信息(包括镜头ID、镜头开始时间、镜头结束时间、语音特征信息ID);
4)语音特征信息(包括语音特征信息ID、语音特征信息)。
经过融合后的拼音分析的结果XML记载如下内容:
1)所解析的文件的基本信息(包括媒体文件路径、媒体类型等);
2)场景信息(包括场景ID、场景开始时间、场景结束时间、镜头ID);
3)镜头信息(包括镜头ID、镜头开始时间、镜头结束时间、拼音特征信息ID);
4)拼音特征信息(包括拼音特征信息ID、拼音特征信息)。
经过融合后的字幕分析的结果XML记载如下内容:
1)所解析的文件的基本信息(包括媒体文件路径、媒体类型等);
2)场景信息(包括场景ID、场景开始时间、场景结束时间、镜头ID);
3)镜头信息(包括镜头ID、镜头开始时间、镜头结束时间、字幕特征信息ID);
4)字幕特征信息(包括字幕特征信息ID、字幕特征信息)。
经过融合后的统一的结果XML记载如下内容:
1)所解析的文件的基本信息(包括媒体文件路径、媒体类型等);
2)场景信息(包括场景ID、场景开始时间、场景结束时间、镜头ID,场景特征数据),其中场景特征数据包括场景关键帧信息、场景音频特征数据信息、场景拼音特征数据信息、场景字幕特征数据信息;
3)镜头信息(包括镜头ID、镜头开始时间、镜头结束时间、镜头特征数据),其中镜头特征数据包括镜头关键帧信息、镜头音频特征数据信息、镜头拼音特征数据信息、镜头字幕特征数据信息;
融合过程就是将视频分析、音频分析、字幕分析所生成的XML文件经过解析、提取场景镜头信息、优化、进而形成融合后文件。各个融合后文件均包括场景和镜头信息,这样在检索过程中,只要查询条件与其中某一类特征信息相匹配,就可以知道该信息所在的文件路径和在文件中的具***置。
以上介绍的分析、融合流程均是计算机自动完成的,而审核流程就需要人来参与场景、镜头信息的划分。审核流程是可选流程,用户可以通过对基本配置信息单元的配置而选择是否进入审核流程,如果用户选择不进入审核流程,则在融合流程之后任务自动转换为可入库状态,如果用户选择进入审核流程,则在融合流程之后任务转换为可审核状态。
审核流程首先将从流媒体FTP服务器上下载当前需要处理的媒体文件,然后经过抽帧程序顺次抽出所有帧,分批显示在审核界面上。用户可以通过对视频帧的比较,判断出视频文件的场景、镜头信息。审核流程为用户提供了增加、删除、平移场景和镜头信息的操作,用户可以对融合后的场景、镜头信息进行微调、细化。审核流程将用户所做的修改保存起来,进而形成各种融合后的XML文件。
审核流程之后,集中控制单元将任务的状态变为可入库状态,同时将该状态值更新到核心数据库和视频分析融合界面。
可入库流程将融合后的XML文件分别上传到视频特征FTP服务器、音频特征FTP服务器、字幕特征FTP服务器,然后调用视频特征数据库、音频特征数据库、字幕特征数据库的控制接口将XML文件保存在各个特征数据库中,完成入库操作。
完成入库流程之后,集中控制单元将任务的状态变为处理完成状态,同时将该状态值更新到核心数据库和视频分析融合界面。
参照其示例性实施用例本发明已经被具体的显示和描述,本领域的普通技术人员将会理解,在不脱离所附权利要求所定义的本发明的精神和范围的情况下,可对其进行形式和细节的各种改变。