基于STi7105高清机顶盒实现视频通话设计方案三
3.4 软件功能模块
视频通话功能模块与中间件软件采用部分融合的方式,中间件负责与上层的用户应用软件的接口,视频通话功能模块负责与系统底层的接口,同时与中间件封装层的接口。此方案优点在于各方面工作量小,相对来说所需时间短。视频通话功能模块由控制模块、协议处理模块、音视频采集模块、音频编解码模块、视频编解码模块、用户界面模块等组成,软件功能模块如图4 所示。
图4 软件功能模块示意图
控制模块主要是接收并执行应用的命令,向应用上报信息,控制视频通话的交互动作,控制媒体流的处理等。
协议处理模块包含SIP 协议处理、RTP 协议处理等,大都是基于IETF 标准的。SIP 协议栈的功能是用于建立、更改和终止多媒体会话或呼叫,进行多媒体通话的信令处理;RTP 协议栈的功能是对流媒体数据进行封包并实现媒体流的实时传输,用于多媒体数据包的排序及纠错。
音视频采集模块支持摄像头、电话机或者蓝牙耳机等外设,并将输入的视音频信号传送给音视频编码模块。
音频编解码模块对本地用户输入的语音信号进行编码,并对网络接收到的音频数据包进行解码。
视频编解码模块对本地用户输入的视频信号进行编码,并对网络接收到的视频数据包进行解码。
应用接口封装提供应用程序接口给应用层的Java 应用程序所使用,Java 应用程序给用户提供了可以下载的丰富应用。
用户界面模块实现用户的拨号、画中画显示、操作界面等,界面应当足够的友好和方便,完成人机交互。
终端软件流程如图5 所示。
图5 流程示意图
以本地机顶盒发起呼叫为例,简单流程如下:
(1)主叫机顶盒启动并初始化。
(2)摄像头、电话机等外设启动初始化。
(3)机顶盒向服务器进行注册,机顶盒自动向服务器发送注册消息进行注册。注册成功后,服务器将会动态地建立户的逻辑地址和其当前联系地址之间的对应关系,以便实现呼叫路由和对用户移动性的支持。
(4)机顶盒进入侦听等待状态。
(5)主叫机顶盒向被叫机顶盒发出INVITE 请求,INVITE 请求的作用是发起并建立呼叫,邀请被叫机顶盒加入主叫机顶盒建立的呼叫。
(6)被叫机顶盒收到请求后对主叫机顶盒做出响应,被叫机顶盒对请求的响应分为临时响应(状态码为1xx)和最终响应(状态码为2xx),主叫机顶盒只对最终响应做出回应。被叫机顶盒做出的最终响应是200 OK,表示被叫机顶盒接受并开始处理呼叫请求。
(7)主叫机顶盒收到响应后发送ACK 请求,向被叫机顶盒告知主叫机顶盒收到了最终响应,被叫机顶盒收到主叫机顶盒的ACK 请求,标志呼叫建立阶段结束。
(8)进入通话过程。
(9)当参与呼叫的任一方要终止呼叫时,该机顶盒将会构造并发送一个BYE 消息给对方机顶盒。对方机顶盒收到BYE 请求后,将会释放与此相关的资源,回送一个成功相应,表示呼叫已经终止。
4 结语
本文以STi7105 芯片为基础,介绍了尽量利用高清互动机顶盒的现有编解码能力实现视频通话功能;在此基础上可以向其他具有类似编解码能力芯片的机顶盒移植,比如STi7162、Hi3716 等;当需要更高的音视频编码质量时,也可以使用具有独立编码功能的摄像头、电话机等外设。随着高清机顶盒的普及,这种基于高清机顶盒的视频电话,使视频通信服务从高高在上的大客户业务转向普通家庭用户,也顺应了三网融合的时代要求。
- 基于STi7105高清机顶盒实现视频通话设计方案一(09-18)
- 基于STi7105高清机顶盒实现视频通话设计方案二(09-18)