2024年1月20日发(作者:)
1 系统概述
IM实现即时通信、视频会议、OA功能的系统。系统分为服务端和客户端,基于C/S结构设计,采用TCP/IP、UDP/IP进行数据通信。视频编码采用WMV9、MPEG-4、XviD、H.264等编码器,支持多种分辨率,从160X120到704X576等。支持多种码流从5k~2048k和多种帧率5~30帧/秒。支持高保真语音,音频编码采用先进的GIPS、G.722.1、G.723、Speedx、AMR、FAAC、iLBC、GSM、ADPCM、ULAW等编码器,带宽3.6~80k,采用噪声抑制、回音消除等技术,满足低带宽要求和具有强大的抗误码能力,给用户以最真实的会议现场还原和清晰的视频交互效果。
2 系统架构
Mysql数据库
数据库读写
信令文件服务
中心服务
会议服务1 会议服务2 会议服务…
通信网络
IM客户端 IM客户端
屏点H播
幕播3
放
录媒2
器
制体
3与转
电播换
放 器
话
系统架构及信息流程图
IM客户端
主程序
自动更新
电子签章
直播采集
监控编码器
音频视频录制
一个中心服务、多个MCU和多个客户端结构。
第-1-页
2.1 中心服务
数据库服务:MySQL
数据库读写服务:EMC2N
会议服务:EMMCU
会议信令、文件服务:EMC2S
中心服务器:EMRouter
2.2 客户端
主程序:IM
自动更新:TestLiveUpdate
电子签章:TestOfficePic
H323电话:H323Phone
屏幕录制与播放:EMScrnRecorder
播放器:EMAVPlayer
boost_system-vc71-mt-1_:C++库Boost的库文件
:录制声音
:带宽测试
:录制声音和视频
:企业网络电视台
:监控的视频流的编码器
:编码器配置文件
:直播编码器
:直播编码器配置文件
:视频监控控件
:备忘录
:SIP电话功能库
:SIP电话模块
:系统信息模块
:点播模块
:点播转换器
:GIPS VoiceEngine声音引擎库
:天气信息
:工作日志
:海康威视采集卡开发库
:微软提供一款开源的用于在线编辑、调用Word、等的ActiveX控件
:声音编码库
:声音编码控件
:播放器
:声音调节向导
:本系统基本函数库
第-2-页
Excel 、PowerPoint
:聊天模块
:工作组模块
:会议模块
:聊天对话框模块
:文件共享
:同步浏览
:H323协议库
:本系统通信库
:本系统通信库
:媒体编码解码库
:IM协议库
:
:
:会议录制
:屏幕录制
:皮肤库
:窗口管理库
:基本界面库
:用户文件管理模块
:视频编码器
:视频控件
:白板
:网络会议支持库
ff_:wmv9采集编码库
FT_ET99_:ET99软件保护锁库
:H323电话模块
:海康解码库
:聊天记录信息数据库
icu_auto_:自动回复
icu_media_:媒体共享历史记录
icu_quik_:快速回复
:声音视频编码库
:AAC编码库
:AAC音频格式解码库
:音视频播放解码
:Speex编解码器函数库
:Speex编解码器函数库
:记录参加的会议历史
MEETING_share_:会议室共享目录
MEETING_share_:会议室共享文件
:ms vc 动态库
:串口通信库
portaudio_:音频处理函数库
:显示后处理库
第-3-页
:虚拟打印处理库
:RM格式转换
:备忘录数据库
:虚拟打印机
:虚拟打印机函数库
:SQLite是一款轻型的数据库,数据库访问库函数
:虚拟打印输入模块
:更新模块
:电子签章
:卸载,由安装程序产生
:主程序
:配置文件
:版本定义文件
:远程控制幕分块传输库
:远程控制显示
:WINDWOS的录音控件
:远程控制库
:微软ASF格式编码解码库
:微软wmv格式解码库
:微软wmv格式解码库
:微软wmv格式编码库
:xvid格式编码解码库
3 代码和类库说明
IM系统接口及其实现类非常优秀。就整个软件的设计架构来说,IM系统完全面向对象,并充分运用了类接口设计模式,重构后的整个代码简洁且高效。
3.1 服务端代码结构和类库
服务器调用ACE自适配通信环境进行服务器设计,利用统一的接口TProactor开发服务器程序,在Windows下使用前摄器完成端口,可以获得较好的效率。
3.1.1 EMC2S
服务器首先调用ACE_TMAIN进入主进程,控制配置信息类CConfigFile,读取配置信息,CLicense类获取服务器认证的信息,启动通信管理类CC2SManager进行通信,然后调用通道管理器类ChannelManager,接收器类ChannelAcceptor,IO线程池类IOThreadPool,启动完成端口监听,进行服务。
第-4-页
服务器<<接口>>ACE_TMAINCConfigFileCLicenseCC2SManagerChannelManagerIOThreadPoolChannelAcceptor
3.1.2 IMC2N
信令、文件服务器调用数据库服务器BzC2N完成数据库读写功能。
其中的关键类有:
CC2N类:监听处理登录连接命令。
CC2Nsession类:处理会话,转发会话数据。
CRcvProtocol类:通道工厂管理类,负责打开、关闭、读写通道数据。
3.1.3 IMMCU
会议服务,处理会议会话和会议命令。启动后CconfigFile类读取配置文件,之后启动CMCUServer类监听并连接到EMC2S服务器,处理会议命令。后启动CIOEventManager处理IO事件,启动CMCUManager对UDP会话的会议服务器管理,CTCPSessionMgr对TCP会话进行管理,启动线程进入会议命令的事件循环。
第-5-页
服务器<<接口>>ACE_TMAINCConfigFileCMCUServerCIOEventManagerCMCUManagerCManagerUDPCTCPSessionMgr
3.1.4 IMRouter
中心服务与信令、文件服务器交互,对指令进行管理分发。
3.2 客户端代码结构和类库
客户端主程序以MFC框架进行开发,CEMeetingApp从CWinApp派生,控制CvoiceEngine初始化GIPS声音引擎,初始化CaudioEngine音频引擎,CEMVideoCtrl视频编码器引擎,加载皮肤语言类Skin,给应用程序提供皮肤图片和文字信息,启动主对话框类CEMeetingDlg。
第-6-页
CVoiceEngine客户端主程序<<接口>>CWinApp<<接口>>CEMeetingAppCAudioEngineCEMVideoCtrlSkinCEMeetingDlg
主对话框类CEMeetingDlg是客户端主程序的界面和控制类,具有重要地位。对话框启动后,调用登录类CDlgLogin登录,通过CIniFile类读取配置,CDlgLog进行日志记录,CDlgUser类显示用户信息,CDlgMeeting类启动会议室,CDlgGroup类显示工作组信息,CDlgDepart显示部门信息,CDlgTabIE类实现网页浏览,CDialogIEMini类完成迷你首页功能。
CDlgLoginCDlgGroupCEMeetingDlgCIniFileCDlgDepartCDlgLogCDlgTabIECDlgUserCDialogIEMiniCDlgMeeting
第-7-页
4 系统通信
设计通信类进行TCP通信,CVideoSenderTCP进行视频发送,CVideoReceiverTCP进行视频接收。CAudioReceiverTCP接收音频信息, CAudioSenderTCP发送音频信息。
class CVideoSenderTCP
{
public:
CVideoSenderTCP(IVideoSenderNotify&rIVideoSenderNotify,CVideoChannel&rVideoChannel);
virtual~CVideoSenderTCP(void);
class CAudioReceiver
{
public:
CAudioReceiver(IAudioReceiverNotify& rNotify,unsigned long
ulAudioChannelID,unsigned long ulUserID,bool bP2P = false);
virtual ~CAudioReceiver(void);
支持UDP和P2P协议的通信类。
CAudioSenderUDP
CAudioReceiverP2P
CVideoReceiverP2P
CVideoReceiverUDP
CClientTCP用于信息传递。
第-8-页


发布评论