9
回复

收集基于环信SDK开发的开源项目 开源项目

xiaoyan2015 回复了问题 • 12 人关注 • 10150 次浏览 • 2018-08-18 10:42 • 来自相关话题

3
评论

【开源项目】全国首个开源直播小程序源码 环信公开课 小程序 直播

beyond 发表了文章 • 1512 次浏览 • 2018-07-20 17:30 • 来自相关话题

今天你看直播了吗?拥有10亿微信生态用户的小程序已经成为了继移动互联后的又一个现象级风口,随着微信小程序对外开放实时音视频录制及播放等更多连接能力,小程序与直播强强联合,在各行各业找到了非常多的玩法,小程序直播相比微信直播和APP直播更加简洁、流畅、低延时、多入口等众多优势迅速向商业直播领域及泛娱乐直播领域蔓延。从小游戏、内容付费、工具、大数据、社交电商创业者到传统品牌商们,都在努力搭上小程序直播这辆快车,以免错过微信生态里新的流量洼地。
 





作为一名环信生态圈资深开发者,本着对技术的热衷,对环信的眷恋和对党的忠诚,基于环信即时通讯云写了“直播购物小程序”,目前项目源码已全部免费开放,希望对有需求的企业和开发者提供一个思路和参考。
直播购物小程序源码github地址:https://github.com/YuTongNetworkTechnology/wechat_live/tree/master 
git打不开可直接点下面链接下载


小程序直播demo_2018-06-21.zip







直播购物小程序运行预览图 
 
小程序体验指南(仅需两步):
 
1、下载微信小程序开发工具,下载地址:https://developers.weixin.qq.c ... .html 
 




2、导入源码:将附件的源码解压直接导入 







环信小程序直播技术文档
一、 使用的技术
1、 环信IM直播室。
2、 微信小程序实时音视频播放组件live-player。
3、 推流软件(obs、易推流)等推流。
4、 视频流服务器(UCLOUD、七牛、腾讯)等视频流服务器。
二、 系统使用流程。
1、 视频推流软件将视频流推到流服务器。
2、 打开视频直播demo小程序注册环信账号。
3、 进入软件直播室进行测试。
三、 技术流程及使用的SDk
1、 注册环信账号
打开https://www.easemob.com/ 环信官网,点击右上角注册按钮,选择[注册即时通讯云]




填写对相关信息进行注册





注册成功后进行登录




注:新注册用户需进行账号的认证。
2、 直播应用创建
登录成功点击应用列表选择创建应用




输入应用名称等信息
 





创建成功后点击应用进入





需要注意的是应用的OrgName 和AppName这两个是以后都需要用到的两个参数变量




3、 直播创建
1)在创建直播之前需要对应用进行设置首先需要设置应用的直播流地址
第一步获取应用管理员的Tokencurl -X POST "https://a1.easemob.com/[应用OrgName]/[应用AppName]/token" -d '{"grant_type":"client_credentials","client_id":"[应用client_id]","client_secret":"[应用] client_secret"}'返回格式{
"access_token":"YWMtWY779DgJEeS2h9OR7fw4QgAAAUmO4Qukwd9cfJSpkWHiOa7MCSk0MrkVIco",
"expires_in":5184000,
"application":"c03b3e30-046a-11e4-8ed1-5701cdaaa0e4"












第二步设置直播流地址curl -X POST -H "Authorization: Bearer [管理员Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms/stream_url -d '{"pc_pull":"[pc拉流地址]","pc_push":"[pc推流地址]","mobile_pull":"[手机拉流地址]","mobile_push":"[手机推流地址]"}'"成功返回格式:{
"action": "post",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"pc_pull": true,
"mobile_push": true,
"mobile_pull": true,
"pc_push": true
},
"timestamp": 1494084474885,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












2)创建主播
点击IM用户





点击注册IM用户





填写用户信息





创建用户的过程同样也可以通过REST API形式进行curl -X POST -i " https://a1.easemob.com/[应用OrgName]/[应用AppName]/users" -d '{"username":"[用户名]","password":"[密码]"}'
注:应用必须为开放注册





将注册的用户添加为主播curl -X POST -H "Authorization: [管理员Token]" https://a1.easemob.com/[应用OrgName]/[应用AppName]/super_admin -d'{"superadmin":"[IM用户名]"}'返回结果示例:{
"action": "post",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"result": "success"
},
"timestamp": 1496236798886,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












3)创建直播
点击直播





点击新建房间





填写房间信息




创建房间同时也可以使用REST API形式进行详情可以查看http://docs.easemob.com/im/live/server-integration环信官方文档。
4、 小程序demo集成使用
小程序直播购物demo集成官方WebIM SDK详情请查看https://github.com/easemob/webim-weixin-xcx
Demo具体配置如下
打开demo 下sdk配置文件





修改appkey为自己应用的appkey





打开pages/live/index.js修改房间默认拉流地址及直播间房间号





四、 扩展说明
Demo中房间为固定测试房间,实际使用中应获取环信直播的房间信息及房间列表。具体如下:
获取直播间列表:curl -X GET -H "Authorization: Bearer [用户Token]" https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms?ongoing=true&limit=[获取数量]&cursor=[游标地址(不填写为充开始查询)]
响应:{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"params": {
"cursor": [
"ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6MzE"
],
"ongoing": [
"true"
],
"limit": [
"2"
]
},
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": [
{
"id": "1924",
"chatroom_id": "17177265635330",
"title": "具体了",
"desc": "就咯",
"startTime": 1495779917352,
"endTime": 1495779917352,
"anchor": "wuls",
"gift_count": 0,
"praise_count": 0,
"current_user_count": 8,
"max_user_count": 9,
"status": "ongoing",
"cover_picture_url": "",
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1"
},
{
"id": "1922",
"chatroom_id": "17175003856897",
"title": "香山",
"desc": "随便",
"startTime": 1495777760957,
"endTime": 1495777760957,
"anchor": "sx001",
"gift_count": 0,
"praise_count": 8,
"current_user_count": 1,
"max_user_count": 3,
"status": "ongoing",
"cover_picture_url": "http://127.0.0.1:8080/easemob- ... ot%3B,
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1"
}
],
"timestamp": 1496303336669,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6NDk",
"count": 2
}












获取直播间详情:curl -X GET -H "Authorization: Bearer [用户Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/[房间id]/status"响应:{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"liveRoomID": "1946",
"status": "ongoing"
},
"timestamp": 1496234759930,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"count": 0
}














 
使用环信直播购物小程序遇到任何问题欢迎跟帖讨论。 查看全部
今天你看直播了吗?
拥有10亿微信生态用户的小程序已经成为了继移动互联后的又一个现象级风口,随着微信小程序对外开放实时音视频录制及播放等更多连接能力,小程序与直播强强联合,在各行各业找到了非常多的玩法,小程序直播相比微信直播和APP直播更加简洁、流畅、低延时、多入口等众多优势迅速向商业直播领域及泛娱乐直播领域蔓延。从小游戏、内容付费、工具、大数据、社交电商创业者到传统品牌商们,都在努力搭上小程序直播这辆快车,以免错过微信生态里新的流量洼地。
 
微信图片_20180725162426.jpg


作为一名环信生态圈资深开发者,本着对技术的热衷,对环信的眷恋和对党的忠诚,基于环信即时通讯云写了“直播购物小程序”,目前项目源码已全部免费开放,希望对有需求的企业和开发者提供一个思路和参考。
直播购物小程序源码github地址:https://github.com/YuTongNetworkTechnology/wechat_live/tree/master 
git打不开可直接点下面链接下载



预览图.jpg

直播购物小程序运行预览图 
 
小程序体验指南(仅需两步):
 
1、下载微信小程序开发工具,下载地址:https://developers.weixin.qq.c ... .html 
 
Catch9A07(07-20-17-38-30).jpg

2、导入源码:将附件的源码解压直接导入 


Catch1C69(07-20-17-38-30).jpg


环信小程序直播技术文档
一、 使用的技术
1、 环信IM直播室。
2、 微信小程序实时音视频播放组件live-player。
3、 推流软件(obs、易推流)等推流。
4、 视频流服务器(UCLOUD、七牛、腾讯)等视频流服务器。
二、 系统使用流程。
1、 视频推流软件将视频流推到流服务器。
2、 打开视频直播demo小程序注册环信账号。
3、 进入软件直播室进行测试。
三、 技术流程及使用的SDk
1、 注册环信账号
打开https://www.easemob.com/ 环信官网,点击右上角注册按钮,选择[注册即时通讯云]
1.png

填写对相关信息进行注册

2.png

注册成功后进行登录
3.png

注:新注册用户需进行账号的认证。
2、 直播应用创建
登录成功点击应用列表选择创建应用
4.png

输入应用名称等信息
 

5.png

创建成功后点击应用进入

6.png

需要注意的是应用的OrgName 和AppName这两个是以后都需要用到的两个参数变量
7.png

3、 直播创建
1)在创建直播之前需要对应用进行设置首先需要设置应用的直播流地址
第一步获取应用管理员的Token
curl -X POST "https://a1.easemob.com/[应用OrgName]/[应用AppName]/token" -d '{"grant_type":"client_credentials","client_id":"[应用client_id]","client_secret":"[应用] client_secret"}'
返回格式
{
"access_token":"YWMtWY779DgJEeS2h9OR7fw4QgAAAUmO4Qukwd9cfJSpkWHiOa7MCSk0MrkVIco",
"expires_in":5184000,
"application":"c03b3e30-046a-11e4-8ed1-5701cdaaa0e4"












第二步设置直播流地址
curl -X POST -H "Authorization: Bearer [管理员Token]"  " https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms/stream_url -d '{"pc_pull":"[pc拉流地址]","pc_push":"[pc推流地址]","mobile_pull":"[手机拉流地址]","mobile_push":"[手机推流地址]"}'"
成功返回格式:
{
"action": "post",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"pc_pull": true,
"mobile_push": true,
"mobile_pull": true,
"pc_push": true
},
"timestamp": 1494084474885,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












2)创建主播
点击IM用户

8.png

点击注册IM用户

9.png

填写用户信息

10.png

创建用户的过程同样也可以通过REST API形式进行
curl -X POST -i " https://a1.easemob.com/[应用OrgName]/[应用AppName]/users" -d '{"username":"[用户名]","password":"[密码]"}'

注:应用必须为开放注册

11.png

将注册的用户添加为主播
curl -X POST -H "Authorization: [管理员Token]"  https://a1.easemob.com/[应用OrgName]/[应用AppName]/super_admin -d'{"superadmin":"[IM用户名]"}'
返回结果示例:
{
"action": "post",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"result": "success"
},
"timestamp": 1496236798886,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












3)创建直播
点击直播

12.png

点击新建房间

13.png

填写房间信息
14.png

创建房间同时也可以使用REST API形式进行详情可以查看http://docs.easemob.com/im/live/server-integration环信官方文档。
4、 小程序demo集成使用
小程序直播购物demo集成官方WebIM SDK详情请查看https://github.com/easemob/webim-weixin-xcx
Demo具体配置如下
打开demo 下sdk配置文件

15.png

修改appkey为自己应用的appkey

16.png

打开pages/live/index.js修改房间默认拉流地址及直播间房间号

17.png

四、 扩展说明
Demo中房间为固定测试房间,实际使用中应获取环信直播的房间信息及房间列表。具体如下:
获取直播间列表:
curl -X GET -H "Authorization: Bearer  [用户Token]"  https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms?ongoing=true&limit=[获取数量]&cursor=[游标地址(不填写为充开始查询)]

响应:
{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"params": {
"cursor": [
"ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6MzE"
],
"ongoing": [
"true"
],
"limit": [
"2"
]
},
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": [
{
"id": "1924",
"chatroom_id": "17177265635330",
"title": "具体了",
"desc": "就咯",
"startTime": 1495779917352,
"endTime": 1495779917352,
"anchor": "wuls",
"gift_count": 0,
"praise_count": 0,
"current_user_count": 8,
"max_user_count": 9,
"status": "ongoing",
"cover_picture_url": "",
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1"
},
{
"id": "1922",
"chatroom_id": "17175003856897",
"title": "香山",
"desc": "随便",
"startTime": 1495777760957,
"endTime": 1495777760957,
"anchor": "sx001",
"gift_count": 0,
"praise_count": 8,
"current_user_count": 1,
"max_user_count": 3,
"status": "ongoing",
"cover_picture_url": "http://127.0.0.1:8080/easemob- ... ot%3B,
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1"
}
],
"timestamp": 1496303336669,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6NDk",
"count": 2
}












获取直播间详情:
curl -X GET -H "Authorization: Bearer [用户Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/[房间id]/status"
响应:
{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"liveRoomID": "1946",
"status": "ongoing"
},
"timestamp": 1496234759930,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"count": 0
}














 
使用环信直播购物小程序遇到任何问题欢迎跟帖讨论。
18
评论

【新手快速入门】集成环信常见问题+解决方案汇总 常见问题

dujiepeng 发表了文章 • 16631 次浏览 • 2017-05-22 15:51 • 来自相关话题

   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇
APNs证书创建和上传到环信后台头像昵称的简述和处理方案音视频离线推送Demo实现环信服务器聊天记录保存多久?离线收不到好友请求IOS中环信聊天窗口如何实现文件发送和预览的功能ios集成常见问题环信推送的一些常见问题实现名片|红包|话题聊天室等自定义cell
 
Android篇
Android sdk 的两种导入方式环信3.0SDK集成小米推送教程EaseUI库中V4、v7包冲突解决方案Android EaseUI里的百度地图替换为高德地图android扩展消息(名片集成)关于会话列表的置顶聊天java.lang.UnsatisfiedLinkError: 的问题android 端 app 后台被杀死收不到消息的解决方案
昵称头像篇
android中如何显示开发者服务器上的昵称和头像 Android中显示头像(接上一篇文章看)环信(Android)设置头像和昵称的方法(最简单暴力的基于环信demo的集成)IOS中如何显示开发者服务器上的昵称和头像【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了
 
直播篇
一言不合你就搞个直播APP
 
客服集成
IM-SDK和客服SDK并存开发指南—Android篇IM-SDK和客服SDK并存开发指南—iOS篇
 
开源项目
Android简版demoios简版demo凡信2.0:超仿微信的开源项目 凡信3.0:携直播和红包而来高仿微信:Github 3,515 Star方圆十里:环信编程大赛冠军项目泛聊:定一个小目标写一个QQSlack聊天机器人:一天时间做一个聊天机器人TV视频通话:在电视上视频通话视频通话:Android手机视频通话酷信:ios高仿微信公众号助手:与订阅用户聊天沟通
 
持续更新ing...小伙伴们还有什么想知道欢迎跟帖提出。
  查看全部
   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇

 
Android篇

昵称头像篇

 
直播篇
  1. 一言不合你就搞个直播APP

 
客服集成
  1. IM-SDK和客服SDK并存开发指南—Android篇
  2. IM-SDK和客服SDK并存开发指南—iOS篇

 
开源项目

 
持续更新ing...小伙伴们还有什么想知道欢迎跟帖提出。
 
2
回复
0
回复

怎么让聊天界只能输入语音 环信_Android

回复

睡不醒的米老鼠 发起了问题 • 1 人关注 • 16 次浏览 • 2018-09-26 17:30 • 来自相关话题

0
评论

Android短视频中如何实现720P磨皮美颜录制 在Android上要实现一个录制功能

幸福小鱼儿 发表了文章 • 5 次浏览 • 2018-09-26 17:14 • 来自相关话题

在Android上要实现一个录制功能,需要有几个方面的知识储备:自定义相机的开发、视频数据格式的了解、编码相关知识以及视频合成技术,同时如果需要美颜、磨皮等滤镜操作还需要一定的openGL的知识。如果有需要深入音视频方面开发的同学建议先了解下上述的基本知识点。

既然要实现720P、30帧 同时又要对视频数据进行滤镜处理的录制,那我们首先就要确定一个正确的实现方案。如果方案选错了,那即使实现了录制功能,但性能达不到30帧或是CPU消耗太大手机发烫那就不好了。

视频的编码录制主要是软编和硬编两种方案:
软编即采用CPU对相机采集的原始数据进行编码后再和音频一起合并成一个MP4等格式的文件。优点 是技术相对成熟,网上开源的编码以及合成库很多,实现相对较快,同时兼容性比较好。缺点 是CPU暂用率高,性能差的手机无法达到720P的30帧,同时引用了大量的第三方库,导致包很大。
 
软编的具体实现方案如下图所示,流程相对清晰简单:

硬编即采用手机提供的硬编接口,利用硬件芯片直接进行编码合成。优点 是速度快、效率高、CPU占用极少,即使长时间高清录制也不会发烫,同时由于使用系统API,库相对较小。缺点 是某些奇葩机型需要处理兼容性问题,同时Android上的硬编跟Surface以及openGL关系比较密切,网上相关知识较少,需要自己摸索踩坑。
  
硬编的主要流程如下图所示,可以看到所有的数据,从采集、编码、显示以及合成都在GPU里面进行流转。

结合上面分析的两种方案我们可以看到,在Android这类移动平台上,使用第二种硬编的方式是比较合适的。由于短视频的本地录制不像直播等场景对带宽的要求比较大,需要动态调节编码器码率帧率的情况,本地录制可以将编码器的码率设置的比较高,也不需要动态改变分辨率。因此采用硬件编码的方式既可以省CPU的性能又可以实现720P的高效编码。
确定了方案之后,我们就着重讲一下硬编方案的各个步骤的实现方式。
●●●
自定义相机的开发
我们知道根据Android的系统Camera API,可以通过setPreviewDisplay接口给Camera设置一个SurfaceView的SurfaceHolder就可以让Camera采集的数据显示到SurfaceView上了。这个接口的好处是系统帮我们处理了相机采集的各种角度同时进行了绘制,如果只是简单的录制可以这么使用,但我们需要对相机采集的数据进行滤镜处理,那这个接口就不合适了。
因此我们需要用到另外一个接口 setPreviewTexture:

通过给Camera设置一个SurfaceTexture,可以将Camera采集的数据先映射到这个SurfaceTexture上,然后我们根据创建这个SurfaceTexture的TextureID来获取GPU上的Camera数据
滤镜以及本地绘制
我们通过SurfaceTexture绑定的TextureID可以获取到Camer采集到GPU上的视频数据。然后可以将TextureID送给一些第三方滤镜库进行美颜滤镜或是自己编写Shader进行磨皮和美白。自己编写Shader需要opengl以及图像算法方面的知识,通常需要专门的开发人员,这里就不做详细的展开了(当然最简单的就是接入网易云短视频SDK了,里面实现了磨皮、美颜和多款滤镜)。
本地绘制主要靠opengl进行绘制,我们需要先在Camera的采集回调线程上创建一个EGLContext以及EGLDisplay和EGLSurface, 其中EGLContext是opengl在该线程上的上下文,EGLDisplay是一块GPU中的虚拟显示区,主要用于缓存GPU上的视频数据,EGLSurface为具体显示的View到opengl上的映射,是真正绘制到View上的工具。当接受到Camera采集回调的一帧数据后,我们先通过SurfaceTexture.updateTexImage()方法,将Camera采集的数据映射到SurfaceTexture。然后根据glsl语言将TextureID对应的数据绘制到EGLDisplay上,这里需要注意的是,Camera采集是有角度的,横竖屏下角度不同,可以通过SurfaceTexture的getTransformMatrix方法获取角度矩阵,然后把矩阵传给EGLDisplay进行旋转。EGLDisplay旋转绘制完成后通过eglSwapBuffers方法就可以将EGLDisplay上的数据拷贝到EGLSurface上进行显示了。Android 系统中的GLSurfaceView最后就是通过eglSwapBuffers将数据显示到我们看到的屏幕上的。
硬件编码
Android上的硬件编码主要靠MediaCodeC API实现的,下面是MediaCodeC比较经典的一张数据处理图

从图中我们看到,MediaCodeC主要处理流程就是:
·创建并配置一个MediaCodec对象
·循环直到完成:
如果输入缓冲区就绪,读取一个输入块,并复制到输入缓冲区中
如果输出缓冲区就绪,复制输出缓冲区的数据
·释放MediaCodec对象

从Android的官方文档我们看到,MediaCodeC支持ByteBuffers和Surface两种输入方式,文档也指明了Surface方式可以提高编码效率,而且我们上面的Camera数据也是采集到的SurfaceTexture,因此我们这里使用Surface方式作为输入源。

我们在上面显示部分提到EGLSurface是作为真正输出显示的模块,MediaCodec也是。我们先通过MediaCodec创建一个Surface,然后将这个Surface绑定到一个EGLSurface,当Camera采集的数据回调时,我们只要重复一次绘制模块的操作,将Camera采集到SurfaceTexture上的数据swapBuffers到EGLSurface 上就可以了。然后循环MediaCodec输出缓冲区,MediaCodec就会将编码后的数据返回给我们了。这样做的好处就是将显示和编码完全分离了,即使我们没有UI View的情况下也可以进行编码,比如在不同Activity之间切换也不会影响我们的正常编码。

视频合成
Android上视频合成主要通过MediaMuxer API实现。MediaMuxer类相对比较简单,特别是配合MediaCodec使用。 我们只需要通过 addTrack 来添加视频和音频通道接口。AddTrack 接口需要传入一个MediaFormat对象,MediaFormat即媒体格式类,用于描述媒体的格式参数,如视频帧率、音频采样率等。还好我们使用了MediaCodeC,MediaCodeC会返回MediaFormat给我们,如果是使用软编然后用MediaMuxer进行合并的话,这里有一个比较大的坑,如果手动创建MediaFormat对象的话,一定要记得设置"csd-0"和"csd-1"这两个参数:其中"csd-0"和"csd-1"对应的是视频的sps和pps,对于AAC音频的话,对应的是ADTS。不设置的话会崩溃的。设置完这些之后,只要编码器来一帧数据,我们送到MediaMuxer中可以出来MP4了。
最后大体的流程图就是:

网易云短视频SDK按照上述方案实现后的效果就是:720P、30帧,磨皮、美颜滤镜全开的情况下,市面上的绝大部分手机都可以达到这个效果,连一些Android 4.3系统的老爷机也可以,而且CPU占用才4~5%,录制一小时也感觉不到手机发烫

朱金波/网易资深开发工程师 查看全部
在Android上要实现一个录制功能,需要有几个方面的知识储备:自定义相机的开发、视频数据格式的了解、编码相关知识以及视频合成技术,同时如果需要美颜、磨皮等滤镜操作还需要一定的openGL的知识。如果有需要深入音视频方面开发的同学建议先了解下上述的基本知识点。

既然要实现720P、30帧 同时又要对视频数据进行滤镜处理的录制,那我们首先就要确定一个正确的实现方案。如果方案选错了,那即使实现了录制功能,但性能达不到30帧或是CPU消耗太大手机发烫那就不好了。

视频的编码录制主要是软编和硬编两种方案:
软编即采用CPU对相机采集的原始数据进行编码后再和音频一起合并成一个MP4等格式的文件。优点 是技术相对成熟,网上开源的编码以及合成库很多,实现相对较快,同时兼容性比较好。缺点 是CPU暂用率高,性能差的手机无法达到720P的30帧,同时引用了大量的第三方库,导致包很大。
 
软编的具体实现方案如下图所示,流程相对清晰简单:

硬编即采用手机提供的硬编接口,利用硬件芯片直接进行编码合成。优点 是速度快、效率高、CPU占用极少,即使长时间高清录制也不会发烫,同时由于使用系统API,库相对较小。缺点 是某些奇葩机型需要处理兼容性问题,同时Android上的硬编跟Surface以及openGL关系比较密切,网上相关知识较少,需要自己摸索踩坑。
  
硬编的主要流程如下图所示,可以看到所有的数据,从采集、编码、显示以及合成都在GPU里面进行流转。

结合上面分析的两种方案我们可以看到,在Android这类移动平台上,使用第二种硬编的方式是比较合适的。由于短视频的本地录制不像直播等场景对带宽的要求比较大,需要动态调节编码器码率帧率的情况,本地录制可以将编码器的码率设置的比较高,也不需要动态改变分辨率。因此采用硬件编码的方式既可以省CPU的性能又可以实现720P的高效编码。
确定了方案之后,我们就着重讲一下硬编方案的各个步骤的实现方式。
●●●
自定义相机的开发
我们知道根据Android的系统Camera API,可以通过setPreviewDisplay接口给Camera设置一个SurfaceView的SurfaceHolder就可以让Camera采集的数据显示到SurfaceView上了。这个接口的好处是系统帮我们处理了相机采集的各种角度同时进行了绘制,如果只是简单的录制可以这么使用,但我们需要对相机采集的数据进行滤镜处理,那这个接口就不合适了。
因此我们需要用到另外一个接口 setPreviewTexture:

通过给Camera设置一个SurfaceTexture,可以将Camera采集的数据先映射到这个SurfaceTexture上,然后我们根据创建这个SurfaceTexture的TextureID来获取GPU上的Camera数据
滤镜以及本地绘制
我们通过SurfaceTexture绑定的TextureID可以获取到Camer采集到GPU上的视频数据。然后可以将TextureID送给一些第三方滤镜库进行美颜滤镜或是自己编写Shader进行磨皮和美白。自己编写Shader需要opengl以及图像算法方面的知识,通常需要专门的开发人员,这里就不做详细的展开了(当然最简单的就是接入网易云短视频SDK了,里面实现了磨皮、美颜和多款滤镜)。
本地绘制主要靠opengl进行绘制,我们需要先在Camera的采集回调线程上创建一个EGLContext以及EGLDisplay和EGLSurface, 其中EGLContext是opengl在该线程上的上下文,EGLDisplay是一块GPU中的虚拟显示区,主要用于缓存GPU上的视频数据,EGLSurface为具体显示的View到opengl上的映射,是真正绘制到View上的工具。当接受到Camera采集回调的一帧数据后,我们先通过SurfaceTexture.updateTexImage()方法,将Camera采集的数据映射到SurfaceTexture。然后根据glsl语言将TextureID对应的数据绘制到EGLDisplay上,这里需要注意的是,Camera采集是有角度的,横竖屏下角度不同,可以通过SurfaceTexture的getTransformMatrix方法获取角度矩阵,然后把矩阵传给EGLDisplay进行旋转。EGLDisplay旋转绘制完成后通过eglSwapBuffers方法就可以将EGLDisplay上的数据拷贝到EGLSurface上进行显示了。Android 系统中的GLSurfaceView最后就是通过eglSwapBuffers将数据显示到我们看到的屏幕上的。
硬件编码
Android上的硬件编码主要靠MediaCodeC API实现的,下面是MediaCodeC比较经典的一张数据处理图

从图中我们看到,MediaCodeC主要处理流程就是:
·创建并配置一个MediaCodec对象
·循环直到完成:
如果输入缓冲区就绪,读取一个输入块,并复制到输入缓冲区中
如果输出缓冲区就绪,复制输出缓冲区的数据
·释放MediaCodec对象

从Android的官方文档我们看到,MediaCodeC支持ByteBuffers和Surface两种输入方式,文档也指明了Surface方式可以提高编码效率,而且我们上面的Camera数据也是采集到的SurfaceTexture,因此我们这里使用Surface方式作为输入源。

我们在上面显示部分提到EGLSurface是作为真正输出显示的模块,MediaCodec也是。我们先通过MediaCodec创建一个Surface,然后将这个Surface绑定到一个EGLSurface,当Camera采集的数据回调时,我们只要重复一次绘制模块的操作,将Camera采集到SurfaceTexture上的数据swapBuffers到EGLSurface 上就可以了。然后循环MediaCodec输出缓冲区,MediaCodec就会将编码后的数据返回给我们了。这样做的好处就是将显示和编码完全分离了,即使我们没有UI View的情况下也可以进行编码,比如在不同Activity之间切换也不会影响我们的正常编码。

视频合成
Android上视频合成主要通过MediaMuxer API实现。MediaMuxer类相对比较简单,特别是配合MediaCodec使用。 我们只需要通过 addTrack 来添加视频和音频通道接口。AddTrack 接口需要传入一个MediaFormat对象,MediaFormat即媒体格式类,用于描述媒体的格式参数,如视频帧率、音频采样率等。还好我们使用了MediaCodeC,MediaCodeC会返回MediaFormat给我们,如果是使用软编然后用MediaMuxer进行合并的话,这里有一个比较大的坑,如果手动创建MediaFormat对象的话,一定要记得设置"csd-0"和"csd-1"这两个参数:其中"csd-0"和"csd-1"对应的是视频的sps和pps,对于AAC音频的话,对应的是ADTS。不设置的话会崩溃的。设置完这些之后,只要编码器来一帧数据,我们送到MediaMuxer中可以出来MP4了。
最后大体的流程图就是:

网易云短视频SDK按照上述方案实现后的效果就是:720P、30帧,磨皮、美颜滤镜全开的情况下,市面上的绝大部分手机都可以达到这个效果,连一些Android 4.3系统的老爷机也可以,而且CPU占用才4~5%,录制一小时也感觉不到手机发烫

朱金波/网易资深开发工程师
0
回复

为什么集成没有音视频的hyphenatechat_3.5.1.jar 后登陆后一直提示找不到EMConferenceManager 环信_Android

回复

NaoiAyato 发起了问题 • 1 人关注 • 16 次浏览 • 2018-09-26 15:37 • 来自相关话题

1
回复

调用登录方法异常,提示 Failed resolution of: Lcom/hyphenate/chat/EMConferenceManager; 环信 android 环信_Android 登录 异常

NaoiAyato 回复了问题 • 1 人关注 • 110 次浏览 • 2018-09-26 15:29 • 来自相关话题

3
回复

继承EaseBaseActivity后onResume方法中 EaseUI.getInstance().getNotifier().reset();报错,求大神看是啥问题

睡不醒的米老鼠 回复了问题 • 4 人关注 • 2547 次浏览 • 2018-09-26 13:38 • 来自相关话题

0
回复

vivo手机播放视频错误 环信_Android 无法播放视频 vivo

回复

发起了问题 • 1 人关注 • 18 次浏览 • 2018-09-26 10:47 • 来自相关话题

1
回复

导出聊天记录报错:Array ( [error] => apiname is invalid ) 环信集成 环信

kaibisikai 回复了问题 • 2 人关注 • 706 次浏览 • 2018-09-25 10:37 • 来自相关话题

0
评论

git push -f 是什么?应该怎么处理 编程 gitlab

beyond 发表了文章 • 42 次浏览 • 2018-09-25 10:26 • 来自相关话题

我们的内网有使用gitlab作为我们的版本控制工具,最近组里出现了一次误操作,没有更新服务器的代码到本地仓库,直接使用git push -f 强制将本地的修改覆盖了远程仓库的版本,将其他人的commit都给冲掉了,而且无法使用通常的git reset方式回滚,因为使用 git log查看远程仓库的提交历史已经没有其他同事在这之前提交的commit记录了。
一般遇到这种情况,如果同事A将本地覆盖了远程,覆盖了同事B和同事C的commit,而同事B和C本地仓库依旧有他们的提交,这个时候同事B和C只需要同步一下远程,然后再git push -f一下他们的提交,这样就能将被覆盖的commit重新合并到远程仓库里面。

但是我遇到的情况比较特殊,因为当时同事B和同事C是在gitlab的网页版直接编辑的文件,并通过Gitlab提交,也就是说所有人本地都没有同事B和同事C提交的内容,这个时候同事A使用git push -f直接就冲掉了记录,所以就没办法通过上面的办法来回滚了。

废话那么多,下面记录下找回的过程:

 1 场景
```bash
Original:
(remote origin:)
    branch master -> commit 111111
(local)
    branch master -> commit 22222
After git push -f:
(remote origin:)
    branch master -> commit 22222
```
2 找回步骤
(1)这个方法的前提是你有权限登陆部署了Gitlab的服务器,我们需要找到Gitlab保存仓库的目录,首先通过ssh登陆上Gitlab的服务器,然后找到gitlab的存放仓库的地方,默认是在```/var/opt/gitlab/git-data/repositories```。
在这个目录下找到自己要回滚的仓库,并cd到该仓库。
(2)在执行回滚操作前一定要先进行仓库备份:
```bash
tar cvzf project-backup.tgz  /path/to/project.git
```
备份好之后才可以进行下面的操作。
首先gitlab的仓库的目录是这样的:
```
config description HEAD hooks hooks.old.xxx info objects refs
```
在当前目录使用```git fsck```工具找回上次执行的危险操作,直接执行```git fsck```命令,该命令显示所有未被其他对象引用 (指向) 的所有对象,会有如下输出:
```bash
dangling commit ab1afef80fac8e34258ff41fc1b867c702daa24b
```
ab1afef80fac8e34258ff41fc1b867c702daa24就是可能被丢弃的commit,也就是被冲掉的commit,具体是自己想要的哪个,可以:
```
git log ab1afef80fac8e34258ff41fc1b867c702daa24
```
查看在这之前的commit历史,找到自己想要回滚的commit。
(3)找到了想要回滚的commit 哈希值,是不是可以在本地仓库执行
```
git reset --HEAD  ab1afef80fac8e34258ff41fc1b867c702daa24
```
实现回滚了呢?答案是不可以的,因为仓库关于被覆盖的对象已经被清除了,所以clone下来的仓库是没有被覆盖的对象可以回滚的,所以回滚操作还是需要在gitlab的实际仓库里操作。
```
echo ab1afef80fac8e34258ff41fc1b867c702daa24 > refs/heads/master
```
将commit 哈希值直接添加到refs/heads/master文件里,然后克隆远程仓库到本地,你会发现以前的commit又神奇的回来了。

具体的原理需要大家自己去了解git的原理,参考这几篇文章:
https://git-scm.com/book/zh/v1/Git-内部原理-维护及数据恢复
https://superuser.com/question ... 98015
希望对大家有所帮助。
Regards,
codjust
  查看全部

我们的内网有使用gitlab作为我们的版本控制工具,最近组里出现了一次误操作,没有更新服务器的代码到本地仓库,直接使用git push -f 强制将本地的修改覆盖了远程仓库的版本,将其他人的commit都给冲掉了,而且无法使用通常的git reset方式回滚,因为使用 git log查看远程仓库的提交历史已经没有其他同事在这之前提交的commit记录了。
一般遇到这种情况,如果同事A将本地覆盖了远程,覆盖了同事B和同事C的commit,而同事B和C本地仓库依旧有他们的提交,这个时候同事B和C只需要同步一下远程,然后再git push -f一下他们的提交,这样就能将被覆盖的commit重新合并到远程仓库里面。

但是我遇到的情况比较特殊,因为当时同事B和同事C是在gitlab的网页版直接编辑的文件,并通过Gitlab提交,也就是说所有人本地都没有同事B和同事C提交的内容,这个时候同事A使用git push -f直接就冲掉了记录,所以就没办法通过上面的办法来回滚了。

废话那么多,下面记录下找回的过程:

 1 场景
```bash
Original:
(remote origin:)
    branch master -> commit 111111
(local)
    branch master -> commit 22222
After git push -f:
(remote origin:)
    branch master -> commit 22222
```
2 找回步骤
(1)这个方法的前提是你有权限登陆部署了Gitlab的服务器,我们需要找到Gitlab保存仓库的目录,首先通过ssh登陆上Gitlab的服务器,然后找到gitlab的存放仓库的地方,默认是在```/var/opt/gitlab/git-data/repositories```。
在这个目录下找到自己要回滚的仓库,并cd到该仓库。
(2)在执行回滚操作前一定要先进行仓库备份:
```bash
tar cvzf project-backup.tgz  /path/to/project.git
```
备份好之后才可以进行下面的操作。
首先gitlab的仓库的目录是这样的:
```
config description HEAD hooks hooks.old.xxx info objects refs
```
在当前目录使用```git fsck```工具找回上次执行的危险操作,直接执行```git fsck```命令,该命令显示所有未被其他对象引用 (指向) 的所有对象,会有如下输出:
```bash
dangling commit ab1afef80fac8e34258ff41fc1b867c702daa24b
```
ab1afef80fac8e34258ff41fc1b867c702daa24就是可能被丢弃的commit,也就是被冲掉的commit,具体是自己想要的哪个,可以:
```
git log ab1afef80fac8e34258ff41fc1b867c702daa24
```
查看在这之前的commit历史,找到自己想要回滚的commit。
(3)找到了想要回滚的commit 哈希值,是不是可以在本地仓库执行
```
git reset --HEAD  ab1afef80fac8e34258ff41fc1b867c702daa24
```
实现回滚了呢?答案是不可以的,因为仓库关于被覆盖的对象已经被清除了,所以clone下来的仓库是没有被覆盖的对象可以回滚的,所以回滚操作还是需要在gitlab的实际仓库里操作。
```
echo ab1afef80fac8e34258ff41fc1b867c702daa24 > refs/heads/master
```
将commit 哈希值直接添加到refs/heads/master文件里,然后克隆远程仓库到本地,你会发现以前的commit又神奇的回来了。

具体的原理需要大家自己去了解git的原理,参考这几篇文章:
https://git-scm.com/book/zh/v1/Git-内部原理-维护及数据恢复
https://superuser.com/question ... 98015
希望对大家有所帮助。
Regards,
codjust
 
0
回复

CreateLiveRoomActivity.class 这个类131行报错 环信_Android

回复

为你我受冷风 发起了问题 • 1 人关注 • 75 次浏览 • 2018-09-21 14:55 • 来自相关话题

0
回复

Hyphenate.framework里面的头文件找不到 环信_iOS

回复

..... 发起了问题 • 1 人关注 • 69 次浏览 • 2018-09-21 11:29 • 来自相关话题

0
回复
0
回复

集成最新版本的SDK后,怎么实现音视频功能啊,谁有具体的步骤,求教!! 环信_iOS

回复

发起了问题 • 1 人关注 • 79 次浏览 • 2018-09-20 16:18 • 来自相关话题

2
回复

登录成功后杀死应用重新进入就会提示账号在其他手机上登录 环信 android 环信_Android 登录 退出登录

beyond 回复了问题 • 2 人关注 • 130 次浏览 • 2018-09-19 18:13 • 来自相关话题

1
回复

一个账号最多可以创建多少个应用 应用 环信_后台管理

beyond 回复了问题 • 2 人关注 • 100 次浏览 • 2018-09-19 18:11 • 来自相关话题

1
回复

easemob-websdk中的Message类中的video message生成方法为空 webim WebIM API 环信_WebIM

Fizz_Mc 回复了问题 • 2 人关注 • 98 次浏览 • 2018-09-19 17:36 • 来自相关话题

0
评论

《AI企业级应用产品实力榜单》:环信机器人实力上榜 企服头条 环信机器人 AI企业级应用产品实力榜单

beyond 发表了文章 • 37 次浏览 • 2018-09-19 16:46 • 来自相关话题

企服行业头条组织筹办的《AI企业级应用产品实力榜单》对外发榜,从众多报名的产品中,经过层层筛选及评审打分,“环信机器人”凭借深厚的AI技术沉淀以及在保险、教育等领域的大规模落地获得上榜。




环信机器人上榜《AI企业级应用产品实力榜单》
 

作为企业服务领域的资深观察者,企服行业头条一直关注企服领域内的动态,这次组织筹办《AI企业级应用产品实力榜单》,希望寻找有价值的优秀企业级产品,传递企业服务的商业价值和趋势。
 
 
榜单综述
 
企服行业头条根据上榜产品在人工智能方面的特点,把产品划分为几个大类。包括例如商业智能和解决方案类、计算机视觉类、人机交互类等等。

现在,企服君又进一步标注出了这50个产品所处的细分行业,试图进一步挖掘榜单背后蕴藏的行业发展趋势。

在细分行业统计中:纯AI行业产品有25个;信息安全+AI有2个;大数据+AI有11个;云计算+AI有1个;行业SaaS+AI有7个;其他行业+AI有4个。
 
 





 
从行业分布比例图可以很明显看出,虽然此次企服行业头条评选的是企业级AI产品,但细分行业却并非100%全部来自人工智能领域。

不仅如此,榜单甚至一半(50%)的产品都来自非AI行业。而这也恰恰说明,现在越来越多企业开始主动拥抱人工智能技术,人工智能与各个行业的融合也越发紧密。

接下来,企服君就该榜单的典型产品“环信机器人”进行解读。
 
环信机器人:
 
 
AI1.0——4.0,环信机器人全貌展示AI客服发展史

近年,基于规则和传统机器学习的AI 1.0兴起,随着Google等科技大鳄以及资本的推波助澜,基于算法升级的深度学习AI 2.0时代慢慢开始改造客服行业,准确率和召回率(覆盖率)均取得了大幅度提升。到了AI 3.0时代,从单点的文字机器人产品出发实现了全工具链改造,这个阶段环信智能IVR、智能质检、人机协作、环信智能外呼机器人等产品和服务应运而生,到了AI 4.0大规模落地时代,环信又发布了以保险行业为首的四大行业解决方案,环信机器人产品的发展史很好的全貌展示了AI改造中国客服行业的发展历程。

作为自然语言理解技术最先实现商业化落地的领域,智能客服行业吸引了众多市场玩家争相布局。从传统呼叫中心厂商、到SaaS云客服公司、再到客服机器人公司,各类企业都在积极用AI为客服赋能。那么,现阶段什么样的智能客服产品真正实现了大规模落地,帮助企业规模化的优化了生产力结构,助力客服中心从成本中心往利润中心演变,环信机器人4.0似乎已经给出了答案。

对于智能客服赛道上的三类公司,环信CEO刘俊彦用“刀架”和“刀片”做了一个形象的比喻:基础客服系统是刀架,特点是高粘性业务系统,替换成本高,竞争激励毛利相对较低;AI是刀片,特点是技术壁垒高,毛利高,但不能脱离刀架单独存在。传统呼叫中心厂商缺乏一个多租户的、基于云架构的在线客服系统,因此刀架尚不完备;客服机器人厂商从做刀片起家,目前正在竭力补足刀架短板;而像环信这样的云客服厂商先有刀架,后磨砺刀片,能够为客户提供全套智能客服解决方案。

 

环信机器人4.0,低成本可持续运营的客服机器人解决方案

环信机器人4.0致力于为企业提供一套低成本可持续运营的客服机器人解决方案。4.0版本新推出了三大平台级应用(环信AIROOT运营平台、环信AIROOT Pro训练师平台、环信中文语义计算平台)和保险行业智能机器人解决方案,一举将AI在客服行业的传统单点型产品全面升级为体系化整体解决方案。

环信AIROOT运营平台是一个面向客服团队的简单、智能、低成本可持续运营的客服机器人运营平台。通过打造可快速上手的运营体系,建设快速落地的学习闭环。AIROOT提供了机器人运营环节所有涉及到的常用功能,包括:完整的服务数据产品、运维支撑产品、服务运营产品、机器人知识库、知识运营体系产品,使得平台拥有业界领先的知识构建、知识运营和服务交付能力,并且有效降低使用的难度与成本。

针对诸如100坐席+、日咨询会话1万+、知识点1000以上的大型客户,环信AIROOT可以帮助企业实现1-2周完成知识构建快速上线,并在后续的知识持续运营中实现“1天+1人+2小时”完成的运营工作量。保障广大企业真正实现智能客服机器人的“买得起、用得起”的愿望。

环信AIROOT Pro 训练师平台是一个面向专业知识训练师的专业、高效深度调优的客服机器人运营平台。AIROOT Pro通过完整专业的算法优化调优平台,全面打通从“数据清洗”数据标注””模型训练””效果评测””用户反馈”的完整学习闭环,使得能力调优环节中的大批量数据生产、训练以及模型迭代成为可能。并利用环信中文语义计算平台提供的AI能力,全面提升调优过程中的工具智能化程度,有效降低成本。

经实际落地评测,在无需机器人厂商的算法人员、软件工程师、数据工程师参与的情况下,基于AIROOT Pro的训练相较于普通算法平台的能力调优整体效率提升30%以上,客服机器人知识建设周期整体缩短20%。

环信中文语义计算平台是一个面向开发者的自然语言处理(NLP)的能力开放平台。环信中文语义计算平台在经过了近三年的核心算法能力提升和迭代后,在开放NLP基础算法能力的同时,也完整开放了在NLP领域经常使用的应用级别算法能力诸如:纠错、情感分析、意图识别、语义相似度计算等,帮助开发者们在NLP领域的应用环节具有更强的能力,快速应用落地在更多价值场景。

经实际落地评测,环信中文语义计算平台的基于深度学习的意图分类算法在多个测试集上达到了95%准确率的业界领先水平,语义相似度计算到达了93%准确率的业界领先水平。

环信一直秉承着AI必须通过行业解决方案落地帮助企业提能增效解决实际业务问题来体现生产力。基于环信在保险领域的深入积累,环信率先发布了环信机器人保险行业解决方案。环信机器人保险行业解决方案致力于为保险行业提供开箱可用的AI能力,针对寿险、财险保险智能客服、智能IVR、产品推荐、代理人支持等领域的提供了全套综合智能化保险解决方案。以环信机器人保险行业解决方案中的寿险机器人为例,环信的寿险机器人在业界领先的算法和工程能力基础上,还预装了全套寿险服务知识图谱,涵盖了从保险百科到理赔核保的数百个服务场景下的数千条知识图谱,并与业内主流保险核心业务系统预集成打通,真正做到了开箱可用的行业AI能力。

经过近三年的迭代发展,环信机器人已经在保险、证券、教育、物流、银行、电信运营商、航空等领域树立了一批标杆客户,包括新东方、泰康在线、中意人寿、中信证券、长江证券、天津农商行、南京银行、中通快递、厦门航空等。

客户服务作为现代企业和消费者沟通的核心环节,年产业规模高达5000亿元。对于企业来说,如何利用AI新技术、新产品最大化客服价值,如何把客服这个成本中心转化为利润中心,已成为当务之急,或许人工智能产业化改造整个客服行业的奇点已经来临!
 
  查看全部
企服行业头条组织筹办的《AI企业级应用产品实力榜单》对外发榜,从众多报名的产品中,经过层层筛选及评审打分,“环信机器人”凭借深厚的AI技术沉淀以及在保险、教育等领域的大规模落地获得上榜。

微信图片_20180919164853.jpg

环信机器人上榜《AI企业级应用产品实力榜单》


 

作为企业服务领域的资深观察者,企服行业头条一直关注企服领域内的动态,这次组织筹办《AI企业级应用产品实力榜单》,希望寻找有价值的优秀企业级产品,传递企业服务的商业价值和趋势。
 
 
榜单综述
 
企服行业头条根据上榜产品在人工智能方面的特点,把产品划分为几个大类。包括例如商业智能和解决方案类、计算机视觉类、人机交互类等等。

现在,企服君又进一步标注出了这50个产品所处的细分行业,试图进一步挖掘榜单背后蕴藏的行业发展趋势。

在细分行业统计中:纯AI行业产品有25个;信息安全+AI有2个;大数据+AI有11个;云计算+AI有1个;行业SaaS+AI有7个;其他行业+AI有4个。
 
 

15372523952.png

 
从行业分布比例图可以很明显看出,虽然此次企服行业头条评选的是企业级AI产品,但细分行业却并非100%全部来自人工智能领域。

不仅如此,榜单甚至一半(50%)的产品都来自非AI行业。而这也恰恰说明,现在越来越多企业开始主动拥抱人工智能技术,人工智能与各个行业的融合也越发紧密。

接下来,企服君就该榜单的典型产品“环信机器人”进行解读。
 
环信机器人:
 
 
AI1.0——4.0,环信机器人全貌展示AI客服发展史

近年,基于规则和传统机器学习的AI 1.0兴起,随着Google等科技大鳄以及资本的推波助澜,基于算法升级的深度学习AI 2.0时代慢慢开始改造客服行业,准确率和召回率(覆盖率)均取得了大幅度提升。到了AI 3.0时代,从单点的文字机器人产品出发实现了全工具链改造,这个阶段环信智能IVR、智能质检、人机协作、环信智能外呼机器人等产品和服务应运而生,到了AI 4.0大规模落地时代,环信又发布了以保险行业为首的四大行业解决方案,环信机器人产品的发展史很好的全貌展示了AI改造中国客服行业的发展历程。

作为自然语言理解技术最先实现商业化落地的领域,智能客服行业吸引了众多市场玩家争相布局。从传统呼叫中心厂商、到SaaS云客服公司、再到客服机器人公司,各类企业都在积极用AI为客服赋能。那么,现阶段什么样的智能客服产品真正实现了大规模落地,帮助企业规模化的优化了生产力结构,助力客服中心从成本中心往利润中心演变,环信机器人4.0似乎已经给出了答案。

对于智能客服赛道上的三类公司,环信CEO刘俊彦用“刀架”和“刀片”做了一个形象的比喻:基础客服系统是刀架,特点是高粘性业务系统,替换成本高,竞争激励毛利相对较低;AI是刀片,特点是技术壁垒高,毛利高,但不能脱离刀架单独存在。传统呼叫中心厂商缺乏一个多租户的、基于云架构的在线客服系统,因此刀架尚不完备;客服机器人厂商从做刀片起家,目前正在竭力补足刀架短板;而像环信这样的云客服厂商先有刀架,后磨砺刀片,能够为客户提供全套智能客服解决方案。

 

环信机器人4.0,低成本可持续运营的客服机器人解决方案

环信机器人4.0致力于为企业提供一套低成本可持续运营的客服机器人解决方案。4.0版本新推出了三大平台级应用(环信AIROOT运营平台、环信AIROOT Pro训练师平台、环信中文语义计算平台)和保险行业智能机器人解决方案,一举将AI在客服行业的传统单点型产品全面升级为体系化整体解决方案。

环信AIROOT运营平台是一个面向客服团队的简单、智能、低成本可持续运营的客服机器人运营平台。通过打造可快速上手的运营体系,建设快速落地的学习闭环。AIROOT提供了机器人运营环节所有涉及到的常用功能,包括:完整的服务数据产品、运维支撑产品、服务运营产品、机器人知识库、知识运营体系产品,使得平台拥有业界领先的知识构建、知识运营和服务交付能力,并且有效降低使用的难度与成本。

针对诸如100坐席+、日咨询会话1万+、知识点1000以上的大型客户,环信AIROOT可以帮助企业实现1-2周完成知识构建快速上线,并在后续的知识持续运营中实现“1天+1人+2小时”完成的运营工作量。保障广大企业真正实现智能客服机器人的“买得起、用得起”的愿望。

环信AIROOT Pro 训练师平台是一个面向专业知识训练师的专业、高效深度调优的客服机器人运营平台。AIROOT Pro通过完整专业的算法优化调优平台,全面打通从“数据清洗”数据标注””模型训练””效果评测””用户反馈”的完整学习闭环,使得能力调优环节中的大批量数据生产、训练以及模型迭代成为可能。并利用环信中文语义计算平台提供的AI能力,全面提升调优过程中的工具智能化程度,有效降低成本。

经实际落地评测,在无需机器人厂商的算法人员、软件工程师、数据工程师参与的情况下,基于AIROOT Pro的训练相较于普通算法平台的能力调优整体效率提升30%以上,客服机器人知识建设周期整体缩短20%。

环信中文语义计算平台是一个面向开发者的自然语言处理(NLP)的能力开放平台。环信中文语义计算平台在经过了近三年的核心算法能力提升和迭代后,在开放NLP基础算法能力的同时,也完整开放了在NLP领域经常使用的应用级别算法能力诸如:纠错、情感分析、意图识别、语义相似度计算等,帮助开发者们在NLP领域的应用环节具有更强的能力,快速应用落地在更多价值场景。

经实际落地评测,环信中文语义计算平台的基于深度学习的意图分类算法在多个测试集上达到了95%准确率的业界领先水平,语义相似度计算到达了93%准确率的业界领先水平。

环信一直秉承着AI必须通过行业解决方案落地帮助企业提能增效解决实际业务问题来体现生产力。基于环信在保险领域的深入积累,环信率先发布了环信机器人保险行业解决方案。环信机器人保险行业解决方案致力于为保险行业提供开箱可用的AI能力,针对寿险、财险保险智能客服、智能IVR、产品推荐、代理人支持等领域的提供了全套综合智能化保险解决方案。以环信机器人保险行业解决方案中的寿险机器人为例,环信的寿险机器人在业界领先的算法和工程能力基础上,还预装了全套寿险服务知识图谱,涵盖了从保险百科到理赔核保的数百个服务场景下的数千条知识图谱,并与业内主流保险核心业务系统预集成打通,真正做到了开箱可用的行业AI能力。

经过近三年的迭代发展,环信机器人已经在保险、证券、教育、物流、银行、电信运营商、航空等领域树立了一批标杆客户,包括新东方、泰康在线、中意人寿、中信证券、长江证券、天津农商行、南京银行、中通快递、厦门航空等。

客户服务作为现代企业和消费者沟通的核心环节,年产业规模高达5000亿元。对于企业来说,如何利用AI新技术、新产品最大化客服价值,如何把客服这个成本中心转化为利润中心,已成为当务之急,或许人工智能产业化改造整个客服行业的奇点已经来临!
 
 
0
回复

安卓能接收消息,发送不了消息 安卓无法发送消息

回复

轻雪飞天 发起了问题 • 1 人关注 • 99 次浏览 • 2018-09-19 11:16 • 来自相关话题

1
回复
0
回复

登录成功后直接被挤掉是怎么回事? 环信 android 环信_Android 登录

回复

我与你 发起了问题 • 1 人关注 • 82 次浏览 • 2018-09-19 10:33 • 来自相关话题

3
回复

iOS App asyncSendMessage before upload attachments failed: user not login ios  发消息

轻雪飞天 回复了问题 • 4 人关注 • 620 次浏览 • 2018-09-19 10:33 • 来自相关话题

1
回复

环信3 在高版本安卓上申请数据库权限失败的问题 环信_Android 环信 sqlite权限

回复

勤劳的董永 回复了问题 • 1 人关注 • 100 次浏览 • 2018-09-18 20:56 • 来自相关话题

0
回复

在环信管理后台创建多个应用的数量有没有限制 环信_后台管理

回复

小小聪明屋 发起了问题 • 1 人关注 • 100 次浏览 • 2018-09-18 17:46 • 来自相关话题

0
回复

在平台创建应用的数量有没有限制 环信_后台管理

回复

小小聪明屋 发起了问题 • 1 人关注 • 90 次浏览 • 2018-09-18 17:42 • 来自相关话题

0
回复

在平台创建应用的数量有没有限制 环信_管理后台

回复

小小聪明屋 发起了问题 • 1 人关注 • 92 次浏览 • 2018-09-18 17:25 • 来自相关话题