基于DirectShow的视频通道卡的应用

2014-07-02 00:29杜歆文王卫成王歆宇
电视技术 2014年20期
关键词:视音频单通道音频

杜歆文,王卫成,王歆宇

(苏州广播电视总台 技术中心,江苏 苏州 215006)

基于DirectShow的视频通道卡的应用

杜歆文,王卫成,王歆宇

(苏州广播电视总台 技术中心,江苏 苏州 215006)

介绍了基于DirectShow的视频通道卡的应用背景及意义,对相关软、硬件技术进行了简要阐述,基于这些技术,根据软件开发流程,分别实现了1个多通道录制软件和1个通道播放软件,并阐明相关技术要点。在多通道录制软件中,实现了多通道同步录制和单通道分别录制灵活切换,以及视音频的合并、分离,通道播放软件能够无缝连续或者循环播放,操作方便快捷。2套系统在实际使用中运行良好。

视频通道卡;录制;多通道;播放;无缝播出

随着节目内容的丰富,制作要求的提高,对节目录制的要求也逐渐提高,以前也许录制一档节目最多需要8个机位,导播切换,录制PGM画面后期包装剪辑即可,现在可能需要12、16或者更多机位,除了录制PGM画面,还需要有多路单挂画面、副切画面等,方便后期剪辑,如果大量使用蓝光、P2、磁带等介质录制,需要占用很多录像机,录制操作复杂,并且后期上载工作非常繁重,因此,文件化采集非常有必要。同时,更多的现场大屏应用,与现场节目结合,背景资料、宣传片、垫片等都需要经过演播室送至现场,文件化的播放方便、快捷,并且避免非编编辑后的二次输出。

现代演播室中,多通道的播出、录制已经是必不可少的一部分,各家厂商也纷纷推出自己的产品。比如大洋的演播室多通道录制系统,新奥特CreaStudio多通道非线性采编系统等,单台服务器通常支持4路或以上SDI输入,多格式采集,支持多镜头编辑。草谷公司也推出了T2高标清硬盘录像机,配置1个记录通道和2个播放通道,并支持多种录制、播放格式。

该类产品确实有其不可媲美的优点,但高昂的售价限制了其发展,另外录制机上的多镜头编辑不是很符合苏州台编辑使用现状,媒资素材、历史素材交换不便,还需要将录制素材传输至原非编网进行剪辑,因此决定着手自主开发多通道录制、播放软件。

1 相关技术

1.1 硬件

硬件方面需要一台插有视频通道卡的计算机[1]。

Blackmagic Design(BMD)产品质量稳定,性能优秀,在2002年11月,BMD推出了DeckLink采集卡,目前DeckLink视频通道卡产品丰富,根据功能、通道数量有多种型号产品,有支持4K输入输出的DeckLink 4K Extreme,有用于简单监看、录制的DeckLink MiniMoni⁃tor和DeckLink Mini Recorder,还有双通道视频卡DeckLink Duo和四通道视频卡DeckLink Quad。根据需要选用了其四通道视频卡DeckLink Quad,该板卡拥有一个同步输入,4个SDI输入口和4个SDI输出口,用于采集、回放,每个端口可以独立配置高清或者标清格式,完全独立。

由于DeckLink Quad采用PCI-E接口,因此计算机主板必须支持该接口,此外,视频编解码计算比较耗费CPU资源,计算机配置需要满足一定需求。

1.2 软件

微软的DirectShow是一个应用于Microsoft Win⁃dows平台的流媒体编程接口[2-4],使用DirectShow编程,可以执行高质量的视频、音频播放或采集。在9.0版本之前,DirectShow SDK是DirectX SDK的一部分,从Windows Server 2003 SP1 Platform SDK开始,Direct⁃Show SDK成为Windows SDK的一部分。

DirectShow基于模块化,每个功能模块都采取COM组件方式,称为filter,比如从文件中读取数据,通过源filter完成,根据压缩格式不同,选取不同的de⁃coder filters,通过renderer filter重画视频图像。根据具体需求,选取一定的filter,然后相连接,这样构建成的链表称为filter graph。通过filter graph manager来控制filter graph中的所有filter,转换链表的运行、停止、暂停状态,其同样是一个COM对象。在filter graph manager的管理下,filter graph中的所有filter的状态确保一致。

如前文所述,在DirectShow中,DeckLink Quad视频卡的4个输入口各表现为1个源filter,4个输出口分别表现为renderer filter。编解码器在DirectShow开发中也表现为注册在Windows中的filter,编解码的优劣表现为兼容性好,图像的还原度高,实时性高,资源占用率低等。较为常用的编解码器有MainConcept,Elecard等。前者产品线丰富,有各种格式的编解码器,性能优秀,但是价格较高;后者性价比高,功能满足要求,但是格式较为单一,主要支持MPEG相关格式。

2 需求分析

2.1 录制需求

1)不同于单通道的录制软件,多通道录制软件的最大区别在于要保证各通道完全同步。以典型的4通道录制为例,如果4个通道完全独立,操作者分别开始4个通道的录制,保存的文件开始时间码必然不同步,在多画面剪辑时,只能根据声音把多轨视频画面时间码同步,费事费力不精确,如果4个通道文件能够完全同步开始,在剪辑时只需要在故事版上把各视频轨对齐即可。

2)软件需要支持高清和标清信号,并且对记录文件压缩格式可以设置,支持多种码流。

3)支持至少2轨音频,考虑实际使用,以4轨以上为佳,软件界面显示VU表指示响度。

4)录制文件具有良好的兼容性,现有非编软件对于录制文件能够流畅剪辑、高质量解码。

5)录制文件由于体积较大,需要能够方便传输至非编网进行编辑。

2.2 播放需求

1)播放软件要求是两段文件连续播放时不能中断,因此常规播放完一个文件再播另一个文件的方式就不适用,需要想办法避免两段文件播放中的黑场、闪断。

2)支持标清、高清输出,支持常规格式文件解码播放。

3)播放软件操作较多,比如预卷、播放、跳播、中断等,用户需要有熟悉、学习的过程,因此软件界面及操作应尽可能和现有主流软件相似。

4)列表播放需要支持素材打点、列表循环播等扩展功能。

5)列表中素材应可以即时动态调整。

3 总体设计与测试、实施

3.1 多通道录制软件

单通道录制软件的设计比较简单,将板卡视音频输入filter与编码filter分别相连,编码后经复用器打包成文件,保存。具体流程如图1所示。

图1 单通道录制流程

多通道的录制软件设计稍显复杂,软件需要适应单通道分别录制和多通道同步录制,每个通道可以单独启动录制,也可以同时开始录制。如果将单通道的流程重复多次,在单击同步录制按钮的时候同时启动4个graph,经测试无法保证4个通道完全同步开始,可能会产生1~2帧的误差,不能够满足广播级的编辑要求,因此,考虑把4路视频流放在1个graph中,由参考时钟确保数据流同步,当需要同时录制时,启动1个图表即可,如图2所示,以2通道为例。当需要分别录制几个通道,没有同步开始的需求时,仍然采用多个graph的方式,灵活多变。

图2 2通道同步录制流程

为了满足不同的需求,录制码率可以设置,同时,为了方便剪辑、传输,有时需要录制一份低码率的文件,在板卡视频输入filter和音频输入filter后端分别添加Infinite Pin Tee filter,将输入流分流成多份,一份送窗口预览,一份压缩保存为高码文件,还有一份压缩保存为低码文件。此外,微软还提供了Smart Tee filter,只能将输入流分流成2份,并且其中一路输出为Pre⁃view Pin,用于监看,会主动丢帧以保证另一路Capture Pin输出处理。

由于节目制作的多样性需求,2声道的保存已经不能满足节目录制的需求,4声道甚至8声道也常常被应用到节目录制中,本系统中,录制文件压缩格式通常为MPEG,其中音频压缩格式为MPEG-1 Audio Layer II(MP2),常规编码器只支持2路音频的压缩编码,因此,需要采用变通的办法。由于音频码率低,占用空间小,本软件中将多轨音频编码保存为WAV文件,视频还是经MPEG编码,保存为视频文件,视音频文件分离为2个文件,在非编中导入时,由于2个文件名相同,会被关联成同一个素材,不影响剪辑,在大洋非编3.0版本中测试成功。在音频流进入计算机后,还可以把多轨声道分离,对每个声道进行编码保存,这样增加了文件数量,但是后期处理更加灵活。

为了方便文件传输,录制计算机配备USB 3.0接口,方便快速拷贝至移动硬盘[5],另外,为了保证数据安全,系统被安装在单独的硬盘上,数据盘采用2块硬盘组成RAID1,一块装在机箱内部,另一块使用专用插槽固定在光驱位,录制完成后可以将这块外置硬盘拔下,直接导入非编网进行编辑。4通道同时录制标清文件时,对系统并无特殊要求,常规配置均可满足,当录制高清文件时,对CPU性能要求较高,实际测试配置2颗至强E5-2630 CPU时,录制4路高清视频CPU使用率稳定在50%左右,能够顺利完成录制任务。

3.2 通道播出软件

DeckLink Quad视频卡拥有4个SDI输入口和4个SDI输出口,但是一组接口不可以同时使用,即同时使用输入和输出总通道数不超过4路。4路输入之间以及4路输出之间完全独立。

实现视频的播放较为简单,如图3所示,视频文件由信号分离filter分离为视频流和音频流,分别经解码器解码,然后送板卡播放。

图3 文件播放流程

如果是实现一个简单的播放器,这么做就够了,但是要实现广播级的通道播出,如此播放两段文件之间肯定会有短暂的间断,为了能够连续播放,无黑场,无抖动,需要在放前一段文件的同时,把后一段文件在内存中准备好。

GMFBridge是英国GDCL公司开发的一种特殊COM组件,其全称为GDCL Multigraph Framework Bridge。基于DirectShow,利用GMFBridge,在程序中组成多graph结构,视音频数据流可以在多个graph中流动,这是解决无缝切换问题的一种方法。由GMFBridge组成的多FilterGraph工作结构如图4所示。在source graph的末端,有一个sink filter,在render graph的开头,有一个source filter提供源,图中source graph和render graph之间靠 Bridge Controller、Bridge Sink、Bridge Source filter连接。

图4 GMFBridge工作结构

从图中可以看出,BridgeSink、BirdgeSource和Bridge Controller是GMFBridge的关键组成部分。

BridgeSink是音频视频解码filter graph的Render⁃er filter,BridgeSource是播放filter graph的source filter,Bridge Controller是GMFBridge中的一种COM组件,用来连接BridgeSink和BridgeSource。Bridge Controller定义了特定的流结构来传送数据,成为BridgeStream。BridgeStream代表连接2个filter Graph的音频或视频流。通过GMFBridge提供的接口,Bridge Controller控制Source Graph与Render Graph之间的数据通断,以实现无缝切换。

为了模拟放像机操作,一般播出软件都会有预卷的过程,在文件化播出中,本质上就是对下一条待播素材的准备。利用GMFBridge技术,当播放当前素材时,预卷下一条待播素材,构建一个新的source graph,当前素材播放结束,Bridge Controller切换连接到下一个source graph的Bridge Sink。也可以当素材添加进列表时就构建source graph,这样既可以保证列表中文件的有效性,也可以快速、任意切换播放。

4 总结

本文简单介绍了利用视频通道卡开发设计的相关技术,并设计实现了一个多通道录制软件和一个通道播放软件,总结了设计开发过程中的技术要点,并最终完成系统,投入实际使用。

基于DirectShow架构,视频通道卡的应用还有很多,比如视音频质量的监控、收录系统、延时播,甚至播出系统、软件切换台等,各类应用底层相似度很高,如果能自行研发,可以满足各个台自身的一些特殊需求,更加灵活,并能节约很大采购成本。

[1] 薛达新.基于视频通道卡和通用服务器平台的视音频延时系统的设计与应用[J].电视字幕·特技与动画,2009(7):60-61.

[2]陆其明.DirectShow开发指南[M].北京:清华大学出版社,2003.

[3]陆其明.DirectShow实务精选[M].北京:科学出版社,2004.

[4] 梁斌.基于DirectShow架构的音视频无缝播出器的设计与实现[D].成都:电子科技大学,2009.

[5] 周伟锋,熊金凯.视音频硬盘采集压缩系统设计、应用与分析[J].电视技术,2011,35(20):67-69.

TN948

B

��健男

2014-04-15

【本文献信息】杜歆文,王卫成,王歆宇.基于DirectShow的视频通道卡的应用[J].电视技术,2014,38(20).

猜你喜欢
视音频单通道音频
基于联合聚类分析的单通道腹部心电信号的胎心率提取
我国首个超高清视音频国家重点实验室在沪启动建设
基于扩展卡尔曼滤波和奇异值分解算法的单通道胎儿心电提取方法
中央广播电视总台启动建设国家重点实验室
必须了解的音频基础知识 家庭影院入门攻略:音频认证与推荐标准篇
基于Daubechies(dbN)的飞行器音频特征提取
音频分析仪中低失真音频信号的发生方法
基于感知掩蔽深度神经网络的单通道语音增强方法
基于扩频码周期性的单通道直扩通信半盲分离抗干扰算法
Pro Tools音频剪辑及修正