首页 新闻 安徽 体育 财经 黄梅 旅游 军事 娱乐 法治 教育 伊人 健康
繁体中文
 IT 彩信 读书 汽车 演艺 音乐 徽商 书库 邮件 论坛 贺卡 相册 交友
简体中文
精彩图库 业界动态 观察分析 手机数码 电脑教室 软件下载 游戏人间 本地市场
精彩推荐
v联想IBM并购案再生变数 美方拒绝接受让步条款
v反间谍软件会损害硬盘 微软称最高只赔5美元
v第一财经日报:盛大入股新浪意在与微软合作
v盗版OEM WinXP网上更新被禁 盗版商早有对策
vWinXP SP2自动升级即将启用 不管用户是否需要
vPalm智能手机之王 Treo 650真机多图赏析
v惊为天人 三星发布百万像素MP3手机S260
v《曙光OL》最新超可爱游戏画面公布
vXBOX版《锐击》更多精彩游戏画面欣赏
精彩图片
  您当前的位置 :IT地带 > 电脑教室 > 程序设计 正文
Visual Basic下压缩数据流播放技术

中安网  2005-03-01 12:34

  天极yesky2月28日报道 1.引言

  银行的数字化监视监控系统是目前比较有市场及应用前景的开发项目,基于不同的MPEG采集卡与硬件外围设备开发的监视监控系统在国内外都有比较成型的技术。为了满足实时监视、实时采集压缩、随时回放、压缩数据流的传播等具体要求,在该系统中使用了一种用于网络视频/音频多点传输(视频广播)的视频数据采集卡,提供AVI(MPEG I Frame压缩编码)采集、MPG采集。发送端广播MPEG流,接受端接受MPEG流并显示,网络传输采用WinSock 2 IP-Multicast。如果本机为发送端,网络上另外任何一台PC可以作为接收端。只要指定不同端口号,同时可以有多台PC机作为发送端,多台PC机作为接收端接收不同发送端的视频数据,也可在传送数据的同时在本机将数据存为MPEG文件。本文主要介绍在VB的环境下开发MPEG卡采集的Audio/Video数据播放的一些编程技巧。

  2.MPEG的内容与发展简介

  多媒体信息主要包括图像、声音和文本三大类。其中视频、音频等信号的信息量是非常大的,而且这些信息的表达方式、输入、输出的要求也各不同。对这些数据进行有效的表达和适当处理是很重要的,它使多媒体信息压缩技术成为多媒体通信领域中的关键技术之一。ISO与IEC于1988年联合成立的MPEG(Moving Picture Expert Group),致力于运动图像及其伴音编码的全球标准化工作。它包括MPEG系统:MPEG视频、MPEG音频。为了推动社会由文本信息时代向多媒体信息时代过渡,ISO继MPEG-1、2和4后又推出了MPEG-7。

  MPEG-1制定于1993年(ISO/IEC 11172),是针对1.5Mbit/s以下数据传输率的数字存储媒质运动图像及其伴音编码的国际标准。视频压缩率为26:1。MPEG-2制定于1995年(ISO/IEC 13818),是CCIR601建议的图像质量DVB、HDTV和DVD制定的3-10Mbit/s的运动图像及其伴音编码的国际标准。与前面基于信息论的波形编码理论,针对一定比特率的视频、音频编码的MPEG标准不同的是,于1998年11月公布的国际标准MPEG-4更加注重多媒体系统的交互性和灵活性。它引入AV对象(Audio/Visual Objects),使得更多的交互操作成为可能。1998年10月国际标准化组织又推出了MPEG-7的构想,预计于2001年初最终完成并公布,其正式名称为"多媒体内容描述接口"(Multimedia Content Description Interface)。它提出了一种适用于现实生活中的各种多媒体内容的标准化描述方案,以提取待描述对象的各方面特征为基础,方便人们对所需的多媒体材料进行快速、有效的检索。

  3.VB开发MPEG -- Audio/Video数据流的播放技术

  3.1.VB中Multimedia MCI控件,MediaPlayer控件播放MPEG数据流的缺点

  VB中常用的多媒体控件是Multimedia MCI控件,它管理媒体控制接口(MCI)设备上的多媒体文件的记录与回放。它被用来向诸如声卡、MIDI序列发生器、CD-ROM驱动器、视频CD播放器和视频磁带记录器及播放器等设备发出MCI命令,还支持Windows (*.avi)视频文件的回放。采用Multimedia MCI控件播放采集的MPEG数据流,播放速度比实时监控显示要快,在测试时还发现MPEG文件长度缩短到500k-600k时,就无法看到播出的图像了。改用VB中的MediaPlayer控件上叙缺点仍然存在。分析原因是:因为MPEG文件长度太短了,播放设备刚打开就已经关闭了,这是编程无法控制的。而且,对于用户要求获取的某些有关压缩数据流的信息和希望实现的某些功能,比如图线尺寸、Copmression Rate、图形的缩放显示、界面的美观等,上叙控件所提供的为方便程序开发人员使用的高层接口已不适用,要想在此基础上实现对底层的一些操作,难度可想而知。在解决上叙实际性问题时,我们调用了动态链接库Quatrz.dll。

  3.2.提供对MPEG流方便的底层操作和高层接口的动态链接库Quatrz.dll

  在Windows\System下可找到一个动态链接库Quatrz.dll,这是Windows中带的用于控制运动图像的播放的一个类型库,只要在VB的"引用"菜单中将它添加进来即可使用。该库中定义了IBasicAudio,IBasicVideo和IBasicVideo2,IMediaEvent、IMediaEventEx、IMediaPosition等类,可方便地在CommandButton控件的Click等事件中添加代码设置和读取Audio的相关值,设置或读取Video的输入输出源的相关参数,直接调用无参函数Run、Pause、Stop等控制播放事件进程,利用IMediaPosition类对具体播放细节进行操作。对于压缩的MPEG数据流的输出显示并不需要特别的控件,在VisualBasic中你可以选择一个窗体作为容器或窗体上的PictureBox控件作为容器。为了界面的美观和用户查取相关信息的方便,我们采用了PictureBox控件作为容器显示播放的MPEG数据流。

  3.3.用PictureBox控件显示MPEG数据流

  Visual Basic中PictureBox控件可以显示来自位图、图标或者元文件,以及来自增强的元文件、JPEG或GIF文件的图形。亦可在代码中操作图形属性和方法,以创建动画或进行仿真。在窗体上放置了一个PictureBox控件picTV,在调用了Windows\System下动态链接库Quatrz.dll的基础上,定义一个全局的Object对象pMC,令pMC指向FilgraphManager的一个新实例,打开压播放的MPEG文件;再定义一个局部对象pVW为IVideoWindow的新实例,打开一个播放Video的窗口;令pVW = pMC,给对象引用pVW赋值,将picTV的属性值hWnd赋给pVW的Owner,这样picTV就能显示接收的MPEG数据流了。具体操作如下:

  Set pMC = New FilgraphManager

  pMC.RenderFile "C:\Bank\Montior\Example.MPG"

  Set pVW = pMC

  pVW.WindowStyle = CLng(&H6000000)

  pVW.Left = 0

  pVW.Top = 0

  OldWidth = pVW.width

  OldHeight = pVW.Height

  picTV.width = pVW.width * 15

  picTV.Height = pVW.Height * 15

  pVW.Owner = picTV.hWnd

  可以单独定义一个函数包括这些代码,也可将其放到CommandButton控件的Click事件中。

  [1]  [2]  下一页
编辑: 丁毅
 ∷【相 关 报 道】∷
-Visual Basic实现实时曲线的绘制和保存   05-02-05 14:30
-适合Visual Basic初学者的10个小技巧   05-02-05 14:30
-浅议Visual Basic.NET中HOOK的应用   05-02-03 13:40
-用Visual Basic 6.0编写磁盘格式化程序   05-01-18 13:45
-在Visual Basic 6中实现Kodak控件编程   05-01-10 14:42
 

中国安徽在线网站(中安在线)版权所有 未经允许 请勿复制或镜像
皖ICP证 030106号