android视频通话ndk,Android基于SDK,NDK开发视频通话软件探索
通用的视频通话的框架分为信令和媒体两部分,在android2.3已经有了nist-sip,因此信令部分并不是大问题。
但是媒体部分就麻烦了,一般视频通话包括视频,音频两个流,下面的草图大概说明了流程:
+----+
采集-》编码-》网络传输-》 +-网络-+-》网络接收-》解码-》显示 :视频
录音-》编码-》网络传输-》 +-网络-+-》网络接收-》解码-》播放 :音频
+----+
相对应的组件对应要用到的SDK,NDK的接口如下
视频采集:Camera SDK接口
视频编码,解码:NDK自己实现,或者动态绑定到opencore或者stagefright的codec接口,
网络传输,接收:NDK自己实现
视频显示:可以使用SDK的GLSurfaceView或者动态绑定到ISurface-》Lock去直接写surfacebuffer,
或者使用IOverlay(可能有权限问题),前面适用于2.2,2.3的android版本,3.0好像android提出了新的surface接口让开发者可以高效可靠的写屏了。
音频录音:NDK动态绑定到IAudioRecord接口
音频编码,解码:可以自己实现
网络传输,接收:可以自己实现
音频播放:NDK动态绑定到IAudioTrack接口
这个实现有个问题就是效率并不高啊,因为运算量大的编解码,视频显示都是软件实现的,因此arm a9,1G的cpu恐怕也只能实现QVGA,1G的效果。
每个android硬件平台都实现的有自己的硬件的编解码,而且android也都定义了响应的HAL层,但是由于2.2,2.3,3.0版本众多,因此每个厂商的实现程度
也都还不同,因此依赖这些HAL的接口,适配性是个问题,因此用软件实现也是没有办法的啊。
近期在上面做了些工作,记录一下,省得忘记,后续还会把工作中碰到的问题总结总结,记录下来。
android视频通话ndk,Android基于SDK,NDK开发视频通话软件探索相关推荐
- Android Studio 是谷歌基于IntelliJ IDEA开发的安卓开发工具,有点类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调
Android Studio 是谷歌基于IntelliJ IDEA开发的安卓开发工具,有点类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调 ...
- nubia ui 5.0 android,国内首家基于5.0开发 nubia UI 2.8体验
MWC2015展会上,努比亚在中兴展台展出了自己旗下众多旗舰产品,还在展会上亮相了新机nubia Z9 Max.而在接下来德媒曝出的首测视频中,我们不仅看到了nubia Z9 Max各个外观设计细节, ...
- 1.Android简介,Android Studio安装,创建运行Android程序
文章目录 1.了解通信技术 2.Android简介 2.1 Android起源 2.2 Android历史版本 3.Android Studio开发环境的搭建 3.1 Android Stud ...
- 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | Visual Studio 中 SDK 和 NDK 安装位置 )
文章目录 一.Visual Studio 中安装 " 使用 C++ 的移动开发 " 开发库 二.Visual Studio 中安装的 Android SDK 和 NDK 位置 三. ...
- android ndk 博客,Android Studio 2上利用NDK进行OpenCV 3.1开发
本文主要分为两部分,第一部分采用实验性插件(Gradle Experimental Plugin)建立一个一般性的NDK应用,第二部分采用稳定版插件建立一个简单的灰度处理的OpenCV JNI应用. ...
- Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发
Android NDK开发之旅(2):一篇文章搞定android Studio中使用CMake进行NDK/JNI开发 (码字不易,转载请声明出处:http://blog.csdn.NET/andrex ...
- 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )
文章目录 一.Visual Studio 中创建 Makefile 项目 二.配置 Makefile 文件 三.配置 Android.mk 四.配置 Application.mk 五.主函数源码 六. ...
- Android ndk:/Users/Library/Android/sdk/ndk/21.1.6352462 did not have a source.properties file bug问题
项目场景: 在导入项目中,发现项目拉取的代码中使用了Ndk开发,项目启动运行时出现了如下错误 /Users/Library/Android/sdk/ndk/21.1.6352462 did not h ...
- Unity导出apk出现的问题,JDK,Android SDK,NDK,无“安装模块”
导出apk失败 使用unity导出apk文件,会出现提示:需要合适版本的JDK.Android SDK和Android NDK,要找到.下载和安装好合适的版本非常耗费时间, 网上很多教程指出可以直接在 ...
- 5.NDK Android jni开发 异常处理 native奔溃解决(相机图片美化)
http://www.droidsec.cn/常见android-native崩溃及错误原因/ https://blog.csdn.net/ddxxii/article/details/8478111 ...
最新文章
- Luke 5—— 可视化 Lucene 索引查看工具,可以查看ES的索引
- tiny4412 u-boot 启动参数的设置
- 【放置奇兵】负面效果(控制、印记、持续伤害)
- mysql insert 1062_一则 insert 报 ERROR 1062 (23000): Duplicate entry 'xxx' for key,请帮忙看看...
- Java刷漆问题代码_Java实现蓝桥杯历届试题格子刷油漆
- [AlwaysOn Availability Groups]CLUSTER.LOG(AG)
- 前端html页面模块,页面模块化实现的条件和基本实现思路 – WEB前端开发
- sigquit信号默认忽略吗_老妹儿,你真的搞懂了 Shell 信号吗?
- oracle ado6,c# ado 连接数据库 六步曲
- 【db】mongodb的故事
- 2017.9.18 HH的项链 思考记录
- PayPal通过WorldFirst港币账户免35美元提现实战教程!
- C语言面试题---结构体
- 把QUERY的输出结果作为数据源_小七_新浪博客
- CSDN使用Markdown编辑器
- 做微商洗发水怎么做引流?洗发水类微商怎么引流精准客户?
- 人工智能专业好就业吗?AI就业前景
- jShop开源电子商务系统
- 特斯拉竞争对手Rivian获7亿美元融资 亚马逊领投
- Autofill安装使用