android 视频电话
本文将简单介绍可视电话子系统的组成及结构,以及所接触过的基于android可视电话做简单介绍。每个厂家的可视电话实现方案略有异同,不能以一概全。
1 Android可视电话
如上图所示,Android可视电话由以上几个模块组成,即基于无线通信业务,又对多媒体处理要求极高。控制camera,麦克风实时捕捉本端的音视频数据经3G-324协议栈编码复用发送到网络。同时将解复用解压缩收到的对端音视频数据push到LCD及扬声器。由于使用了专有的可视电话协议,因此与http数据业务传输是有本质区别的。
重点介绍由以下几个模块组成:
VTapp:通常可以在Android的Phone app上增加及修改,此种方法工作量复杂度会减少。
VTengine:通常也被视为VT的适配层。这个模块可以放在framework java,也可以放在library中。具体放在哪一层涉及到音视频数据搬运等问题,故推测这也是MTK的可视电话VTengine放在lib层的一个原因。对3g-324M做一个封装,向上提供接口。调用camera以及audio接口进行本端音视频数据采集。并负责将远端的解码后的音视频数据放出来。
3G-324M:下面章节将会详细介绍,简单来说是实现可视电话必不可少的协议。放在android的external中。
VT port:Android手机通常使用双芯片设计。而modem侧与AP侧之间有两种数据通信的方式,一种就是port口。而另一种是双端口内存ram。如果是采用port口方式,至少有两个port口,分别用于CS域传递AT指令,PS域传送数据业务相关数据。而可视电话需要增加一个VT port。专用于在AP侧与modem侧传递本端与对端的可视电话数据。
[edit]2 可视电话协议栈介绍
在对可视电话有了整体的认识以后,再来看陌生的可视电话协议栈是什么?它有哪几部分组成,如何分工合作?
3GPP在ITU H.324M及其他国际标准基础上制订了3G-324M框架性协议它可以在无线电路交换网络上实现实时多媒体服务。使视频、音频、控制信号等在同一个64K的物理链路上传输。 3G-324M是一个标准体系,包含下面几个子协议标准:语音编码标准(3GPP-AMR、G.723.1)、视频编码标准(H.263、MPEG-4、H.261)、数据编码标准 (V.14、LAPM(Link Access Procedure for Modems))、多路复用和分离标准(H.223)和呼叫控制标准(H.245)。
H.223,语音、视频、用户数据和控制数据的多路复用与分离(Multiplexing、De-Multiplexing),制定了多路音频和视频信号在单个移动通讯信道的多路复用应用标准;
H.245,制定了在各个阶段的消息控制交换标准;
Audio codec,ARM是强制标准,G.723.1为可选的老的编码标准;
Video codec,H.263为强制性基准协议,MPEG-4是推荐标准;
[edit]2.2 H.245协议
3G-324M中使用H.245作为终端控制协议,所支持的H.245最低版本是Version 3,推荐实现更新的版本。
H.245提供如下功能:
支持NSRP、CCSRL;
主从模式确定,在会话开始时确定哪个终端作为主控制终端,发生冲突时由主终端确定通信状态;
终端能力交换,如多路复用的可选模式、codec、数据共享模式及参数;
复用表初始化和更新,增删复用表项;
模式请求(Mode request),用于请求从接收者到发送者的操作模式;
传输延迟测量,提供精确的质量特性度量;
回环测试(Loopback testing);
混杂呼叫控制(Miscellaneous call control)命令和指示。
3 可视电话建立过程
3.1 CS域可视电话呼叫建立
VT的CS域呼叫建立类似于Android上的语音呼叫,而原生的android代码没有提供可视电话接口,因此需要在framework telephony 中添加API,以及在RIl HAL层中增加可视电话接口以及AT指令。CS域呼叫建立成功后,一条64kbit/s的透明数据传输链路也成功建立,3G-324M比特流将通过这条链路进行传输。
[edit]3.2 3G-324M协商建立
1, 手机电平检测,即选择H.223多路复用层:每部手机发送一个标志位序列来表示他所能支持的最高移动多路复用电平, 采用最高值作为公共电平;手机电平1、2、3分别对应H.223附件A、B、C;
2, MUX-PDUS的传输:传输H.223复用协议数据单元帧;
3, H.245简单响应协议(SRP);
4, 终端交换能力,包括音视频能力、所支持的移动方面的扩展、所支持的复用选项等;
5, 主从模式的决定,H.245消息“Master Slave Determination(MSD) Request”,确定终端的主从模式;
6, 开放逻辑信道,承载话音、视频媒体,定义他们的复用表给远端解复用端;
7, 通话建立后进行媒体交换。
[edit]3.3 可视电话数据传递
在完成了3G-324M协商建立后,才开始媒体数据的交换。如上图所示,camera采集的原始数据,从麦克风采集的audio数据,传入3G-324M。经过编码,复用。传送到VTport。再由modem经空中接口发送到网络。
而对端的数据在modem接收到以后,经VTport传送到3G-324,经解复用,解码,再将原始数据push到surfaceflinger显示,audio经扬声器播放出来。
除了音频数据、视频数据之外的用户数据,在可视电话过程中传送图片或者文字。
控制数据, H.245不仅在可视电话建立时发挥作用,在可视电话过程中也会发送流量控制、通用命令和指示等。
[edit]4 Android可视电话实现
Android可视电话不是一个简单的google market中的应用,若希望实现ckt自己的可视电话需要注意以下几方面:
1,得到芯片方案厂商的支持,与芯片方案厂商协商modem侧与AP侧如何通信传递可视电话复用数据。
2,知晓modem侧的可视电话相关AT指令。
3,选取合适的3G-324M可视电话协议栈lib。
android 视频电话相关推荐
- 使用miniSipServer构建自己的视频电话平台
计划需要一个视频电话功能:在公司wifi网络环境下同事之间用android手机相互打可视电话,不花钱的. 花了一天的工夫最终用miniSipServer实现了.以下为摸索的全过程: 第一篇 找sips ...
- 音频应用(如sip与Voip),编解码API(Ringtone,SoundPool,MediaPlayer),回声消除等(Lame Speex等),OpenSL ES
3套音频播放API:MediaPlayer,SoundPool,AudioTrack. android录音项目,用单例模式集成了record,并实时转码mp3- https://github.com/ ...
- android n-ify miui,MIUI7.5版刷机包
MIUI7.5先行版给你带来跟多的天气信息和资讯,小米MIUI8的正式版虽然还没有推出,如空气质量,所以在Android N-ify模块下有点显示问题. MIUI7.5版刷机包小米miui7.5刷机方 ...
- android 联系数据库
联系人数据库学习 2011-10-31(这是android2.3在接触db) 简单介绍 Android中联系人的信息都是存储在一个叫contacts2.db的数据库中.该数据库的路径是:/data/d ...
- 智能会议系统(18)---如何进行视频电话
7 . 如何进行视频电话 项目地址:https://git.oschina.net/qin_xiao_yu/Linphone.git 1 . 绪论 本月还有3篇微博需要更新,否则就持之以恒的徽章就没啦 ...
- android skype 无法用蓝牙耳机,Skype发布更新 增加蓝牙耳机稳定性
Skype是全球最流行的即时通信和视频电话供应商之一,今天其Android客户端发布了更新,版本号升至2.9.0.315,包含一些小的细节改动以及几项非常重要的修复和增强. 在2.9.0.315版本更 ...
- armplayer 风靡全球的Android s3c6410 arm11 手机开发板 超低价
店主:嵌入式系统工程师 联系方式: QQ:1141256841/774295611 技术qq群: 40605090 大连嵌入式商城群 121393599 android6410(一)群 ...
- android WebRtc 视频通话(P2P)
概述 WebRTC名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购Glo ...
- android10官方刷机包下载,Android 11 喜讯!小米 10 率先尝鲜,官方刷机包发布下载...
原标题:Android 11 喜讯!小米 10 率先尝鲜,官方刷机包发布下载 6月15日消息,小米 MIUI 官方今天宣布 Android 11 Beta1 来了,小米 10 系列手机率先尝鲜体验,M ...
最新文章
- GNU make 和 makefile
- 2.4 程序示例--线性决策边界-机器学习笔记-斯坦福吴恩达教授
- HTML.ActionLink 和 Url.Action 的区别
- vue全局引入openlayers_vue项目中openlayers绘制行政区划
- http://blog.csdn.net/u011277123/article/details/53665302
- 暗黑的字符串---递推公式
- WebService
- 【ArcGIS微课1000例】0027:ArcGIS属性表(dbf)转Excel的4中方法
- 文华财经数据导出工具
- Java - 谈一谈测试驱动开发(TDD)的好处以及你的理解。
- Excel中关于数组函数的研究
- HTML中如何将背景图片移动,怎么设置html的背景图片的位置
- 节省你学习时间的百余个谷歌小技巧
- 信息与通信工程保研经验之上科大北理成电浙大东南西交
- 每日三个笑话-20151008
- Datawhale组队学习-金融时序数据挖掘实践-Task01数据探索与分析
- GB18030与GBK、GB2312字节对照
- 基于BP神经网络预测电力负荷(Matlab代码实现)
- 360对决手机恶意广告
- iphone android 备份短信,苹果手机怎么备份短信?教大家手机短信怎么备份
热门文章
- RFID课程设计-图书管理系统用户端设计
- python字符串的定界符不能是_Python|字符串str的构造、操作(操作符、函数、方法)...
- 显著性检测2018(ECCV, CVPR)【part-2】
- Leetcode #17 Letter Combinations of a Phone Number Z9键盘字母组合解题小节
- 网约飞机已来临?多元出行方式还会遥远吗。
- 《寄宿公寓2》面对热情的合租姐妹如何逆袭成功?
- Badly placed ()‘s 问题
- docker轻量级编排创建工具Humpback
- 济南市各区县(功能区)名称
- 摹客RP,新增轮播图组件