实时流媒体集群转码系统转让专利

申请号 : CN201010216571.0

文献号 : CN101873482B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李伟孙军张一新孙思慧王兴东

申请人 : 上海交通大学

摘要 :

一种视频信息处理技术领域的实时流媒体集群转码系统,包括:用户控制模块、任务管理模块、系统调度模块、数据采集模块、数据推送模块、若干个音视频转码模块和内部数据传输模块,其中:任务管理模块包括:用户交互子模块、任务监控子模块、任务预估子模块及自学习优化子模块;系统调度模块包括:节点分配子模块、数据分发子模块和动态调整子模块;数据推送模块包括:数据拼接子模块、音视频复用子模块和数据输出子模块;音视频转码模块包括:转码器管理子模块、音视频编码子模块、音视频解码子模块及音视频数据处理子模块。本发明根据不同的需要以不同格式输出音视频数据,从而实现了高/标清流媒体数据的实时处理和转码。

权利要求 :

1.一种实时流媒体集群转码系统,包括:用户控制模块、任务管理模块、系统调度模块、数据采集模块、数据推送模块、若干个音视频转码模块和内部数据传输模块,其特征在于,用户控制模块与任务管理模块相连传输任务信息及码流分析信息,用户控制模块与系统调度模块相连传输系统状态信息,任务管理模块与数据采集模块相连传输采集指令及码流分析信息,任务管理模块与系统调度模块相连传输任务信息及任务状态,系统调度模块与内部数据传输模块相连传输数据分发指令及数据处理状况,系统调度模块与数据采集模块相连传输数据采集状态,系统调度模块与数据推送模块相连传输数据推送状态,系统调度模块与音视频转码模块相连传输任务及状态信息,数据采集模块、音视频转码模块和数据推送模块分别与内部数据传输模块相连传输码流数据;

所述的系统调度模块包括:节点分配子模块、数据分发子模块和动态调整子模块,其中:节点分配子模块与任务管理模块相连传输任务节点分配信息,数据分发子模块与内部数据传输模块相连传输分发调度指令及数据分发状态信息,动态调整子模块与数据分发子模块相连传输节点动态调整信息,数据分发子模块与数据采集模块相连传输采集状态信息,数据分发子模块与数据推送模块相连传输推送状态信息,节点分配子模块与音视频转码模块相连传输任务及状态信息。

2.根据权利要求1所述的实时流媒体集群转码系统,其特征是,所述的数据采集模块包括:数据输入子模块、码流分析子模块、流媒体解复用子模块、流媒体分割子模块和内部数据封装子模块,其中:数据输入子模块与任务管理模块相连传输数据采集指令信息,数据输入子模块分别与码流分析子模块和流媒体解复用子模块相连传输媒体数据,码流分析子模块与任务管理模块传输码流分析信息,流媒体解复用子模块与流媒体分割子模块相连传输音视频数据流,流媒体分割子模块与内部数据封装子模块相连传输分割后的音视频数据,数据输入子模块与系统调度模块相连传输采集状态信息,内部数据封装子模块与内部数据传输模块相连传输音视频数据包。

3.根据权利要求1所述的实时流媒体集群转码系统,其特征是,所述的内部数据传输模块包括:输入缓冲管理子模块、输出缓冲管理子模块和数据传输子模块,其中:数据传输子模块分别与输入缓冲管理子模块和输出缓冲管理子模块相连传输音视频数据包;输入缓冲管理子模块与系统调度模块相连传输输入缓冲区状态信息,输出缓冲管理子模块与系统调度模块相连传输输出缓冲区状态信息,数据传输子模块与系统调度模块相连传输调度指令信息;输入缓冲管理子模块与数据采集模块相连传输音视频数据包,数据传输子模块与音视频转码模块相连传输音视频数据包,输出缓冲管理子模块与数据推送模块相连传输音视频数据包。

4.根据权利要求1所述的实时流媒体集群转码系统,其特征是,所述的数据推送模块包括:数据拼接子模块、音视频复用子模块和数据输出子模块,其中:数据拼接子模块与内部数据传输模块相连传输音视频数据,音视频复用子模块与数据拼接子模块相连传输无缝拼接后的音视频数据,数据输出子模块与音视频复用子模块相连传输复用后的音视频数据,数据输出子模块与系统调度模块相连传输数据推送状态信息。

5.根据权利要求1所述的实时流媒体集群转码系统,其特征是,所述的音视频转码模块包括:转码器管理子模块、音视频编码子模块、音视频解码子模块及音视频数据处理子模块,其中:转码器管理子模块与系统调度模块相连传输任务及状态信息,音视频解码子模块和音视频编码子模块分别与内部数据传输模块相连传输音视频数据包,音视频数据解码子模块与音视频数据处理子模块相连传输解码后的音视频数据,音视频数据处理子模块与音视频编码子模块相连传输处理后的音视频数据。

6.根据权利要求1所述的实时流媒体集群转码系统,其特征是,所述的任务管理模块包括:用户交互子模块、任务监控子模块、任务预估子模块及自学习优化子模块,其中:用户交互子模块与用户控制模块相连传输用户控制指令及任务信息,用户交互子模块与任务监控子模块相连传输任务控制指令及任务状态信息,任务监控子模块与任务预估子模块相连传输任务预估信息,任务预估子模块与自学习优化子模块相连传输优化参数信息,任务监控子模块与系统调度模块相连传输预估结果信息,任务监控子模块与数据采集模块相连传输数据采集指令及码流信息。

说明书 :

实时流媒体集群转码系统

技术领域

[0001] 本发明涉及的是一种视频信息处理技术领域的系统,具体是一种实时流媒体集群转码系统。

背景技术

[0002] 目前的音视频编解码领域中存在着面对不同应用的国际标准,如MPEG-2(MovingPicture Exports Group,运动图像专家组)、MPEG-4、H.263及AVC(Advanced Video Coding,高级视频编码)等等,这些标准采用不同的编码方法和压缩技术对原始视频数据进行处理,将数据量庞大的原始图像序列转码为不同格式的压缩码流。这些标准被广泛的应用在数字电视,网络电视和手机电视等领域,但是面向不同应用的信源、传输系统和接收终端上存在着互异的技术标准,在仅支持某一种标准的系统或设备上,其他标准的视频信号很难正常处理。
[0003] 随着“三网融合”和多媒体技术快速发展,尤其是网络多媒体应用日趋普及,异构网络和终端不断融合,视频数据不得不可以根据不同的应用需求而采用不同的编码格式及参数配置。为了解决视频数据在不同平台的分发与共享的问题,目前一般采用转码技术,将源素材转换为目标平台需要的编码格式,并根据具体环境进行参数设置,以适应实际需要。
[0004] 目前常用的转码技术中,一种是采用频域转码,即根据原始数据格式及目标格式,对源视频素材进行部分解码,利用源素材的运动矢量进行运动重估计,然后利用估计量进行编码。这种方法计算量较小,转码效率较高,但这样方法需要对特定的编码格式进行方法设计,一般对运动向量和编码速率有一定的限制,灵活性不好,且对视频质量会产生一定的影响。另一种是采用像素域转码,即采用全解全编的级联方式,将源素材解码到像素域,根据需要对数据进行处理后,再编码为目标格式。这种方式的计算量较大,消耗计算资源较多,但对视频质量的损失较小,且对编码格式和参数的限制较少,编解码库相互独立,可以方便的搭建为各种组合,且可为其他视频处理提供支持。在采用集群系统的平台上,计算资源的消耗可以通过适当的增加节点数量来弥补。
[0005] 经对现有文献检索发现,中国专利申请号为:200710043983.7,专利名称为:以图像组结构为并行处理单元的视频集群转码系统,该系统包括:用户界面模块、音视频解复用模块、视频分割模块、集群任务调度模块、网络连接设备、视频转码模块、音频转码模块、视频合并模块、音视频复用模块,通过对原始多媒体码流进行解复用及分割、调度分发、并行转码、合并及复用等一系列处理转化为新的多媒体码流的系统结构和模块运行流程。但是该技术在对码流进行解复用、分割、合并、复用时,各个模块是顺序工作的,即该技术需要在解复用为音视频基本流后,根据执行终端数量将基本流分割成若干片段进行转码处理,然后将所有片段收集合并为新的音视频基本流,最后根据设置将音视频基本流复用输出,在每个转码任务中各个模块是分时工作的,因此输入输出的数据需为以文件形式存在的多媒体码流,无法满足流媒体实时转码输出的要求。

发明内容

[0006] 本发明的目的在于克服现有技术中的上述不足,提出了一种实时流媒体集群转码系统。本发明通过构建可灵活扩展的编解码库,根据用户设置对输入的高/标清流媒体数据进行实时处理和转码,实现了高/标清流媒体的实时转码,并且可以根据不同的需要输出不同格式的视频数据。
[0007] 本发明是通过以下技术方案实现的:
[0008] 本发明包括:用户控制模块、任务管理模块、系统调度模块、数据采集模块、数据推送模块、若干个音视频转码模块和内部数据传输模块,其中:用户控制模块与任务管理模块相连传输任务信息及码流分析信息,用户控制模块与系统调度模块相连传输系统状态信息,任务管理模块与数据采集模块相连传输采集指令及码流分析信息,任务管理模块与系统调度模块相连传输任务信息及任务状态,系统调度模块与内部数据传输模块相连传输数据分发指令及数据处理状况,系统调度模块与数据采集模块相连传输数据采集状态,系统调度模块与数据推送模块相连传输数据推送状态,系统调度模块与音视频转码模块相连传输任务及状态信息,数据采集模块、音视频转码模块和数据推送模块分别与内部数据传输模块相连传输码流数据。
[0009] 所述的任务管理模块包括:用户交互子模块、任务监控子模块、任务预估子模块及自学习优化子模块,其中:用户交互子模块与用户控制模块相连传输用户控制指令及任务信息,用户交互子模块与任务监控子模块相连传输任务控制指令及任务状态信息,任务监控子模块与任务预估子模块相连传输任务预估信息,任务预估子模块与自学习优化子模块相连传输优化参数信息,任务监控子模块与系统调度模块相连传输预估结果信息,任务监控子模块与数据采集模块相连传输数据采集指令及码流信息。
[0010] 所述的系统调度模块包括:节点分配子模块、数据分发子模块和动态调整子模块,其中:节点分配子模块与任务管理模块相连传输任务节点分配信息,数据分发子模块与内部数据传输模块相连传输分发调度指令及数据分发状态信息,动态调整子模块与数据分发子模块相连传输节点动态调整信息,数据分发子模块与数据采集模块相连传输采集状态信息,数据分发子模块与数据推送模块相连传输推送状态信息,节点分配子模块与音视频转码模块相连传输任务及状态信息。
[0011] 所述的数据采集模块包括:数据输入子模块、码流分析子模块、流媒体解复用子模块、流媒体分割子模块和内部数据封装子模块,其中:数据输入子模块与任务管理模块相连传输数据采集指令信息,数据输入子模块分别与码流分析子模块和流媒体解复用子模块相连传输媒体数据,码流分析子模块与任务管理模块传输码流分析信息,流媒体解复用子模块与流媒体分割子模块相连传输音视频数据流,流媒体分割子模块与内部数据封装子模块相连传输分割后的音视频数据,数据输入子模块与系统调度模块相连传输采集状态信息,内部数据封装子模块与内部数据传输模块相连传输音视频数据包。
[0012] 所述的内部数据传输模块包括:输入缓冲管理子模块、输出缓冲管理子模块和数据传输子模块,其中:数据传输子模块分别与输入缓冲管理子模块和输出缓冲管理子模块相连传输音视频数据包;输入缓冲管理子模块与系统调度模块相连传输输入缓冲区状态信息,输出缓冲管理子模块与系统调度模块相连传输输出缓冲区状态信息,数据传输子模块与系统调度模块相连传输调度指令信息;输入缓冲管理子模块与数据采集模块相连传输音视频数据包,数据传输子模块与音视频转码模块相连传输音视频数据包,输出缓冲管理子模块与数据推送模块相连传输音视频数据包。
[0013] 所述的数据推送模块包括:数据拼接子模块、音视频复用子模块和数据输出子模块,其中:数据拼接子模块与内部数据传输模块相连传输音视频数据,音视频复用子模块与数据拼接子模块相连传输无缝拼接后的音视频数据,数据输出子模块与音视频复用子模块相连传输复用后的音视频数据,数据输出子模块与系统调度模块相连传输数据推送状态信息。
[0014] 所述的音视频转码模块包括:转码器管理子模块、音视频编码子模块、音视频解码子模块及音视频数据处理子模块,其中:转码器管理子模块与系统调度模块相连传输任务及状态信息,音视频解码子模块和音视频编码子模块分别与内部数据传输模块相连传输音视频数据包,音视频数据解码子模块与音视频数据处理子模块相连传输解码后的音视频数据,音视频数据处理子模块与音视频编码子模块相连传输处理后的音视频数据。
[0015] 与现有技术相比,本发明的有益效果是:可以根据用户设置利用集群计算系统对输入的高/标清流媒体数据进行稳定可靠的实时转码,输出多种格式的流媒体数据,解决了像素域转码计算量过大而不能处理实时码流的问题。

附图说明

[0016] 图1是本发明的系统组成连接示意图;
[0017] 图2是实施例中内部数据封装子模块打包的包结构示意图。

具体实施方式

[0018] 以下结合附图对本发明的系统进一步描述:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0019] 实施例
[0020] 本实施例将原始音频格式为MPEG2L2(双声道,48kHz,96kbps)、视频格式为MPEG21080i(分辨率为1920X1080,帧率25fps,码率为16Mbps)、复用格式为MPEG2TS(传输码流)、以UDP(用户数据包协议)输入的实时码流转码为MPEG2AAC(双声道,48kHz,96kbps)、视频格式为H.264720p(分辨率为1280X720,帧率25fps,码率为4Mbps)、复用格式为MPEG2TS、以UDP实时输出的码流。
[0021] 如图1所示,本实施例包括:用户控制模块、任务管理模块、系统调度模块、数据采集模块、数据推送模块、若干个音视频转码模块和内部数据传输模块,其中:用户控制模块与任务管理模块相连传输任务信息及码流分析信息,用户控制模块与系统调度模块相连传输系统状态信息,任务管理模块与数据采集模块相连传输采集指令及码流分析信息,任务管理模块与系统调度模块相连传输任务信息及任务状态,系统调度模块与内部数据传输模块相连传输数据分发指令及数据处理状况,系统调度模块与数据采集模块相连传输数据采集状态,系统调度模块与数据推送模块相连传输数据推送状态,系统调度模块与音视频转码模块相连传输任务及状态信息,数据采集模块、音视频转码模块和数据推送模块分别与内部数据传输模块相连传输码流数据。
[0022] 本实施例中用户控制模块以WEB(网络)页面为终端,首先用户可以通过显示终端设置UDP的采集指令,用户控制模块将采集指令传输至数据采集模块并取回原始TS码流的分析结果。用户根据原始码流信息设置目标TS码流参数及节点数量范围、任务优先级等属性后,用户控制模块向任务管理模块下达转码任务。用户也可以通过用户控制模块查看任务及系统信息,管理转码任务及集群计算系统。
[0023] 所述的任务管理模块包括:用户交互子模块、任务监控子模块、任务预估子模块及自学习优化子模块,其中:用户交互子模块与用户控制模块相连传输用户控制指令及任务信息,用户交互子模块与任务监控子模块相连传输任务控制指令及任务状态信息,任务监控子模块与任务预估子模块相连传输任务预估信息,任务预估子模块与自学习优化子模块相连传输优化参数信息,任务监控子模块与系统调度模块相连传输预估结果及任务信息,任务监控子模块与数据采集模块相连传输数据采集指令及码流信息。本实施例中任务管理模块从用户控制模块获取任务信息,任务预估子模块首先对该任务进行预估,根据任务的计算复杂度及经自学习优化后的修正系数获取任务复杂度,然后将预估结果传输给系统调度模块来分配任务工作节点并获取节点分配情况。当节点分配正常时,任务管理模块将向系统调度模块下达任务开始指令。
[0024] 所述的系统调度模块包括:节点分配子模块、数据分发子模块和动态调整子模块,其中:节点分配子模块与任务管理模块相连传输任务节点分配信息,数据分发子模块与内部数据传输模块相连传输分发调度指令及数据分发状态信息,动态调整子模块与数据分发子模块相连传输节点动态调整信息,数据分发子模块与数据采集模块相连传输采集状态信息,数据分发子模块与数据推送模块相连传输推送状态信息,节点分配子模块与音视频转码模块相连传输任务及状态信息。本实施例中系统调度模块在接收到任务管理模块的任务信息及节点申请后,节点分配子模块根据节点工作状态及任务预估结果分配工作节点,本实施例中节点分配子模块将3台工作节点及一台备用节点分配给该任务,节点分配子模块将任务信息分发至各指定工作节点。
[0025] 所述的数据采集模块包括:数据输入子模块、码流分析子模块、流媒体解复用子模块、流媒体分割子模块和内部数据封装子模块,其中:数据输入子模块与任务管理模块相连传输数据采集指令信息,数据输入子模块分别与码流分析子模块和流媒体解复用子模块相连传输媒体数据,码流分析子模块与任务管理模块传输码流分析信息,流媒体解复用子模块与流媒体分割子模块相连传输音视频数据流,流媒体分割子模块与内部数据封装子模块相连传输分割后的音视频数据,数据输入子模块与系统调度模块相连传输采集状态信息,内部数据封装子模块与内部数据传输模块相连传输音视频数据包。本实施例中数据采集模块的数据输入子模块根据指令从UDP端口获取原始TS码流,码流分析子模块对数据进行分析获取TS码流信息。在任务开始后流媒体解复用子模块对TS码流进行解复用,获取MPEG2L2音频基本流及MPEG2视频基本流,流媒体分割子模块将MPEG2L2音频基本流和MPEG2视频基本流以GOP为基本单元分别进行快速无缝分割,然后内部数据封装子模块按照图2所示的包结构打包:根据流媒体的实时性要求,音视频数据的分割不应过长,以降低转码处理造成的整体延时,同时分割不可以造成音视频数据无法正常解码,即为无缝分割。数据包在Open-Gop(开放图像组)处需要向前冗余一个Gop的数据,并在包头结构中设置冗余标识和冗余帧数,以实现合并时的无缝合并。数据包头信息中需要标明负载类型,数据长度等信息。序列编号是为了在收集数据包时安排时间顺序进行重排序,打包时应从某一随机值开始后顺序加一。时间戳信息为音视频同步的重要讯息,从源数据中获得,以90Khz为单位。
[0026] 所述的内部数据传输模块包括:输入缓冲管理子模块、输出缓冲管理子模块和数据传输子模块,其中:数据传输子模块分别与输入缓冲管理子模块和输出缓冲管理子模块相连传输音视频数据包;输入缓冲管理子模块与系统调度模块相连传输输入缓冲区状态信息,输出缓冲管理子模块与系统调度模块相连传输输出缓冲区状态信息,数据传输子模块与系统调度模块相连传输调度指令信息;输入缓冲管理子模块与数据采集模块相连传输音视频数据包,数据传输子模块与音视频转码模块相连传输音视频数据包,输出缓冲管理子模块与数据推送模块相连传输音视频数据包。本实施例中内部数据传输模块的数据传输子模块根据调度指令把数据采集模块的音视频数据包以TCP(Transmission Control Protocol,传输控制协议)协议分发到指定节点的音视频转码模块,或把工作节点处理完成的数据包收集起来以TCP发送到数据推送模块。内部数据传输模块的输入缓冲管理子模块监控数据采集模块的状态,当系统处理速度太慢则选择性丢弃一些数据包,并将丢包状况反馈给系统调度模块;内部数据传输模块的输出缓冲管理子模块监控数据推送模块的状态,按照包结构中所含信息对进入数据推送模块的数据包进行分类和排序,同时为了保证实时性,当有某些包延时太多则选择性丢弃,并将丢包状况反馈给系统调度模块。
[0027] 所述的数据推送模块包括:数据拼接子模块、音视频复用子模块和数据输出子模块,其中:数据拼接子模块与内部数据传输模块相连传输音视频数据,音视频复用子模块与数据拼接子模块相连传输无缝拼接后的音视频数据,数据输出子模块与音视频复用子模块相连传输复用后的音视频数据,数据输出子模块与系统调度模块相连传输数据推送状态信息。本实施例中数据推送模块从内部数据传输模块获取数据包,分别对音视频数据进行快速无缝合并为MPEG2AAC和H.264的基本流,然后根据数据包的时间戳信息对两个基本流做同步处理,按照TS格式复用后以UDP方式输出。
[0028] 所述的音视频转码模块包括:转码器管理子模块、音视频编码子模块、音视频解码子模块及音视频数据处理子模块,其中:转码器管理子模块与系统调度模块相连传输任务及状态信息,音视频解码子模块和音视频编码子模块分别与内部数据传输模块相连传输音视频数据包,音视频数据解码子模块与音视频数据处理子模块相连传输解码后的音视频数据,音视频数据处理子模块与音视频编码子模块相连传输处理后的音视频数据。本实施例中音视频转码处理模块采用C++工厂类与插件管理类相结合的插件体系,构建出音视频编解码库和视频数据处理工具库,根据任务管理模块的任务指令,构建出丰富的音视频数据处理平台,对音视频数据包进行转码处理。在该实施例中,转码器管理模块从系统调度模块获取任务信息后,音视频编码子模块建立起MPEG2 AAC与H.264编码器,音视频解码子模块建立起MPEG2 Audio与MPEG2 Video解码器,音视频数据处理子模块建立起视频下变换。音视频解码子模块从内部数据传输模块获取数据包后,将音视频基本流解码后交由音视频数据处理子模块做处理,之后由音视频编码子模块编码为目标格式后重新打包,再由内部数据传输模块输出。
[0029] 本实施例中任务管理模块、系统调度模块、数据采集模块、数据推送模块和音视频转码模块都是采用的DELL Power Edge R710 2U机架式服务器,其余参数为:Intel Xeon5500 2.0GHz,DDR3 2*2048M,Gigabit LAN port*4,Windows Server 2003 sp3,各服务器间由千兆路由器相连。
[0030] 本实施例的优点:在对实时输入的高清MPEG2 TS码流转码为H.264 TS码流时,采用3个转码节点+1个备用节点实现可靠的实时转码,输出码流稳定,这是利用单机对高清流媒体转码的系统不可能达到的,也是现有技术所不具备的功能。