专利名称:一种流媒体切换台的制作方法
技术领域:
本发明涉及多媒体领域,尤其涉及一种流媒体切换台。
背景技术:
互联网、通信网与有线电视网络的三网融合已经成为全球的趋势,互联网在各宽带运营商的竞争下正在向宽带时代挺进。同时宽带网络的竞争最终将是宽带应用的竞争, 由此诞生的基于宽带网络的流媒体技术正日益受到人们的关注。它推动了互联网整体架构的革新,转变了传统互联网呆板的内容表现形式,赋予宽带应用更多的娱乐性和互动性,必将成为未来宽带网络的主流技术。流媒体是指在互联网上以数据流的方式实时发布音频、视频多媒体信息流,客户端实时收到流媒体,无须等待整个文件下载完毕后再播放,可以一边解码播放前面传送过来的数据包,一边下载后续的数据包,从而节省了用户的时间。而矩阵的概念引用自线性代数,一般指在多路输入的情况下有多路的输出选择, 形成矩阵结构,即每一路输出都可与不同的输入信号“短接”,每路输出只能接通某一路输入,但某一路输入都可(同时)接通不同的输出。传统广电系统中所使用的矩阵切换系统,其输入输出信号都是SDI (Serial Digital hterface,数字串行接口)或者 CVBS(Composite Video Broadcast Signal,复合视频广播信号)。随着三网融合大环境的全面铺开,视频会议、网络直播、视频点播、网络电视台等多种新媒体业务快速发展。这些新媒体新应用与传统业务相比,其共同点都是对视音频信号进行各种处理(采集、编辑、播出等),业务流程大同小异;但在信号类型上,两者却有本质的区别传统业务的输入输出实时信号都是SDI信号;而新媒体业务的输入输出实时信号却是各种标准的流媒体信号,比如RTMP(Real Time Messaging Protocol,实时消息传送协议)、RTSP(Real Time Streaming Protocol,实时流传输协议)以及 HHlXHyperl^xt Transfer Protocol,超文本传输协议)等。目前,如果要使实时流媒体信号能够像传统SDI 信号那样进行MXN的矩阵切换,则需要完成“流媒体转换为SDIJf SDI进行矩阵切换,将 SDI转换为流媒体发布”的多个环节,其系统复杂度很高,而且每路输入信号需要对应一个独立的“流媒体转SDI”硬件,硬件成本极高。
发明内容
本发明要解决的技术问题是如何在新媒体领域实现传统SDI信号切换台的作用, 同时完成对多种流媒体信号的输入输出转换。为了解决上述问题,本发明提供了一种流媒体切换台,包括
多个输入模块,分别对应于不同协议格式,用于接收所对应的协议格式的流媒体数据并解码;
多个处理模块,分别对应于不同协议格式,用于对解码后的流媒体数据进行处理,并按照所对应的协议格式进行编码后输出;
4控制模块,用于建立或切换所述输入模块和处理模块之间的连接,使每个所述处理模块同一时刻最多接收一个所述输入模块的信号,每个所述输入模块在同一时刻将信号输出给一个或多个所述处理模块,或不输出给任一处理模块。进一步地,所述控制模块还用于提供一个用户界面;所述控制模块通过从所述用户界面接收的指令建立或切换所述输入模块和处理模块。进一步地,所述输入模块包括 输入连接器、信号源端口 ;
所述信号源端口包括输入适配器和解码器;
所述输入适配器用于当确定输入的信号源后,根据该信号源的实时流格式创建一个对应的输入连接器,并将该输入连接器和所述信号源端口绑定;所述输入适配器同一时刻将最多一个输入连接器与所述信号源端口绑定;
所述输入连接器与所对应的信号源建立连接,用于从信号源采集实时流数据,供所述信号源端口使用;
所述信号源端口用于从所绑定的输入连接器接收实时流数据,按照对应的协议格式进行解包和解码,并输出解码后的数据。进一步地,所述输入适配器通过实例化一个插件模块来创建所述输入连接器;
当所述输入适配器解除一输入连接器同输入源端口的绑定后,该输入连接器断开同信号源的连接,并释放相关资源。
进一步地,所述处理模块包括
信号处理通道、一个或者多个输出子模块;
所述各输出子模块在同一时刻最多与一个信号处理通道绑定,用于对绑定的信号处理通道处理后的流媒体数据进行相应协议格式的编码后输出到接入的输出设备;
所述信号处理通道在同一时刻至少绑定一个输出子模块,用于对解码后的数据进行基带处理,处理后输出给绑定的输出子模块。进一步地,所述信号处理通道包括
输入源选定逻辑子模块、基带处理子模块和单帧缓冲器;
所述控制模块通过所述输入源选定逻辑子模块将处理模块的输入源设置为一输入模
块;
所述基带处理子模块用于对所连接的输入模块输出的数据进行基带处理; 所述单帧缓冲器用于缓存基带处理后的一帧数据,并输出给所述输出子模块。进一步地,所述基带处理子模块包括
帧率定时器,用于根据所连接的输入模块输出数据的帧率进行初始化,每次定时时间到达时,从所连接的输入模块所输出的数据队列中弹出首帧,用该帧去覆盖所述单帧缓冲器中的数据,同时修改所述单帧缓冲器的时间戳;当所述输出子模块请求数据时,将所述单帧缓冲器中的数据发送给所述输出子模块;
音画同步单元,用于当所述输出子模块请求数据时,根据该输出子模块请求数据的帧率及当前所述单帧缓冲器的时间戳,从该输出子模块对应的音频中取出对应于这个时间戳的一段脉码调制录音数据,和所述单帧缓冲器中的数据一起发送给所述输出子模块;如果取出的脉码调制录音数据的长度未达到当前所述单帧缓冲器中数据的长度,则在发送前用静音数据补足。进一步地,所述输出子模块包括 输出连接器、输出端口 ;
所述输出连接器用于同输出设备建立连接,将来自于所述输出端口的实时流数据输出到所连接的输出设备;
所述输出端口用于对基带处理后的数据进行格式转换,并按照输出连接器的要求选择性地进行视音频编码,将编码后或格式转换后的数据输出给一个或多个输出连接器。进一步地,所述输出端口包括
输出适配器、格式转换单元、视音频编码单元;
所述输出适配器用于根据接入的输出设备动态创建该输出设备对应的输出连接器,并将该输出连接器绑定到所述输出端口;
所述格式转换单元用于对基带处理后的数据进行包含视频幅面缩放、视频帧率转换以及音频采样率变换等在内的格式转换;
所述输出适配器还用于根据所绑定的输出连接器的类型,判断是否需要视音频编码; 如果需要则指示所述视音频编码单元对格式转换后的数据进行视音频编码,然后输出给所述输出连接器;如果不需要则直接将格式转换后的数据输出给所述输出连接器。本发明立足于实时流媒体信号输入输出任意切换的基本需求,可对输入输出所支持的实时流信号类型进行扩展,以支持更多种的实时流信号处理。本发明能直接基于IP实时流信号,进行输入输出信号的矩阵切换和协议转换,支持主流的流媒体协议以及SDI、TS流等;根据实际媒体参数,可增减输入和输出的数目。本发明的流媒体切换台能实现
实时流收录接收多种形式的实时流信号输入,进行简单数据处理后通过SDI转发给传统收录服务器进行实时收录或者直接保存为本地文件;
实时流转发接收多种形式的实时流信号,按照一定配置输出给其他一种或者多种实时流信号,完成实时流格式和协议的转换;
实时流切换在实时流转发的基础上,支持动态且实时的对输入的通道进行切换,保证实时流的连贯性以及低延迟;
实时流处理在进行实时流转发的基础上,通过对方案进行局部修改能够对输入的多个流进行处理(比如视音频重采样、多通道视音频合并),并且保证处理的低延迟以及柔性可扩展;
典型支持的实时流格式RTMP、RTP、HTTP、TS、SDI以及企业自定义的实时流传输私有协议(比如针对某种硬件设备的实时流)。
图1为实施例一的流媒体切换台的示意框图; 图2为实施例一的输入模块的示意框图3为实施例一的处理模块的示意框图; 图4为实施例一的输出子模块的示意框图。
具体实施例方式下面将结合附图及实施例对本发明的技术方案进行更详细的说明。需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。实施例一、一种流媒体切换台,如图1所示,包括
多个输入模块DataSource,分别对应于不同协议格式,用于接收所对应的协议格式的流媒体数据并解码;
多个处理模块Channel,分别对应于不同协议格式,用于对解码后的流媒体数据进行处理,并按照所对应的协议格式进行编码后输出;
控制模块(图1中未出现),用于建立或切换所述输入模块和处理模块之间的连接,使每个所述处理模块同一时刻最多接收一个所述输入模块的信号,每个所述输入模块在同一时刻将信号输出给一个或多个所述处理模块,或不输出给任一处理模块。本实施例能够通过参数配置将M路输入信号自由传递(中间可能包含处理环节)到 N路输出。流媒体切换台的技术核心是流媒体数据的接收和发布、流媒体视音频数据网络传输造成的数据丢失修复、针对特定流媒体格式的解码和编码、针对特定流媒体协议的解包和封包。解码时可使用插件方式工作,从解码插件管理器中适配出相应的解码器,解码完成后供中间处理环节使用或者直接按照逻辑传递到输出模块再编码,典型的支持下列格式视音频解码拟64 (视频)、H263 (视频)、AAC (音频)、AMR (音频),通过对解码器的扩展,可以支持除这些格式外的更多视音频格式。在网络传输过程中,往往会因为网络状况等原因导致传输数据丢失,对于音视频而言表现为丢帧、音画不同步等问题。因此,本实施例中,Channel处理的重点任务就是完成音画同步、音频规格化、丢帧补偿。本实施例中,受硬件性能限制,一个切换台中的处理模块数目在特定的硬件环境中是固定的,从输入模块接收输入数据,经过处理后,输出到与之匹配的设备。可按插件的模式提供扩展能力,比如输入或输出的流媒体数据是新增的协议格式的,则增加相应的输入/处理模块即可。在传统矩阵切换台中,输入输出数据流均只能是SDI信号,格式单一。这是因为传统的矩阵面对的是传统电视台硬件设备卫星接收设备、录像机、播出服务器等,这些设备都支持标准SDI的输入输出,SDI成为传统电视台唯一的信号传输标准,因此传统矩阵切换台仅支持SDI输入输出是合理的。但是,流媒体切换台面对的是新媒体行业中所基于IP传输的流媒体对象,目前在业界中,标准的IP流媒体就包含RTMP、RTP、HTTP等三大标准,而 HTTP更进一步细分为FLV、M3U8、ISMV等各个厂商自定义的协议;同时新媒体也广泛需要对传统TS流的处理。因此,流媒体切换台支持多种流媒体协议就成为必须的要求。本实施例的流媒体切换台从大结构上分为左右两部分=DataSource和Channel形成MXN的矩阵。DataSource和Channel具有如下关系
对于实际的运行系统而言,DataSource和Channel的数目是固定的,即明确的M个输入(DataSource)和N个输出(Channel) ;M和N为正整数,可以相同或不同。并且遵循如下原则
(1)一个Channel在同一时刻只能选择一个DataSource作为其输入源,也可以不选择输入源,即不工作;
(2)一个DataSource在同一时刻可以将数据输出到零个、一个或者多个Channel ; 所述控制模块还可以用于提供一个UI (用户界面);用户通过UI上的逻辑控制“输入
源选定逻辑”,建立DataSource和Channel之间的连接,以及完成矩阵切换功能;所述控制模块通过从所述用户界面接收的指令建立或切换所述输入模块和处理模块。本实施例中,所述输入模块DataSource如图2所示,包括 输入连接器和信号源端口;
所述信号源端口包括输入适配器和解码器;
所述输入连接器的创建可以根据所配置的信号源动态创建;所述输入适配器用于当确定输入的信号源后,根据该信号源的实时流格式创建一个对应的输入连接器,并将该输入连接器和所述信号源端口绑定;所述输入适配器同一时刻将最多一个输入连接器与所述信号源端口(DataSource Core)绑定。所述输入连接器(Input)与所对应的信号源(比如流媒体服务器、SDI设备等)建立连接,用于从信号源采集实时流数据,供所述信号源端口使用。实时流数据的格式包括自定义的私有协议、流媒体(包括RTMP、RTSP, HTTP等)、文件、SDI等。所述信号源端口用于从所绑定的输入连接器接收实时流数据,按照对应的协议格式进行解包和解码,并输出解码后的数据;如果和处理模块相连则输出给该相连的处理模块,同时还可以将解码后的数据输出给用户界面进行预监显示。所述信号源端口在同一时刻与零个(无输入)或者一个(有输入)输入连接器绑定; 而在同一时刻,一个输入连接器必须绑定到一个输入源端口。输入连接器可以采用插件结构,当需要增加对新的输入方式或者新的流协议支持时,只需要简单的开发对应的输入插件模块即可实现。所述输入适配器可以但不限于通过动态的实例化一个插件模块来创建所述输入连接器。当所述输入适配器解除一输入连接器同输入源端口的绑定后,该输入连接器自身将会销毁(断开同信号源的连接,释放相关资源)。本实施例中,所述处理模块Channel如图3所示,包括 信号处理通道、一个或者多个输出子模块;
所述输出子模块(Data Sink)用于输出不同格式(包括媒体文件、SDI、RTMP、RTSP、HTTP 等)的实时流到接入的输出设备。Data Sink是根据不同参数的输出信号格式(仅视频编码格式,与输出实时流协议无关)而动态创建的,创建的对象被Channel所管理。所述信号处理通道(Channel Core)在同一时刻至少绑定一个输出子模块,用于对来自于DataSource的解码后的数据进行包含音画同步、丢帧补偿等在内的基带处理,处理后输出给绑定的输出子模块;
所述各输出子模块在同一时刻最多与一个信号处理通道绑定,用于对绑定的信号处理通道处理后的流媒体数据进行相应协议格式的编码后输出。输出设备接入流媒体切换台后可接收到编码后输出的信号。当所述处理通道处于停止状态时,可以对所述输出子模块进行动态管理增加新的所述输出子模块、删除已有的所述输出子模块等。所述信号处理通道包括输入源选定逻辑子模块、基带处理子模块和单帧缓冲器; 所述控制模块通过所述输入源选定逻辑子模块将处理模块的输入源设置为一
DataSource, JAMMiM. DataSource ^0 Channel t匿所述基带处理子模块用于对所连接的DataSource输出的数据进行包含音画同步、丢帧补偿等在内的基带处理;
所述单帧缓冲器用于缓存基带处理后的一帧数据,并输出给所述输出子模块。本实施例中,所述基带处理子模块具体可以包括
帧率定时器,用于根据所连接的输入模块输出数据的帧率进行初始化,每次定时时间到达时(比如但不限于每次Tick时),从所连接的输入模块所输出的数据队列中弹出首帧 (若队列为空则不作任何操作),用该帧去覆盖所述单帧缓冲器中的数据,同时修改所述单帧缓冲器的时间戳;当所述输出子模块请求数据(可以是按照另一帧率请求)时,将所述单帧缓冲器中的数据发送给所述输出子模块,这就完成了丢帧补偿;
音画同步单元,用于当所述输出子模块请求数据时,根据该输出子模块请求数据的帧率及当前所述单帧缓冲器的时间戳,从该输出子模块对应的音频中取出对应于这个时间戳的一段PCM (Pulse Code Modulation,脉码调制录音)数据,和所述单帧缓冲器中的数据一起发送给所述输出子模块;如果取出的PCM数据的长度未达到当前所述单帧缓冲器中数据的长度,则在发送前用静音数据补足。本实施例中,所述输出子模块Data Sink如图4所示,包括 输出连接器、输出端口 ;
所述输出连接器(Output)用于同输出设备建立连接,将来自于所述输出端口的实时流数据(未编码或已编码的数据)输出到所连接的输出设备;包括文件输出、SDI输出、各种流输出等。所述输出端口(DataSink Core)用于对基带处理后的数据进行包含视频幅面缩放、视频帧率转换以及音频采样率变换等在内的格式转换处理,并按照输出连接器的要求选择性地进行视音频编码(部分插件,比如SDI输出,是不需要编码的),将编码后或格式转换后的数据输出给一个或多个输出连接器。所述输出端口包括输出适配器、格式转换单元、视音频编码单元;
所述输出适配器用于根据接入的输出设备动态创建该输出设备对应的输出连接器,并将该输出连接器绑定到所述输出端口;
所述格式转换单元用于对基带处理后的数据进行包含视频幅面缩放、视频帧率转换 (配合所述基带处理子模块中的单帧缓冲器完成)以及音频采样率变换等在内的格式转换; 所述输出适配器还用于根据所绑定的输出连接器的类型,判断是否需要视音频编码; 如果需要则指示所述视音频编码单元对格式转换后的数据进行视音频编码,然后输出给所述输出连接器;如果不需要则直接将格式转换后的数据输出给所述输出连接器。各所述输出连接器在同一时刻最多接收一个输出端口发送的数据,并发送给对应的输出设备。输出连接器采用插件结构,当需要增加对新的输出格式或者新的流协议支持时,只需要简单的开发对应的输出插件模块即可实现。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
权利要求
1.一种流媒体切换台,其特征在于,包括多个输入模块,分别对应于不同协议格式,用于接收所对应的协议格式的流媒体数据并解码;多个处理模块,分别对应于不同协议格式,用于对解码后的流媒体数据进行处理,并按照所对应的协议格式进行编码后输出;控制模块,用于建立或切换所述输入模块和处理模块之间的连接,使每个所述处理模块同一时刻最多接收一个所述输入模块的信号,每个所述输入模块在同一时刻将信号输出给一个或多个所述处理模块,或不输出给任一处理模块。
2.如权利要求1所述的流媒体切换台,其特征在于所述控制模块还用于提供一个用户界面;所述控制模块通过从所述用户界面接收的指令建立或切换所述输入模块和处理模块。
3.如权利要求1所述的流媒体切换台,其特征在于,所述输入模块包括 输入连接器、信号源端口 ;所述信号源端口包括输入适配器和解码器;所述输入适配器用于当确定输入的信号源后,根据该信号源的实时流格式创建一个对应的输入连接器,并将该输入连接器和所述信号源端口绑定;所述输入适配器同一时刻将最多一个输入连接器与所述信号源端口绑定;所述输入连接器与所对应的信号源建立连接,用于从信号源采集实时流数据,供所述信号源端口使用;所述信号源端口用于从所绑定的输入连接器接收实时流数据,按照对应的协议格式进行解包和解码,并输出解码后的数据。
4.如权利要求3所述的流媒体切换台,其特征在于所述输入适配器通过实例化一个插件模块来创建所述输入连接器; 当所述输入适配器解除一输入连接器同输入源端口的绑定后,该输入连接器断开同信号源的连接,并释放相关资源。
5.如权利要求1到4中任一项所述的流媒体切换台,其特征在于,所述处理模块包括 信号处理通道、一个或者多个输出子模块;所述各输出子模块在同一时刻最多与一个信号处理通道绑定,用于对绑定的信号处理通道处理后的流媒体数据进行相应协议格式的编码后输出到接入的输出设备;所述信号处理通道在同一时刻至少绑定一个输出子模块,用于对解码后的数据进行基带处理,处理后输出给绑定的输出子模块。
6.如权利要求5所述的流媒体切换台,其特征在于,所述信号处理通道包括 输入源选定逻辑子模块、基带处理子模块和单帧缓冲器;所述控制模块通过所述输入源选定逻辑子模块将处理模块的输入源设置为一输入模块;所述基带处理子模块用于对所连接的输入模块输出的数据进行基带处理; 所述单帧缓冲器用于缓存基带处理后的一帧数据,并输出给所述输出子模块。
7.如权利要求6所述的流媒体切换台,其特征在于,所述基带处理子模块包括帧率定时器,用于根据所连接的输入模块输出数据的帧率进行初始化,每次定时时间到达时,从所连接的输入模块所输出的数据队列中弹出首帧,用该帧去覆盖所述单帧缓冲器中的数据,同时修改所述单帧缓冲器的时间戳;当所述输出子模块请求数据时,将所述单帧缓冲器中的数据发送给所述输出子模块;音画同步单元,用于当所述输出子模块请求数据时,根据该输出子模块请求数据的帧率及当前所述单帧缓冲器的时间戳,从该输出子模块对应的音频中取出对应于该时间戳的一段脉码调制录音数据,和所述单帧缓冲器中的数据一起发送给所述输出子模块;如果取出的脉码调制录音数据的长度未达到当前所述单帧缓冲器中数据的长度,则在发送前用静音数据补足。
8.如权利要求5所述的流媒体切换台,其特征在于,所述输出子模块包括 输出连接器、输出端口 ;所述输出连接器用于同输出设备建立连接,将来自于所述输出端口的实时流数据输出到所连接的输出设备;所述输出端口用于对基带处理后的数据进行格式转换,并按照输出连接器的要求选择性地进行视音频编码,将编码后或格式转换后的数据输出给一个或多个输出连接器。
9.如权利要求8所述的流媒体切换台,其特征在于,所述输出端口包括 输出适配器、格式转换单元、视音频编码单元;所述输出适配器用于根据接入的输出设备动态创建该输出设备对应的输出连接器,并将该输出连接器绑定到所述输出端口;所述格式转换单元用于对基带处理后的数据进行包含视频幅面缩放、视频帧率转换以及音频采样率变换等在内的格式转换;所述输出适配器还用于根据所绑定的输出连接器的类型,判断是否需要视音频编码; 如果需要则指示所述视音频编码单元对格式转换后的数据进行视音频编码,然后输出给所述输出连接器;如果不需要则直接将格式转换后的数据输出给所述输出连接器。
全文摘要
本发明公开了一种流媒体切换台,包括多个输入模块,分别对应于不同协议格式,用于接收所对应的协议格式的流媒体数据并解码;多个处理模块,分别对应于不同协议格式,用于对解码后的流媒体数据进行处理,并按照所对应的协议格式进行编码后输出;控制模块,用于建立或切换所述输入模块和处理模块之间的连接,使每个所述处理模块同一时刻最多接收一个所述输入模块的信号,每个所述输入模块在同一时刻将信号输出给一个或多个所述处理模块,或不输出给任一处理模块。本发明能在新媒体领域实现传统SDI信号切换台的作用,同时完成对多种流媒体信号的输入输出转换。
文档编号H04N7/24GK102291399SQ20111022517
公开日2011年12月21日 申请日期2011年8月8日 优先权日2011年8月8日
发明者余军, 席堂海, 颜涛 申请人:成都索贝数码科技股份有限公司