局域网视频聊天软件

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息与电气工程学院

单片机系统设计项目(二级项目)

设计说明书

(2012/2013学年第二学期)

题目:局域网聊天软件分析

专业班级:

学生姓名:

学号:

指导教师:

设计周数:2周

设计成绩:

2013年6月28日

目录

1课程设计的任务和要求 (2)

1.1设计要求 (2)

1.2设计任务 (2)

2程序总体设计分析 (2)

2.1总体工程时序 (2)

2.2系统构架 (3)

2.3程序描述 (4)

2.3.1运行模块组合 (4)

2.3.2运行控制 (4)

3 DirectShow技术概述 (4)

3.1DirectShow概述 (4)

3.2 Directshow的主要组成部分 (5)

3.2.1 DirectShow的 Filter (5)

3.2.2关于Filter Graph Manager (7)

3.2.3媒体类型 (7)

3.2.4媒体Samples和Allocators (8)

4 TCP/IP协议简述 (9)

4.1什么是TCP/IP (9)

4.1.1网络层协议 (9)

4.1.2应用层协议 (10)

4.2 TCP/IP中的协议 (10)

4.2.1 IP协议 (10)

4.2.2 TCP协议 (10)

5套接字编程概述 (10)

6运行调试 (11)

6.1服务器运行调试 (11)

6.1.1获取和修改服务器监控的IP地址 (11)

6.1.2安装及运行Window服务 (12)

6.2客户端运行调试 (15)

6.3出错及解决方案 (15)

7实验结果 (16)

8心得体会 (16)

9参考文献 (16)

附录A客户端主要程序 (17)

附录B服务端主要程序 (21)

1课程设计的任务和要求

1.1设计要求

阅读分析相关资料,认真研究局域网视频传输的基本原理和关键技术,分析设计并实现一个简单的局域网视频聊天软件,实现视频信号的实时传输。

设计思路:先熟悉并掌握TCP和UDP套接字编程机制和方法,然后研究DirectShow,掌握视频捕获和视频回放的编程实现方法和技巧,然后在此基础上完成视频聊天软件的设计与开发。

参考资料:《DxWebCam分析》和DxWebCam视频传输软件。

1.2设计任务

(1)深入理解TCP和UDP的工作原理和服务的特性,掌握套接字编程机制和方法;

(2)理解C/S架构和P2P两种应用模式;

(3)深入分析基于DirectShow的视频捕获和回放;

(4)完成局域网视频聊天软件的分析、开发与调试;

(5)在设计报告中对DxWebCam视频传输软件进行全面和深入的剖析;

(6)按照格式要求撰写设计报告。

2程序总体设计分析

2.1总体工程时序

本系统采用面向连接的客户/服务模型,服务器必须首先启动,否则客户进程的Connect()系统调用将返回错误代码表示连接失败。无连接的服务进程也必须首先启动以指定本地的套接字地址否则客户进程的数据服务请求传送不到服务器进程。

面向连接的客户/服务器时序图如图2-1所示:

图2-1 客户/服务器时序

2.2系统构架

系统由服务器终端采集传输系统和客户端接收系统两部分组,系统构架如图2-2所示

图2-2 系统构架

2.3程序描述

2.3.1运行模块组合

客户端程序输入服务器IP及端口号访问服务器服务程序,服务器程序捕获摄像头视频数据并向客户端程序发送视频数据流,客户端接受服务器提供的视频数据流并回放视频数据流。

2.3.2运行控制

服务器服务程序启动后监听服务,等待客户端连接,响应连接后捕捉摄像头视频流数据并处理成MJPEG通过网络发送给客户端。

客户端程序具有良好的界面,通过输入服务器IP及端口号访问服务器服务程序,接收并回放接收到视频流数据。

3 DirectShow技术概述

3.1DirectShow概述

DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布。

DirectShow为多媒体流的捕捉和回放提供了强有力的支持。运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。它广泛地支持各种媒体格式,包括Asf、Mpeg、Avi、Dv、Mp3、Wave等等,使得多媒体数据的回放变得轻而易举。另外,DirectShow还集成了DirectX其它部分(比如DirectDraw、DirectSound)的技术,直接支持DVD的播放,视频的非线性编辑,以及与数字摄像机的数据交换。更值得一提的是,DirectShow提供的是一种开放式的开发环境,我们可以根据自己的需要定制自己的组件。

DirectShow的系统组成

应用程序与DirectShow组件以及DirectShow所支持的软硬件之间的关系如图3-1所示。

图3-1应用程序与DirectShow组件以及DirectShow所支持的软硬件关系

3.2 Directshow的主要组成部分

3.2.1 DirectShow的 Filter

DirectShow是基于模块化,每个功能模块都采取COM组件方式,称为Filter。DirectShow提供了一系列的标准的模块可用于应用开发,开发者也可以开发自己的功能Filter来扩展DirectShow的应用。下面我们用一个例子来说明如何采取Filter来播放一个AVI的视频文件。

从一个文件读取数据,形成字节流。(这个工作由源Filter完成)

检查AVI数据流的头格式,然后通过AVI分割Filter将视频流和音频流分开。解码视频流,根据压缩格式的不同,选取不同的decoder filters 。

重画视频图像,通过Renderer Filter。

将音频流送到声卡进行播放,一般采用缺省的 DirectSound Device Filter。流程见图3-2。

相关文档
最新文档