实时音视频数据采集和传输系统设计方法的比较研究_徐殿武
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-2017-
0引言
实时音视频数据采集和网络传输系统应用广泛,如视频会议、远程教育、实时视频监控、视频通话等。
多媒体技术的发展过程中产生了各种各样的文件格式和数据压缩格式,实时音视频数据采集和传输技术的发展历程和多媒体技术的发展历程类似,也有各种不同的采集技术和传输技术可供选择,根据实际问题的需要,选择合适的技术设计音视频数据实时采集和传输系统,是十分重要的。
在Windows 环境下,实时音视频采集可以使用采集设备(如采集卡)自带的SDK 进行,此类方法的优点是使用方便,缺点是硬件相关性强,不够灵活,不能适应复杂应用场合的需要。
更常用的是使用微软公司提供的VFW (video for Windows )、DirectShow 和Windows Media 。
1使用VFW 进行音视频数据的实时采集
为解决数字音视频应用领域的问题,微软公司在1992年推
出了VFW [7],应用程序使用VFW 提供的接口可以方便地实现音视频数据实时采集、编辑、播放等通用功能以及开发各种复杂
的应用。
在VC++6.0上使用VFW 要包含文件vfw.h 和vfw32.lib 。
视频捕获功能主要存在于VFW 的AVICAP 模块,应用程序创建一个A VICAP 窗口,并通过向窗口发送消息来控制窗口的行为。
AVICAP 对视频捕获提供全面的支持,如将捕获到的数据写入磁盘文件和预览,然而,对于其它非文件型的使用则不够灵活,视频的格式和属性不可以在程序运行过程中通过编程进行改变,只能通过对话框进行设置。
在将实时音视频数据采集到文件的场合,VFW 重点支持的是A VI 文件。
使用VFW 进行音视频捕获的主要步骤为[6]:创建捕获窗口、注册回调函数、获取捕获窗口的缺省设置、设置捕获窗口参数、与捕获设备连接并获取捕获设备能力、设置捕获窗口显示模式、捕获视频数据到文件或者缓存,工作完毕,断开与捕获设备的连接。
VFW 的其它主要功能包括音视频数据的压缩和解压、A VI 文件的编辑处理、以及图像显示(DrawDib 模块)。
从Windows 98开始,微软推出了WDM (Windows driver mode )设备驱动模式,现在的音视频数据采集设备都支持WDM ,经过一层模拟子系统处理后,虽然VFW 可以在Win98、Win200、WinXP 等各种平台上使用,但由于VFW 体系在视频
收稿日期:2007-10-18E-mail :xudianwu@
作者简介:徐殿武(1949-),男,硕士,讲师,研究方向为图像处理和程序设计。
实时音视频数据采集和传输系统设计方法的比较研究
徐殿武
(中国石油大学(北京)机电学院,北京102249)
摘
要:在Windows 环境下设计实时音视频数据采集和传输系统常用的3种方法是VFW 、DirectShow 或Windows Media 。
这3种方法代表了Windows 在实时音视频数据采集和传输技术上的主要内容,每种方法各有自己的适用场合和优缺点。
在系统仿真、电子游戏、音视频数据非线性编辑等应用中,最好选用DirectShow 。
在需要将采集到的数据进行实时网络传输的场合,使用Windows Media 会收到事半功倍的效果。
而VFW 在数据采集方面用的已经不多,但在AVI-2文件的非线性编辑处理和图像显示方面仍然具有广泛的应用。
关键词:音频;视频;数据采集;多媒体;实时中图法分类号:TP311.1
文献标识码:A
文章编号:1000-7024(2008)08-2017-03
Comparison and study on methods of real-time capture and transmission of audio
and video data system design
XU Dian-wu
(Faculty of Mechanical and Electronic Engineering,China University of Petroleum,Beijing 102249,China )
Abstract :Under Windows environment,the main design methods of real-time capture and transmission of audio and video data are VFW,DirectShow,and Windows Media.The advantages and disadvantages of above three methods are discussed,and at the same time,the main programming steps are presented.In the case of system emulation,games,video editing,using DirectShow is a better choice.In the case of network application,using Windows Media is the best.VFW is an old method for audio and video capturing,but in the case of A VI-2file nonlinear editing and image display,VFW is still useful and convenient.Key words :audio;video;data acquisition;multimedia;real-time
2008年4月计算机工程与设计
Apr.2008
第29卷第8期Vol.29
No.8
Computer Engineering and Design
-2018-
会议和PC/TV 应用方面的先天不足,加之微软已经不再对VFW 进行后续开发,所以在实时音视频数据采集系统设计中,除非VFW 已经满足你的工程应用需求或者你只有VFW 驱动的采集设备,一般不再使用VFW ,而更常使用的是DirectX 之Direct-Show [3]。
但这并不是说VFW 已经没有任何用途,在A VI 文件的编辑处理(A VI-2类型)和图像显示方面VFW 仍然经常被使用。
2使用DirectShow 进行音视频数据的实时采集和网络传输
DirectShow 是DirectX 的一部分,用于进行多媒体流处理,
它支持多种文件格式和压缩格式,如ASF 、MPEG 、MP3、AVI 等,既支持WDM 模式的捕获设备也支持老的VFW 设备,可以对硬件加速设备进行自动探测和使用,也可以运行在没有硬件加速设备的系统中。
图1是DirectShow 系统架构示意图[1]。
DirectShow 中的基本工作模块叫Filter ,若干个Filter 组成一个Filter Graph 。
DirectShow 提供了很多种Filter 供应用程序使用,程序员也可以编制自己的Filter 。
如图1所示,应用程序通过Filter Graph Manager 来控制Filter Graph 的工作,一个Filter Graph 大致由3部分组成,源Filter 、传输Filter 和渲染Filter 。
Filter Graph 的数据源可以来自文件系统、Internet 、WDM 或VFW 采集设备、MPEG2硬件解码器等,这些数据源为源Filter 提供数据,经过传输Filter 处理后交由渲染Filter 进行输出。
输出可以是声卡和显卡,也可以输出到文件。
视频采集设备的种类较多,包括视频采集卡、DV 机、模拟电视接收、USB 摄像头等,DirectShow 对这些视频采集设备都提供了很好的支持。
如果视频采集卡上没有音频数据采集功能,可以使用计算机内安装的声卡进行实时音频数据采集。
采集到的音视频数据,可以使用DirectShow 提供的各种Filter 进行处理,例如数据的压缩和格式的转换,最后通过输出Filter 写成文件或进行渲染。
图2就是将DV 捕获的音视频数据写成A VI-1
文件并预览的Filter Graph [1]。
DirectShow 提供的音视频数据采集的源Filter 大大简化了数据采集的编程工作。
而针对采集到的多媒体数据的网络传输,DirectShow 则没有现成的Filter 可供使用。
图1中的Filter 工作在用户模式,而WDM 或VFW 采集设备工作在内核模式,DirectShow 为这些硬件提供了工作在用户
模式下的包装(Wrapper )Filter ,在包装Filter 内部完成与硬件的交互。
在这些包装Filter 中,除针对VFW 视频采集卡的包装Filter 不常使用以外,针对声卡的包装Filter 和针对WDM 驱动的硬件的包装Filter 是在实时音视频采集中最常使用的Filter 。
DirectShow 对WDM 硬件的支持还包括支持内核模式下的数据传输,从而避免了从内核模式到用户模式转换的大量计算和内存之间的复制,大大提高了系统的性能[3]。
实时采集到的音视频数据如果要即时在TCP/IP 网络上传输,一般需要由程序员自己编写这方面的程序,DirectShow 系统仅在DSNetwork Sample 中提供了用于MPEG-2数据流的广播和接收的Filter [1],一般说来,这远远不能满足各种网络传输的需要。
要使用该Filter ,对该Sample 进行编译连接后,生成一个名为dsnet.ax 的DLL ,使用regsvr32在命令行状态下,将这个DLL 注册,就可以使用它了。
由于实时音视频数据量巨大,实时性强,而TCP/IP 网络通信状态复杂,要达到实时音视频数据所要求的通信质量,最好在运输层上加上RTP (实时传输协议)和RTCP (实时传输控制协议)来保证实时传输的质量,DirectShow 系统没有提供这方面的Filter 。
如果将一个实时音视频数据采集传输系统的工作划分成3部分:采集、加工处理、网络传输和接收,则Direct-Show 在网络传输和接收部分提供的功能相对薄弱,而这正是Windows Media 系统的强项。
3使用Windows Media 进行音视频数据的实时采集和网络传输
Windows Media 是微软公司开发的用来处理流媒体的专
业开发平台,其媒体内容采用ASF 文件格式,主要部分包括
Windows Media Audio/Video/Encoder/Services/Player/Rights Manager 及各个部分的SDK 。
用户可以直接使用微软提供的Windows Media Encoder (无须编程)进行实时音视频采集数据的编码、格式转换(支持WMA 、WMV 、ASF 、AVI 、WAV 、MPG 、MP3等)、屏幕捕捉[5]、网络流化等,也可以利用Windows Media Encoder SDK 编程实现某些应用场合需要的特定功能。
Windows Media Services 部分则负责流媒体内容的发布,一般与微软公司的服务器集成,如Windows Media Services 9和Windows Server 2003捆绑在一起。
Windows Media Player 负责流媒体内容的获取和播放。
Windows Media 这3个主要部分,分别针
图1DirectShow 系统
Application
Commands
Events
DirectShow
Filter Graph Manager
File system Internet Ring 3Ring 0
Source Filters
Transform Filters
Rendering Filters
Legacy VCM/ACM Codecs File System
DirectSound
DirectDraw
Sound Card
Video
Graphics Card
Legacy VFW Capture Devices
Hardware MPEG2Decoders
Kernel
Streaming Architecture WDM Capture Devices
对实时音视频数据的采集、编码制作,网络传输和接收播放,形成一个完整的实时音视频数据采集、加工、传输的链条。
为了解决音视频数据网络传输的质量保证问题,微软公司为Windows Media开发了MMS协议[4],Windows Media还支持RTSP(real time streaming protocol,RFC2326),可见,Windows Me-dia在网络协议方面,为音视频数据的实时网络传输提供了很好的QoS保证,如果采集到的音视频数据需要在网络上实时进行传输,使用Windows Media是非常适合的。
下面描述的是使用Windows Media直接构建一个实时音视频数据采集和网络传输系统(无须编程)的步骤[4]。
Windows Media系统自带的可以直接运行的Windows Me-dia Encoder软件,支持使用音视频数据采集卡或USB摄像头等进行实时数据采集并将采集到的数据编码为Windows Media 格式。
具体用法是,运行Windows Media Encoder软件,在Source 标签中选好视频和音频设备以及这些设备的属性,在Output 标签中选择目标文件名,在Compression标签中选择好音频和视频数据的压缩格式等,都选择好以后,点击Start Encoding就可以开始音视频数据的实时采集过程了。
如果是进行屏幕捕捉,在Source标签中选择Video以及Screen Capture,捕捉区域可以通过一个下拉列表来选择,默认为全屏,屏幕捕捉到的内容也可以存储为文件。
不管是实时音视频数据采集还是屏幕捕捉,Windows Media Encoder支持将获得的数据即时流化,在本机广播或推发布到运行Windows Media Services的服务器上,供网络上的其它用户下载或点播。
将数据流化的方法为:在Source标签中选择一个源(采集设备、屏幕捕捉、本地文件),在Output标签中,在本机广播选Pull From Encoder并设置一个端口号,如果要发布到一个服务器,选Push to Server,同时设置好服务器的名字和发布点名称(流化的同时也可以存储为本地文件),设置好以后,点击Start Encoding就开始运行了。
在本机或其它计算机上运行Windows Media Player,选File->Open URL就可以观看采集到的内容或捕捉的屏幕内容了。
如果你的应用需要特殊的功能,就要使用Windows Media SDK编程实现实时音视频数据的采集和传输[4-5]。
4结束语
VFW作为实时音视频数据采集的应用已经十分有限,Di-rectX对VFW的支持主要是考虑到向后兼容性,使用VFW驱动的视频采集设备已经很少(新的设备驱动模式是WDM),VFW现在主要用于A VI文件编辑(如视频图像叠加[8])和图像的显示等。
DirectShow作为DirectX的一部分,在实时音视频数据的采集方面是应用的主流,支持各种采集设备和数据源,同时在非线性编辑方面具有强大的功能,在系统仿真、电子游戏、音视频数据非线性编辑等应用中,最好选用DirectShow,但在将多媒体数据在网络上进行流式传输方面,DirectShow提供的功能相对较弱。
Windows Media是微软为解决音视频数据实时采集和网络传输而专门设计的,其ASF格式与RealNetworks公司的Real-Media、Apple公司的QuickTime一样,是最为流行的流媒体格式之一。
更重要的是,Windows Media为数据传输的质量提供了网络通信协议方面的保证,所以,在音视频数据网络传输方面,其功能强于DirectShow,如果设计用于网络传输的实时音视频数据采集和传输系统,使用Windows Media就可以得到其网络协议和网络传输方面的便利和优越性,收到事半功倍的效果。
参考文献:
[1]DirectX.Documentation for C++[EB/OL].Microsoft Corpora-
tion,2005.
[2]Windows Media9.5SDK[EB/OL].Microsoft Corporation,
2004.
[3]陆其明.DirectShow开发指南[M].北京:清华大学出版社,2003.
[4]陆其明.Windows Media编程导向[M].北京:清华大学出版社,
2005.
[5]刘其洪,李伟光,叶邦彦,等.基于Windows流媒体技术的网络
屏幕广播[J].微计算机信息,2004(9):129-130.
[6]刘肃亮.基于VFW的视频应用程序开发[J].西北大学学报,
2003(6):37-41.
[7]Platform SDK for Windows XP[EB/OL].Microsoft Corporation,
2004.
[8]徐从东,罗家融,王树坤.基于VFW的视频图像叠加与播放方
法[J].计算机工程与设计,2007,28(1):100-102.
参考文献:
[1]代科学,李国辉,涂丹,等.监控视频运动目标检测减背景技术的
研究现状和展望[J].中国图象图形学报,2006,11(7):919-927.
[2]艾海舟,吕风军.面向视觉监视的变化检测与分割[J].计算机工
程与应用,2000,37(5):75-77.
[3]林洪文,涂丹,李国辉.基于统计背景模型的运动目标检测方法
[J].计算机工程,2003,29(16):97-99.
[4]Rittscher J,Kato J,Joga S,et al.A probabilistic background model
for tracking[C].Dublin,Ireland:Proceedings of European Confe-rence on Computer Vision,2000:336-350.
[5]Stauffer C,Grimson W.Adaptive background mixture models for
real-time tracking[C].Fort Collins,Colorado,USA:Proceedings of IEEE International Conference on Computer Vision and Pat-tern Recognition,1999:246-252.
[6]Horprasert T,Harwood D,Davis L S.A statistical approach for
real-time robust background subtraction and shadow detection
[C].Kerkyra,Greece:Proceedings of the7th IEEE International
Conference on Computer Vision,Frame Rate Workshop (ICCV'99),1999:1-19.
[7]王栓,艾海舟,何克忠.基于差分图像的多运动目标的检测与跟
踪[J].中国图形图像学报,1999,4(6):470-474.
[8]候志强,韩崇昭.视觉跟踪技术综述[J].自动化学报,2006,32(4):
603-617.
(上接第2016页)
-2019-。