当前位置:首页 > 李娜多媒体网络通信技术
多媒体网络通信技术大作业
1、题目:基于局域网的可视对讲系统设计 2、系统开发环境与工具: (1)、硬件环境:实验室局域网 (2)、软件环境:WindowsXP操作系统
(3)、开发工具:自己熟悉的面向对象的网络通信编程工具与平台,相关音频、视频编码与传输协议类库 3、要求与评分标准:
(1)要求:在以上硬软件环境下,利用合适的开发工具,设计一套可视对讲软件,实现局域网内两台计算机之间的可视对讲功能,要求音视频信号连续性、实时性较好,满足正常交流需要。 (2)评分标准
系统原理分析(20分) 系统总体方案设计(30分) 系统具体设计(30分)
1.系统原理概述(10分) 2.关键技术分析(10分) 1.按模块化设计要求画系统结构图(15分) 2数据流分析(15分) 呼叫处理模块流程图与关键代码(6分) 音视频采集与播放模块流程图与关键代码(6分) 音视频处理(编解码)模块流程图与关键代码(6分) 音视频封包与解析模块流程图与关键代码(6分) 音视频发送与接收模块流程图与关键代码(6分) 系统测试与评价(20) 实现语音通信(6分) 实现视频通信(6分) 实现音视频同步(8分) 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操作系统中实现视频捕获提供了标准的接口,从而大大降低了程序的开发难度。在视频传输方面,则通过组建视频帧,将位图形式的视频帧压缩成帧格式的MPEG4流,传输到客户端后,解压并显示影像。同时采用线程来实现语音录制和语音回放,最终实现了通过服务器中转的文字聊天、点对点的语音视频聊天。
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格式的文件。
共分享92篇相关文档