基于网络的语的音视频多人聊天系统毕业论文怎么写

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于网络的语音视频多人聊天系统_毕业论文怎么写论文导读::基于网络的语音视频多人聊天系统,毕业论文怎么写。论文关键词:基于网络的语音视频多人聊天系统随着网络技术和多媒体技术的发展,网上聊天室已经不再局限于文字聊天,网民和聊友们更希望的是聊天有实时性,互动性、趣味性。在文字聊天的同时能够通过视频和语音更好的交流、增强实时性、互动性和趣味性已经成了一个很迫切的需要。2课题的相关理论和技术2.1UDP协议UDP协议是英文UserDatagramProtocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。与我们所熟知的TCP(传输控制协议)协议一样,都属于传输层协议。UDP协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测是否出错。2.2MPEG4压缩算法MPEG-4于1998年10月定案,在1999年1月成为一个国际性标准,随后为扩展用途又进行了第二版的开发,于1999年底结束。MPEG-4主要应用于视像电话(VideoPhone),视像电子邮件(VidoEmail)和电子新闻(Electronicnews)等毕业论文怎么写,对传输速率要求较低,在4800-64000bits/sec之间。利用很窄的带宽,通过帧重建技术,压缩和传送资料,以求以最少的数据获得最佳的图像质量。MPEG-4的特点是其更适于交互AV服务以及远程监控。这是一个有交互性的动态图像标准论文下载。如图1。图1:标准运动补偿视频编码视频编解码器中,单个帧可以采用三个模式中的一个进行编码——即I、P或B帧模式(见图2)。几个称为Intra(I)的帧单独编码,无需参考任何其他帧(无运动补偿)。某些帧可以利用MC编码,以前一个帧为参考(前向预测)。这些帧称为预测帧(P)。B帧或双向预测帧通过之前的帧以及当前帧的后续帧进行预测。B帧的优势是能够匹配堵塞在采用前向预测的上一帧中的背景区域。双向预测通过平衡前向及后向预测可以降低噪声。图2:I、P与B帧间预测图示MPEG-4[6]由ISO提出,以延续MPEG-2的成功。一些早期的目标包括:提高容错能力以支持无线网、对低比特率应用进行更好的支持、实现各种新工具以支持图形对象及视频之间的融合。大部分图形功能并未在产品中受到重视,相关实施主要集中在改善低比特率压缩及提高容错性上。2.3组件技术组件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行了封装,同时对各种业务逻辑规则进行了实现,用于处理用户的内部操作细节,甚至于将安全机制和事物机制体现的淋漓尽止。而这个封装体就常常的被我们称作组件。2.4C/S结构C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。3需求分析系统主要由以下几个模块构成:①即时通讯客户端:包括一个即时通讯、房间大厅和聊天室,在即时通讯中用户可以添加自己的好友并根据自己的需要将好友分组,与自己的好友进行文字聊天、发送动画表情以及语音视频聊天,支持离线留言和系统消息;在聊天室中可以进行一对多语音视频聊天,送礼等娱乐活动。②即时通讯服务端:完成用户登录、添加好友以及一对一聊天等客户端请求服务的应答。③聊天室服务端:完成用户新建房间、查找房间、以及在聊天室里进行一对多语音视频聊天等请求服务的应答。4系统设计4.1系统设计基本原则本系统的最终目标是在Internet上能实现多人语音视频的功能。清晰的语音视频是本系统设计的最重要的功能。模块化的设计方法:运用Delphi的自定义组件技术,通过自定义组件将功能模块化,将各个组件独立出来,使其有很大的灵活性;界面的美观,功能的实用是聊天软件都应该共性。系统安全可靠也是一个重要的设计原则。由于客户端与服务端的通讯方式是发送也接收处理UDP包,所以,在UDP包的设计方面我做了很多工作,在客户端和服务端都对UDP包加了验证。4.2功能模块图本系统主要包括即时通讯客户端、即时通讯服务端、房间服务端和视频中转端几大模块毕业论文怎么写,结构如图3:图3总体结构图即时通讯客户端和即时通讯服务端主要功能如图4:图4客户端功能图4.3功能模块设计整个系统分为即时通讯客户端、房间客户端、即时通讯服务端、房间服务端和视频中转站等几大模块。系统主要功能模块具体描述如下:4.3.1即时通讯客户端即时通讯客户端是整个客户端的主体,登录后显示的主界面即为即时通讯客户端了,界面上包括个人信息,好友列表以及一些功能按钮,房间客户端的启动也由界面上的功能按钮完成。4.3.2即时通讯服务端即时通讯服务端主要完成即时通讯客户端的服务请求,包括用户注册、登录、查找添加好友、单人文字聊天以及视频聊天等。服务端有用多线程技术,来自客户端的服务请求包在UDP接收线程的回调函数里压入包处理栈,然后由处理线程进行必要的数据库操作进行处理,然后调用UDP发送线程进行发送应答论文下载。4.3.3房间客户端房间客户端并不与即时通讯服务器打交道,所有的请求都发送给房间服务端。用户在房间里可以进行多人语音视频聊天,或者进行一对一的私聊。4.3.4房间服务端房间服务端主要完成房间客户端的服务请求,包括用户进入房间后的通知消息、用户上麦后的麦序消息、用户进行聊天时的消息转发以及用户送礼后进行的数据库操作等。4.3.5视频中转端视频中转端可以说是整个系统的核心之一。为了让房间里的用户可以播放上麦用户的音视频,必须用视频服务器将来自上麦用户的音视频数据通过UDP方式广播给所以在房间里的用户,这样房间里的用户收到来自视频中转的音视频信息后才能将数据进行解压并播放出来。4.4数据库设计在SQL数据库中,创建数据库AVChat,并创建如下表:(1)用户表Users,保存用户详细信息,其结构如表1。表1Users(2)音视频通道表ServerAV,保存可用的音视频通道,IM服务端启动时从表中读取通道并根据用户的请求随便分配,其结构如表2。表2ServerAv(3)房间分类表RoomClass,其结构如表3。表3RoomClass(4)房间描述表RoomDesc,房间里的各种控件位置都可以由用户自己设置,并将设置保存在服务器上以实现个性化房间,其结构如表4。表4RoomDesc(5)兑换表Exchange,用于保存各种礼品的兑换比例,其表结构如表5。表5Exchange(6)好友表Friend,用于保存用户的好友信息。其表结构如表6。表6Friend(7)好友分组表FriendGroup毕业论文怎么写,用于保存用户的好友分组信息,其表结构如表7。表7FriendGroup(8)礼品分类表Gift,用于保存系统提供的礼品信息,其表结构如表8。表8Gift(9)离线消息表OfflineMsg,用于保存用户的离线消息,便于用户上线时将离线消息发送给用户,免于信息的丢失,其表结构如表9。表9OfflineMsg(10)房间信息表Room,用于保存房间的详细信息,其表结构如表10。表10Room(11)房间黑名单表RoomBlackUser,用于保存在一定时间内不能进房间的用户信息,其表结构如表11。表11RoomBlackUser(12)房间黑IP表RoomBlackIP,用于保存一定时间内不能进房间的用户IP或IP段,其表结构如表12。表12RoomBlackIP(13)用户被踢表RoomDroped,用于保存房间内用户被踢的记录,其表结构如表13。表13RoomDroped(14)房间管理员表RoomManager,用于保存房间管理员的号码,其表结构如表14。表14RoomManager(15)用户动作表UserAction,用于保存用户登录系统的信息,如:上线、下线、退出等。其表结构如表15。表15UserAction(16)用户礼品表UserGift,用于保存用户得到的礼品信息。其表结构如表16。表16UserGift5系统实现5.1UDP通讯采用TCP/IP协议进行通讯虽然稳定性好也不会发生丢包事件,但是对于同时会有大量用户进行连接的系统来说是不可取的,所以在该系统的通讯上采用的是无连接的UDP协议,不过由于UDP包的不可靠性,所以将WinSock的UDP套接字封装,以实现大数据包的传送,以及UDP包的超时重发,以减低丢包的可能性。5.2视频捕捉及发送在进行视频捕捉之前必需要先创建一个捕捉窗口,并应以此为基础进行所有的捕捉及设置操作。捕捉窗体可用AVICap窗口类的“CapCreateCaptureWindow”函数来创建毕业论文怎么写,其窗口风格可设置为WSCHILD和WS_VISIBLE参数,然后将捕捉窗口与设备相关联取得视频信号,并调置视频设备的属性,最后使用捕捉窗回调函数来处理从设备捕捉到的视频数据,将视频数据通过MPEG4算法压缩后,然后再分解成小的UDP包发送出去论文下载。5.3视频接收客户端收到来自中转服务器的视频数据后,必须将来自中转的小的视频数据包拼装成完整的图像数据包,然后再通过MPEG4算法解压缩后一帧一帧的画到面板上去,当每秒钟画的帧数多后就会形成活动的画面,并且在画的过程中可以将图片用一定的算法放大或缩小,以满足用户把视频窗体放大或缩小时的显示要求。收到小的UDP包后,根据包里的序列号,将多个UDP包组装成一个大的UDP包,然后才能将数据解压缩成图像。当数据被解压缩成一帧帧的图像后,先将帧图像移动到BITMAP中去,如果缩放比例为1:0,直接将源图复制到显示面板上,否则的话根据比例用算法将图进行缩放操作后复制到显示面板上。5.4非主窗体最小化显示在任务栏程序打开时任务栏里一般的只会显示一个主窗体,而其它的非主窗体不会显示在任务栏里,但在即时通讯里经常会开很多单聊的窗体或者是打开多个房间,如果这些打开的窗体不显示在任务栏里将会带来很大的不便,为了实现非主窗体最小化后显示在任务栏里,必须添加窗体的扩展风格。5.5好友列表框重绘在好友列表框里我们需要友好的显示,包括选择按钮,用户处于上线、离线等不同的在线状态时头像的显示和用户被选择后的显示等,而好友列表我们用的是一个TreeView控件,但它无法达到我们要的效果,于是选择将它重绘毕业论文怎么写,这即是程序的重点也是难点,如图5:图5好友列表框选择按钮的重绘。当一个好友被选中时,友好的方式是把那一整栏全部选中,重绘时必须先得到整个结点的大小,然后设置边框颜色和背景颜色进行重绘。好友的头像显示,因为一个好友的可能会有多种状态,如在线、不在线、离开和隐身,不同的在线状态肯定得有不同的头像显示,每种头像只有一张图片,离开和隐身分别有二张图片,当好友处于离开和隐身的状态时,除了绘出好友的头像外,还得在头像上面绘出离开和隐身的图片,当好友处于不在线状态时,则直接将头像转换为黑白图片然后再绘出来。5.6系统音量调节6系统使用6.1用户登录用户点击文件ChatTYQ.exe,将出现登陆界面如图6:图6用户登陆6.2用户注册图7用户注册6.3登陆成功登陆成功后,显示的是客户端的主界面,主界面上有自己的基本信息和好友列表,并有若干面板,如图8:图8即时通讯主程序6.4进入房间进入房间后,首先显示的是一个大厅,在大厅里有房间分类以及每个分类下的房间,用户可以参考房间人数以及房间说明选择想要进入的房间,如图9:图9房间大厅左边是房间的分类,选择分类后,在左边的列表中显示该分类的所有房间。双击进入所选房间,房间界面如图10:图10房间6.5上麦在控制面板中点击“公麦”按钮会出现供选择的上麦类型的下拉菜单,上麦类型分为公麦和私麦,而私麦又分为所有人可连接、公好友可连接及需确认可连接三种,上公麦后

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功