基于局域网的视频聊天室系统的设计与实现
摘 要
视频聊天系统作为一种新型的通信和交流工具,突破了地域的限制,可以提供更为便捷、灵活、全面的音、视频信息的传递和服务,具有极其广泛的发展前景。
本文介绍了采用Microsoft Visual C++ 6.0编程开发视频聊天系统的一套比较常用的解决方案。文字聊天采用TCP模式;语音视频聊天采用UDP模式,在客户端之间点对点的进行。在该方案中,通过函数库VFW来实现视频捕获、影像压缩以及影像播放。微软公司提供的专门用于视频捕获开发的工具包VFW,为在Windows操作系统中实现视频捕获提供了标准的接口,从而大大降低了程序的开发难度。在视频传输方面,则通过组建视频帧,将位图形式的视频帧压缩成帧格式的Mpeg4流,传输到客户端后,解压并显示影像。同时,在本方案中,采用了线程来实现语音录制和语音回放,最终实现了通过服务器中转的文字聊天、点对点的语音视频聊天。
[资料来源:Doc163.com]
关键词:文字聊天;VFW;视频捕获;视频传输;语音录制;语音回放
The Design and Realization of LAN-Based Video Chat Room System
Abstract
As a new tool about communication, video chatting system has broken through geographical restrictions, has provides more convenient, flexible and complete transmission and service. Furthermore, it has a very bright future.
The common solution about how to develop a video chatting system is introduced by the Microsoft Visual C + + 6.0 programming. TCP model is used in the text chatting and UDP for the point-to-point video chats between the Clients. In this plan, Video Capture, Video Compression Manager and DrawDib are realized by the functions of VFW Library. The special kit VFW (Video for Windows) in video capture offered by Microsoft Corporation, has provided a standard interface for video capture in Windows Operating System and thus greatly reduced the hardship of programming. In video transmission aspect, it requires a video frame which is compressed the video frame of bitmap into Mpeg4 steam of frame form. Then it will be decompressed into images since it has been arrived the Client. Meanwhile, the thread is used to achieve audio recording and replaying. Finally, it has realized the text chatting through a server to transit, the point-to-point audio and video chats.
[来源:http://Doc163.com]
Key words: text chatting; VFW; Video Capture; video transmission; audio recording; audio playing
在同一个局域网中,如何根据自身业务的要求,量身定制,对视频设备进行合理搭配,选择一套合理的视频聊天室系统。如何来满足局域网内部用户的通讯要求,在考虑到网络带宽的同时,提高视频清晰度,动态画面的流畅,语音的实时传输等,正是现代社会通讯所必需的。设计本系统时,分析网络承载、整个系统结构的组建等是实现局域网文字聊天和语音视频聊天所必需的。
文字、语音视频聊天作为一种广泛的网络应用对其基础的承载网络环境有着较高的网络要求。其中应重点考虑的是网络的带宽情况、端到端的时延、时延抖动、丢包率等问题。
(1) 网络带宽需求,视频聊天对网络的带宽需求为“视频带宽+IP包头开销”,计算方法为:网络带宽 = 视频带宽 × 1.2。
(2) 端到端的时延,网络传输不可避免的会发生传输时延,通常建议视频聊天的通用时延小于150ms。
(3) 时延抖动,由于音频/视频的传输为实时的交互,因此网络的时延抖动更为重要,一般,视频聊天的时延抖动控制在50ms内。
(4) 丢包率,网络数据传输经常会出现丢包现象,视频传输过程中数据丢包严重的话会影响在线视频聊天质量。因此,在设计上应将网络上的丢包率控制在1%以内。 [来源:http://www.doc163.com]
视频聊天对实时性要求较高的网络应用,作为其基础的承载网络有较高的宽带和对网络中的业务流量有较高的控制能力。而视频聊天系统本身对带宽的要求为62kbit/s~2Mbit/s,但是为了满足流畅的视音频效果,要求带宽不低于384kbit/s。
文字、视频聊天的功能和应用效果体现在客户端,而服务器端则是必不可少的,对于系统的需求分析在系统设计的过程中应该明确、细致:
(1) 文字聊天:首先启动服务器端,当用户启动客户端时,用服务器保存的用户名和密码来验证客户是否已经登录到服务器。只有当有两个以上的用户启动客户端时,才可以进行文字聊天,聊天内容要经过服务器中转,分别在服务器端和两个聊天的客户端显示聊天。
(2) 语音视频聊天:在有两个客户在线的情况下,才能进行语音视频聊天。两个用户要进行语音视频聊天时,一个用户选中另一个用户的用户名,根据该用户名在后台链表中的对应IP地址查找用户并请求视频连接。当双方确认视频连接后就进行视频传输,并显示在客户端,同时用线程实现语音录制和回放。这样,两个用户就实现了点对点的语音视频聊天。在进行语音视频聊天的过程中,不能再与其它用户进行语音视频聊天,但能够与其它用户进行文字聊天。
功能需求
通过需求调研并分析,确定系统具备的基本功能,包括:文字聊天、语音视频聊天。 [版权所有:http://DOC163.com]
(1) 文字聊天:
文字聊天采用的是TCP模式,包括服务器端和客户端。首先启动服务器端,客户端通过用户名和密码登录服务器,服务器响应客户端登录并提示有用户登录,此时两个用户就可以进行文字聊天,在文字聊天时通过服务器中转,而每个用户可以同时与多个用户进行文字聊天。当有用户退出时,服务器做出响应,提示在线用户,××用户下线。
(2) 语音视频聊天:
语音视频聊天时采用的是UCP模式,客户端与客户端点对点的进行,不需要经过服务器端中转。在文字聊天的基础上,客户端之间自行处理的语音视频聊天,运用VFW函数库中的函数对USB口输入的数字视频信息进行相关处理,比如:视频捕获、影像压缩以及影像播放等,同时利用线程来处理声音部分的录制、回放等。A客户端向B客户端请求语音视频聊天是通过B客户端的用户名来获得B客户端的IP地址,并向B客户端发送语音视频聊天请求,当B客户端接受后捕获视频,并进行压缩传输到A客户端解压并进行显示,在B客户端接受视频的同时,A客户端也捕获视频,压缩传输到B客户端解压并进行显示。
[资料来源:http://www.doc163.com]
目 录
论文总页数:24页
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
2 理论知识介绍 1
2.1 VFW简介 1
2.2 线程的实现方法 4
3 需求分析 5
3.1 软硬件环境 5
3.2 需求分析 5
4 系统结构 7
4.1 硬件结构 7
4.2 软件结构 7
4.2.1 功能需求 7
4.2.2 系统功能模块图 8
4.3 系统各模块流程图 8
5 系统的详细设计 10
5.1 文字聊天 10
5.1.1 TCP套接字的运用 10
5.1.2 文字聊天实现 11
5.2 语音视频聊天 13
5.2.1 UDP套接字的运用 13
5.2.2 视频的捕获 14
5.2.3 捕获窗口 16
5.2.4 视频捕获驱动 18
5.2.5 语音录制 18
5.2.6 语音回放 19
5.2.7 视音频的传输 20
结 论 21
参考文献 22
致 谢 23
声 明 24 [资料来源:http://www.doc163.com]