音视频引擎/音视频即时通讯

简介:
其技术亮点之一“透明通道”

“透明通道”顾名思义就是AnyChat SDK为上层应用提供的一个传输数据的通道,由于AnyChat SDK并不关心所传输的内容,即所传输的数据相对于SDK来说是“透明”的,便称为“透明通道”。上层应用可以利用SDK提供的透明通道来扩展业务,传输的内容没有限制,可以为任意数据类型缓冲区,单次传输大小限制为1000字节,如可以利用透明通道传输业务上自定义的指令,接收方收到数据后,会产生透明通道数据回调,在回调函数里面进行指令的解析,并进行对应的业务逻辑处理。V2.8.7之前的版本,只能在当前房间内的任意两个用户间,或是向房间内的所有用户广播数据。自2.8.7版本开始,便可以在两个成功登录的用户之间,用透明通道接口传输自定义的数据,每次传输数据的大小为1000字节,如果自己在房间里面,还可以利用透明通道向房间的所有用户广播数据。如果在房间中任意两个用户间需要传输大量的缓冲区数据,则可使用扩展接口SDK内部会自动完成对大缓冲区的分包、组包、校验工作。

其技术亮点之二“集成第三方编解码器”

AnyChat Platform Core SDK支持加载外部音视频的编码、解码模块(简称AnyChat Codec库),增强系统的可扩展性,同时也满足一些特定应用环境的特殊需求,如与特定的硬件平台(android、pad)集成时,可以调用硬件编解码器,实现更高效率的即时通讯应用。AnyChat Platform Core SDK内核已经实现了部分常用的音视频编码、解码模块,如H.264视频编码、解码算法,ARM-WB、AAC、SPEEX、CELT等音频编码、解码算法。上层应用可以自己定义新的音视频编码、解码算法,在AnyChat平台初始化时,通过相关API接口可以加载新的编码、解码模块,同时上层应用也可以重新实现SDK内置的编码、解码算法,在AnyChat平台初始化时,发现加载的音视频编码、解码算法与内置的算法相同,则会采用上层应用提供的相关算法来替代内核的算法。单个音视频编码、解码模块(AnyChat Codec库)最多可以同时包含:一个音频编码器,一个音频解码器,一个视频编码器以及一个视频解码器。当上层应用需要实现多个编码器,或是多个解码器时,可以在多个库中分别实现,然后分别向AnyChat内核进行注册。AnyChat Platform Core SDK根据预先定义的CODEC编号(CodecId)来区分不同的CODEC,当用户需要实现的CODEC不在已定义的CODEC列表中时,可以自行定义新的CODEC编号,当AnyChat内核收到采用新的CODEC编码的数据时,会根据CODEC编号查询已注册的新解码器,然后调用新的CODEC进行解码。当上层应用实现的CODEC编号与AnyChat内核预置的CODEC相同时,且输入(或输出)为标准码流时,可以与AnyChat内置CODEC同步工作(如采用AnyChat Codec库进行编码,用AnyChat内置库进行解码)。当上层应用实现的CODEC编号不存在于AnyChat内置CODEC列表中时,需要在编码端、解码端同时注册新的CODEC,否则将会出现解码失败的情况。

其技术亮点之三“支持Android硬件加速”

AnyChat for Android SDK V1.3 正式支持Android硬件加速,启用硬件加速之后,内核将调用Android平台内置的硬件编码、硬件解码模块(CODEC),实现高清晰度的音视频通话。AnyChat for Android SDK内置软件编码、解码库,受限于android平台CPU运算能力,对于高分辨率、高帧率的视频通信效率较低,这时就需要采用硬件加速,通常Android平台的硬件都内置硬件加速芯片,通过硬件加速可以降低对CPU的要求,提高实时性。AnyChat for Android SDK默认采用内置软件编解码库,如需启用硬件加速则需要进行设置,示例代码如下(初始化成功之后调用):
1.// 平台硬件编码设置
2.intuseHardwareCodec = 1;
3.anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_CORESDK_USEHWCODEC, useHardwareCodec);
AnyChat内核会自动探测当前android平台所支持的硬件加速类型(编码、解码)并自动加载,并在日志中输出相关信息,包括编解码器类型、名称等,如下所示:
1.Load codec libmediahwcodec_2.2.so success
2.Load video encodec success!(id:1,name:OMX.Nvidia.h264.encoder)
3.Load video decodec success!(id:1,name:OMX.Nvidia.h264.decode)

Android平台下正常启用硬件加速的条件是:1、硬件平台具备硬件加速芯片;2、硬件厂家提供相关驱动并加载到Android操作系统内核中(符合OMX标准,如不符合,则需要硬件厂家提供相关技术支持)。默认情况下,Android 2.2内核硬件加速不支持设置码率(默认1Mbps),Android 2.3、Android 4.0等平台支持设置硬件加速编码的目标码率、帧率、关键帧间隔等参数,所以在Android 2.3以上的版本上启用硬件加速将会获得理想的效果。如果所使用的Android平台具备硬件加速芯片,但不支持标准的硬件加速接口,则需要硬件厂家提供相关的api接口,然后采用 AnyChat集成第三方编解码器 技术,便可实现非标准的硬件加速功能。

其跨平台特性也是其与众不同的亮点之一,已支持Windows、Unix、Linux(x86、ARM)、Mobile、AndroidiPhone平台等,目前正在做WP7平台的移植。利用AnyChat SDK的跨平台特性,可以实现嵌入式硬件设备(ARM平台)与Internet上的Windows平台实现语音、视频的交互。如果企业的平台目前,或是今后需要实现跨平台的特性,则AnyChat SDK将是不二的选择。产品的跨平台特性,操作系统的多重选择,将使企业的应用领域更加的广阔。




本文转自 fanxiaojun 51CTO博客,原文链接:http://blog.51cto.com/2343338/987179,如需转载请自行联系原作者

相关文章
|
SQL 存储 关系型数据库
一文搞懂SQL优化——如何高效添加数据
**SQL优化关键点:** 1. **批量插入**提高效率,一次性建议不超过500条。 2. **手动事务**减少开销,多条插入语句用一个事务。 3. **主键顺序插入**避免页分裂,提升性能。 4. **使用`LOAD DATA INFILE`**大批量导入快速。 5. **避免主键乱序**,减少不必要的磁盘操作。 6. **选择合适主键类型**,避免UUID或长主键导致的性能问题。 7. **避免主键修改**,保持索引稳定。 这些技巧能优化数据库操作,提升系统性能。
1325 4
一文搞懂SQL优化——如何高效添加数据
|
JSON 编解码 网络协议
记一次Logstash日志丢失问题
大量的json解析错误,根据日志情况分析,原因是日志数据传输到logstash之后被截断成了多条数据,于是有的数据就解析异常了,自然无法正常到归集到es的索引文档中。
|
Web App开发 前端开发 JavaScript
|
人工智能 自然语言处理 搜索推荐
现在最火的AI是怎么应用到体育行业的
AI在体育行业的应用日益广泛,涵盖数据分析、伤病预防、观众体验、裁判辅助等多个领域。通过传感器和可穿戴设备,AI分析运动员表现,提供个性化训练建议;预测伤病风险,制定康复方案;优化比赛预测和博彩指数;提升观众的个性化内容推荐和沉浸式观赛体验;辅助裁判判罚,提高准确性;发掘青训人才,优化训练计划;智能管理场馆运营和票务;自动生成媒体内容,提供实时翻译;支持电竞分析和虚拟体育赛事;并为运动员提供个性化营养和健康管理方案。未来,随着技术进步,AI的应用将更加深入和多样化。
|
Python
python-logging全局日志配置-滚动删除,只保存最近7天的日志,按级别存入不同文件
最近有这样一个需求,需要记录一下用户行为,和记下一些错误日志,放入指定文件夹里不同的文件下,方便后续debug。我决定采用python logging模块。并且使用配置文件,并做一个全局的globalLog.py来使用logging。 (关键词:logging,TimedRotatingFileHandler)
1112 0
python-logging全局日志配置-滚动删除,只保存最近7天的日志,按级别存入不同文件
|
SQL 前端开发
基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定义业务表单流程(五)
基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定义业务表单流程(五)
549 2
|
前端开发 Ubuntu 开发者
【Docker系列】Docker-核心概念/常用命令与项目部署实践
【4月更文挑战第1天】 Docker是容器化技术,打包应用及依赖,实现快速部署。核心概念包括镜像、容器和仓库。镜像是只读模板,容器是镜像运行实例,仓库用于存储和分发镜像。常用命令如`docker search`、`docker pull`、`docker images`、`docker ps`等。安装Docker在Ubuntu上涉及`apt-get update`、`install docker-ce`等步骤。了解这些基础,开发者能更高效地部署和管理应用。Docker简化了环境配置,增强了软件的可移植性和扩展性,是现代开发的必备技能。
878 3
|
机器学习/深度学习 数据可视化 数据挖掘
职场新技能:Python数据分析,你掌握了吗?
职场新技能:Python数据分析,你掌握了吗?
|
SQL 存储 安全
【软件设计师备考 专题 】数据库管理系统的功能和特征
【软件设计师备考 专题 】数据库管理系统的功能和特征
417 0