directshow采集多媒体音视频同步

2025-02-02

directshow采集多媒体音视频同步(共1篇)

1.directshow采集多媒体音视频同步 篇一

在信息时代, 伴随着视频处理, 数字信息存储技术的不断发展, 视频会议系统越来越受到人们的青睐。近些年来, 基于3G的无线视频会议系统在视频会议系统中更是倍受人们的关注。由于视频信号所包含的信息量大, 传输网络所需的带宽也很大, 因此需要对采集的视频进行压缩, 然后通过网络进行实时传输。

本文采用Direct Show实现音视频采集、压缩以及基于RTP/RTCP协议的无线网络传输, 视频压缩采用H.264标准, RTP/RTCP保证音视频实时同步, 以此实现无线视频会议系统。

2、基本原理

2.1 Direct Show技术

Direct Show是Microsoft为了能够简单、有效地进行流媒体处理而推出的一个基于Windows平台的流媒体处理开发包。它对流媒体的捕捉、回放提供了强大的支持, 使用它还可以在基于WD M (Windows Device Modal) 驱动的各种采集卡上进行数据捕捉。基于它的优点我们采用Direct Show进行视频采集。

Direct Show主要由过滤器图表 (Filter Graph) 构成, 过滤器图表中包含了各种Filter, 这些Filter能够按一定顺序连接在一起, 构成一条流水线, 最后交由Filter Graph Manager统一控制。

过滤器根据功能不同分为三类[1]: (1) 源过滤器 (Source Filter) , 它引入数据到过滤器图表中, 数据来源可以是文件、网络、照相机等。获取的数据传输至下一级过滤器。 (2) 变换过滤器 (Transform Filters) , 主要负责数据的格式转换。 (3) 渲染过滤器 (Rendering Filter) , 渲染过滤器在过滤器图表里处于最后一级, 它们接收数据并把数据提交给外设。

2.2 视频采集的实现

Direct Show采用WDM驱动模型进行视频捕捉。WDM是纯32位模型, 对于不同的设备具有统一的结构, 最重要的是Direct Show与WDM的紧密结合, 在系统核心提供了基于WDM的驱动程序的过滤器和接口, 大大提高了视频捕获的速度和质量。由于Direct Show对视频捕获、回放提供了强大的支持, 大大增强了系统对不同硬件的通用性和适应性。因此, 在Direct Show开发环境中, 通过WDM视频采集过滤器 (WDM Video Capture Filter) 可以非常简便地对基于WDM驱动的采集卡采集进来的视频数据进行捕捉。

基于WDM的采集设备有很多种, 本视频采集系统采用的是USB2.0摄像头。视频信号经摄像头进入计算机, 然后系统的软件部分通过摄像头的驱动程序来采集视频数据。

2.3 RTP (Real-time Transport Protocol) /RTCP (Real-time Transfer Control Protocol) 协议

RTP网络实时传输协议专门用于网络传输多媒体数据流, 将需要发送的多媒体数据块 (音视频) 经过压缩编码后, 先送给RTP封装成为RTP分组, RTP分组再装入下层协议运输层的UDP用户数据报, 然后再向下传递给IP层[2]。RTP协议的设计目的是通过提供实时数据传输中的时间戳信息和分组序列号字段, 使接收方通过检测接收到的分组序列号来判断是否有分组丢失, 并重新恢复发送时的分组顺序, 从而达到使各数据流同步的功能。

RTCP是与RTP配合使用的协议, RTP只包含RTP数据, 而控制是由另一个不可分割的配套使用的RTCP协议提供的。RTCP协议有以下三个主要功能: (1) 监视并反馈RTCP的服务质量; (2) 保证传输媒体间的同步性; (3) 对多播组中的成员进行标志。

RTCP分组同RTP分组一样, 也使用UDP来传送, 区别是RTCP并不对音频视频分组进行封装。由于RTCP的分组很短, 因此在一个UDP数据报中可以封装多个RTCP分组。被封装的RTCP分组可以周期性地在网上传送, 它包含有发送端和接收端对服务质量的统计信息的报告 (如已发送的分组数和字节数、分组丢失率、分组到达时间间隔的抖动等) 。

3、系统的结构设计

本系统可用于视频会议直播。在发送端采用IP组播技术, 这样可以降低网络上传输的信息包总量, 从而减少网络拥塞和冲突的发生;在接收端, 也可以通过设置接收缓冲来减少数据的抖动, 提高质量。当会议开始时, 会议发布者在服务器端, 将摄像头和麦克风捕捉的音视频数据经压缩编码后通过3G无线网络发送出去, 其他与会者使用移动终端加入该组后, 在终端屏幕上播放经解码后的音视频, 完成会议的参与。因此, 该系统主要由以下几个模块构成, 系统结构如图1所示。

(1) 音视频的采集和回放:采用Direct Show技术实现音视频数据的采集和回放。该方法基于COM技术的优势, 可以方便的对音视频数据进行采集, 并且使采集到的数据播放流畅, 图像稳定。

(2) 音频的编解码:采用具有开源库的G.729a标准对音频数据进行编码和解码。该标准数据压缩率高, 复杂度低, 时延小。

(3) 视频的编解码:采用具有开源库的H.264标准对视频数据进行编码和解码。该标准能提高网络适应能力, 具有错误恢复能力。

(4) 同步处理、数据加密、网络传输、数据解密:采用RTP实时传输协议对音视频数据进行打包、封包传输、解包以保证数据的实时性, 并采用RTCP实时传输控制协议提供传输Qo S监测和拥塞控制、媒体间同步等服务。

4、系统的程序实现

本系统由服务器端和移动终端两部分组成。服务器端PC基于Windows XP平台, 程序采用Visual Studio2005进行编写;移动终端为Pocket PC, 基于Win CE平台, 程序也是采用Visual Studio2005进行编写。在开发前, 要先安装Visual Studio2005和Direct X 9.0b SDK, 并对开发环境进行相应的配置, 使其支持Direct Show的开发。系统中音视频的编解码部分采用的是va_g729a.lib和h264.lib开源库, 打包、封包传输、解包部分使用开源的jrtplib.lib。由于Win CE操作系统提供了和桌面Windows操作系统很接近的Win32 API, 大多数Win32 API的函数在Win CE中都存在。因此, 下面程序的实现是以PC平台下的Visual Studio2005为例, Win CE下的程序可以方便移植, 但对于系统中采用的一些开源库要经过修改才能在Win CE环境下编译使用。

(1) 音频的采集和回放:使用Direct Show的系统设备枚举器枚举, 找到我们想要创建的声卡对象。在本文中, 我们采集生成一个Wave文件, 于是还需要加入一个Wave Dest Filter和一个File Write Filter。

(2) 视频的采集和回放:使用Direct Show技术, 选择视频画面的大小为176*144真彩色, 每秒捕获30帧。

5、结语

文中给出了一种基于Direct Show的无线视频采集与传输系统的设计。同时, 将3G网络应用到音视频传输中, 并采用RTP/RTCP来保证音视频的同步和实时性。将该系统应用到3G无线视频会议系统中, 可以使视频会议系统更具有灵活性和移动性。

随着3G网络的推广, 智能手机的普及, 基于嵌入式移动设备的视频会议系统的设计与开发逐渐引起人们的重视, 该系统的设计与实现对移动视频会议系统和无线监控系统具有一定的借鉴和推广意义。

摘要:文中, 针对基于3G无线网络的视频会议系统的应用, 采用DirectShow架构, 设计音视频数据的采集、编码、网络传输、解码及回放的解决方案, 并根据RTP/RTCP协议原理, 实现音视频的同步实时传输。在此基础上实现了无线音视频采集与传输系统。

关键词:DirectShow,音视频采集,RTP/RTC,实时传输

参考文献

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

[2]谢希仁.计算机网络 (第五版) [M].北京:电子工业出版社, 2008.

[3]郭昊.基于DirectShow技术实现视频采集[J].火控雷达技术, 2008, 37 (2) :97-100.

[4]赵国锋, 朱其林.基于WinCE移动终端的无线视频会议系统[J].通信技术, 2008, 41 (8) :201-203.

[5]明日科技, 宋坤, 刘锐宁, 马文强.Visual C++视频技术方案宝典[M].北京:人民邮电出版社, 2008.

上一篇:小学数学教案北师大版下一篇:赣县长洛卫生院2010年卫生纠风工作实施方案