移动端多人视频通话软件开发(二)-- 架构

搭框架主要考虑几点:

1. 在可预期的产品下,我们需要支持哪些功能 

2. 当前这款产品的推出时间点,也就是产品的研发时间


关于第一点,我们最终明确下来是:

1. 支持SIP、RTSP、H323及公司私有的呼叫信令协议

2. 支持点对点,可以支持和主流的VOIP音视频电话互通,可以和主流的会议平台互通,如PolyComm、科达、华为、思科等

3. 支持多人视频,主要是支持我公司的服务器


在这个需求之上,很明显可以看出,这个不是一个产品,而是多个产品。那么在多个产品的前提下,是否有通用的部分? 

在此基础上, 我们总体上,划分了2个层次:业务层(应用层)和底层。

1. 底层使用C++撰写,主要功能包括呼叫信令及呼叫控制、音视频编解码、音视频的优化处理、网络收发等

2. 业务层使用JAVA/Obj-C撰写,主要功能包括业务信息处理、界面、音视频采集、音频外放、视频呈现等


大体架构定之后,开始考虑2个层次的小架构。

1. 底层的小架构有一些开源代码可以参考和使用,前文也都提到。 我们公司对doubango、live555、webrtc等都比较熟悉。最终通过和研发时间的权衡,采用了如下方案:live555的架构+doubango的部分模块+自己写的控制模块(这个方案好处:快速的推出了原型和demo,满足了市场对多人视频的要求。但最后我们又重写了,这是后话)。

2. 业务层的架构比较简单,主要包括两块:多人视频的业务流程和界面及界面流程,业务流程采用服务器业务模块提供的API,这样终端侧的业务层主需要关注界面及界面流程,并按需调用业务API及底层API


你可能感兴趣的:(框架,视频,架构,移动)