当前位置:文档之家› 李娜多媒体网络通信技术

李娜多媒体网络通信技术

多媒体网络通信技术大作业1、题目:基于局域网的可视对讲系统设计2、系统开发环境与工具:(1)、硬件环境:实验室局域网(2)、软件环境:WindowsXP操作系统(3)、开发工具:自己熟悉的面向对象的网络通信编程工具与平台,相关音频、视频编码与传输协议类库3、要求与评分标准:(1)要求:在以上硬软件环境下,利用合适的开发工具,设计一套可视对讲软件,实现局域网内两台计算机之间的可视对讲功能,要求音视频信号连续性、实时性较好,满足正常交流需要。

(2)评分标准1 系统原理分析1.1 系统原理概述视频聊天系统应该具备提供便捷、灵活、全面的音频、视频信息的传递和服务的功能,并且实时传输给聊天软件在线的人。

本次方案采用Microsoft Visual C++ 6.0 编程开发视频聊天系统的一套比较常用的解决方案。

语音视频聊天采用UDP模式,在客户端之间点对点的进行,因为UDP传输速度快,TCP 是面向连接的,建立连接时双方需经过三次握手,数据传输可靠,FTP、TELNET等就是基于TCP的,UDP是面向非连接的,发出信息不需对方确认,但这样速度比TCP快, 但有可能丢失数据,象SMTP、TFTP等就是基于UDP的。

在该方案中,通过函数库VFW (Video for Windows )来实现视频捕获、影像压缩以及影像播放。

微软公司提供的专门用于视频捕获开发的工具包VFW,为在Windows操作系统中实现视频捕获提供了标准的接口,从而大大降低了程序的开发难度。

在视频传输方面,则通过组建视频帧,将位图形式的视频帧压缩成帧格式的MPEG 4流,传输到客户端后,解压并显示影像。

同时采用线程来实现语音录制和语音回放,最终实现了通过服务器中转的文字聊天、点对点的语音视频聊天。

1.2 关键技术分析可视对讲的关键技术之一是音视频同步问题。

解决同步问题的方法有很多种,其中时间戳是最成熟最完美也是最复杂的解决办法,可以解决任何多媒体领域的音视频同步问题。

其原理是选择一个参考时间,在生成数据流时依据参考时间上的时间给每个数据块都打上时间戳;在播放时,读取数据块上的时间戳,同时参考当前时钟上的时间来安排播放,让快于这个参考时间的包等待,丢弃慢于这个参考时间的包。

在基于时间戳的同步机制中,仅仅对不同步的数据进行处理是不完备的,还需要反馈机制,如基于Windows 平台的DirectShow 就提供这样一个反馈机制,它的质量控制(Quality Control) 可以将播放的状态反馈给源,让源端加快或者放慢数据流的速度。

多媒体文件的采集,播放及对同步的要求都非常严格,如果从多媒体文件中分离出音视频数据的数据不同步,音视频的时间差则会越来越大,这是无法忍受的,所以在多媒体文件中,不但要求有同步机制,还要求有反馈机制。

可视对讲的关键技术之二是数据压缩技术。

多媒体信息数字化后的数据量非常大,尤其是视频信号,数据量更大,需要占用更大的信道带宽,成本十分昂贵。

为了节省存储空间充分利用有限的信道容量传输更多视频信息,必须对视频信息进行压缩。

目前,在视频图像信息的压缩方面已经取得了很大的进展。

有关图像压缩编码的国际标准主要有JPEG H.261、H.263、MPEG-1、MPEG-2、MPEG-4等。

有关音频信号的压缩编码技术基本上与图像压缩技术相同,不同之处在于图像信号是二维信号,而音频信号是一维信号,相比较而言音频信号数据压缩难度较低。

可视对讲的关键技术之三是视频采集。

对于视频的采集,主要采用微软公司的关于数字视频的一个软件包VFW (Video for Windows )。

VFW是Microsoft 1992年推出的关于数字视频的一个软件包,它能使应用程序通过数字化设备并播放从传统的模拟视频源得到数字化的视频剪辑。

为了解决数字视频数据量大的问题,需要对数据进行压缩,它引进了一种叫AVI 的文件标准,该标准未规定如何对视频进行捕获、压缩及播放,仅规定视频和音频该如何存储在硬盘上,以及在AVI 文件中交替存储视频帧和与之相匹配的音频数据。

VFW给程序员提供VBX和AVICap窗口类的高级编程工具,使程序员能通过发送消息或设置属性来捕获、播放和编辑视频剪辑。

用户不必专门安装VFW,在安装Windows 时,安装程序会自动地安装配置视频所需的组件,如设备驱动程序、视频压缩程序等。

2 系统总体方案设计2.1 系统模块分析2.1.1 视频捕获VFW软件包主要由以下六个模块组成:(1)AVICAP.DLL:包含执行视频捕获的函数,它给AVI文件、I/O和视频、音频设备驱动程序提供一个高级接口;(2)MSVIDEO.DLL:包含一套特殊的DrawDib函数,用来处理屏幕上的视频操作;(3)MCIAVI.DRV:包括对VFW的MCI命令解释器的驱动程序;(4)AVIFILE.DLL :包含由标准多媒体I/O(mmio)函数提供的更高的命令,用来访问AVI 文件;(5)压缩管理器(ICM):用于管理的视频压缩/解压缩的编译码器(Codec);(6)音频压缩管理器(ACM):提供与ICM相似的服务,适用于波形音频。

AVICap 支持实时的视频流捕获和单帧捕获,并提供对视频源的控制。

虽然MCI 也提供数字视频服务,比如,它为显示AVI 文件的视频提供了AVIVideo 命令集,为视频叠加提供了overlay 命令集,但这些命令主要是基于文件的操作,不能满足实时地直接从视频缓存中获取数据的要求。

对于使用没有视频叠加能力的捕获卡的PC机来说,用MCI提供的命令集是无法捕获视频流的。

而AVICap 在捕获视频方面具有一定的优势,它能直接访问视频缓冲区,不需要生成中间文件,实时性很强,效率很高。

同时,它也可将数字视频捕获到文件。

在视频捕获之前需要创建一个捕获窗,所有的捕获操作及其设置都以它为基础。

用AVICap窗口类创建的窗口(通过capCreateCaptureWindow函数创建)被称为“捕获窗”,其窗口风格一般为WS_CHILD口WS_VISIBLE实际上,捕获窗类似于标准控制(如按钮、列表框等)。

捕获窗具有下列功能:(1)将视频流和音频流捕获到一个AVI 文件中;(2)动态地同视频和音频输入器件连接或断开;(3)以Overlay 或Preview 模式对输入的视频流进行实时显示;(4)在捕获时可指定所用的文件名并能将捕获文件的内容拷贝到另一个文件;(5)设置捕获速率;(6)显示控制视频源、视频格式、视频压缩的对话框;(7)创建、保存或载入调色板;(8)将图像和相关的调色板拷贝到剪贴板;(9)将捕获的一个单帧图像保存为DIB格式的文件。

视频捕获编程涉及视频捕获的结构、宏、消息和函数。

发送AVICap窗口消息所能完成的功能都能调用相应的宏来完成。

如,SendMessage与capDriverConnect的作用相同, 都是将创建的捕获窗同视频输入器件连接起来。

灵活编写AVICap提供的回调函数可满足一些特殊需求。

将宏capCaptureSequenceNoFile 和用cap SetCallbackOnVideoStream 登记的回调函数一起使用,可使应用程序直接使用视频和音频数据。

在视频聊天的应用程序中可利用这一点来获得视频帧,回调函数将捕获的图像传到远端的计算机。

应用程序可用捕获窗来登记回调函数(由用户编写,而由系统调用),以便在发生下列情况时,它能通知应用程序,作出相应的反应, 捕获窗状态改变,出错;视频帧和音频缓存可以使用;在捕获过程中,其它应用程序处于让步(Yield )地位。

2.1.2 视频压缩解压缩视频压缩(视频编码)是把数字视频流用更少的数据位进行存放的方法。

未经压缩的视频数据量非常大,所以压缩对于数字视频的存储和传输来说都是必须的。

图像压缩包括一对互补系统,一个编码器(encoder)和一个解码器(decoder)。

编码器利用图像数据之间的相关性。

在保证图像质晕的情况下使用较少的数据以传播或存储该图像;而解码器则把压缩后的图像还原出原始的视频数据。

视频压缩解压缩采用MPEG-4标准。

MPEG-4是为在国际互联网络上或移动通信设备(例如移动电话)上实时传输音/视频讯号而制定的最新MPEG标准,MPEG4采用Object Based 方式解压缩,压缩比指标远远优于以上几种,压缩倍数为450 倍(静态图像可达800倍),分辨率输入可从320 )240到1280为024,这是同质量的MPEG1和MJEPG的十倍多。

MPEG-4 使用图层(layer)方式,能够智能化选择影像的不同之处,是可根据图像内容,将其中的对象(人物、物体、背景)分离出来分别进行压缩,使图文件容量大幅缩减,而加速音/视频的传输,这不仅仅大大提高了压缩比,也使图像探测的功能和准确性更充分的体现出来。

在网络传输中可以设定MPEG-4的码流速率,清晰度也可在一定的范围内作相应的变化,这样便于用户根据自己对录像时间、传输路数和清晰度的不同要求进行不同的设置,大大提高了系统使用时的适应性和灵活性。

也可采用动态帧测技术,动态时快录,静态时慢录,从而减少平均数据量,节省存储空间。

而且当在传输有误码或丢包现象时,MPEG-4受到的影响很小,并且能迅速恢复。

MPEG-4 与MPEG-1、MPEG-2 以及H.264 相比,更注重多媒体系统的交互性和灵活性。

最显著的差别在于它采用基于对象的编码理念;即在编码时将一幅景物分成若干个在时间和空间上相互联系的视频音频对象,分别编码后经过复用传输到接收端,在接收端再对不同对象分别解码。

最后合成所需的视频和音频。

这样便于对不同对象进行不同的编码和操作,也有利于不同数据类型间的融合。

MPEG-4 的应用前景将是非常广阔的。

它的出现将对以下各方面产生较大的推动作用:数字电视、动态图像、万维网(WWW)、实时多媒体监控、低比特率下的移动多媒体通信、于内容存储和检索多媒系统、Internet/Intranet 上的视频流与可视游戏、基于面部表情模拟的虚拟会议、DVD 上的交互多媒体应用、基于计算机网络的可视化合作实验室场景应用、演播电视等。

2.1.3 语音的录制、回放我们主要利用线程来处理语音部分的录制、回放。

线程是一个独立的执行流,是进程内部的一个独立的执行单元,相当于一个子程序,它对应于Visual C++ 中的CWinThread 类对象。

单独一个执行程序运行时,缺省地包含了一个主线程,主线程以函数地址的形式出现,提供程序的启动点,当主线程终止时,进程也随之终止。

根据实际需要,应用程序可以分解成许多独立执行的线程,每个线程并行的运行在同一进程中。

一个进程中的所有线程都在该进程的虚拟地址空间中,使用该进程的全局变量和系统资源。

相关主题