首页 vue接入腾讯实时音视频trtc-js-sdk的技术难点与解决方案

vue接入腾讯实时音视频trtc-js-sdk的技术难点与解决方案

举报
开通vip

vue接入腾讯实时音视频trtc-js-sdk的技术难点与解决方案     【玩转腾讯云】vue接入腾讯实时音视频trtc-js-sdk的技术难点与解决方案                  技术难点1.低延迟,如果要满足比较流畅地进行实时互动,那么单向的端到端的迟延大概要在400毫秒以下才能保证流畅沟通;2.流畅性,你也很难想象在视频过程中频繁卡顿会有良好的互动;3.回声消除,回声的产生是扬声器播放的声音经过环境反射被麦克风重新采集并传输给对方,这样对方就会一直听到自己的回声,整个互动过程会非常难受;4.国内外互通,随着现在国内同质化产品越来越多,国内的竞争也异常激烈,很多厂商...

vue接入腾讯实时音视频trtc-js-sdk的技术难点与解决方案
     【玩转腾讯云】vue接入腾讯实时音视频trtc-js-sdk的技术难点与解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载                   技术难点1.低延迟,如果要满足比较流畅地进行实时互动,那么单向的端到端的迟延大概要在400毫秒以下才能保证流畅沟通;2.流畅性,你也很难想象在视频过程中频繁卡顿会有良好的互动;3.回声消除,回声的产生是扬声器播放的声音经过环境反射被麦克风重新采集并传输给对方,这样对方就会一直听到自己的回声,整个互动过程会非常难受;4.国内外互通,随着现在国内同质化产品越来越多,国内的竞争也异常激烈,很多厂商纷纷选择出海,这时就需要做好海内外的互通;5.海量并发,当然这不仅仅指实时音视频了,基本对于任何一款互联网产品而言都是必须要考虑的难点。解决思路和实践经验1、低延迟首先,如果实时音视频要保证低延迟,那么前端和后端的整个链条一定要做到极致的,比如前端的一些编码算法、流控,甚至丢帧、追帧策略等等都要做到足够好。另外,不同的业务场景下,编码器的选择也会有所区别,从而会带来不同的编码延迟,因此不同的业务场景能达到的延迟程度也是不一样的。其次,就是对推拉流网络的选择,通常的方案是让需要实时互动的用户通过核心语音视频网络——像BGP这样的优质节点来做语音视频传输,而对于一些特定场景来说,比如互动游戏会直播给一些围观用户看,那么这里就需要做转码、转 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 、甚至混流,再通过 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 分发网络去分发。像内容分发网络本身天然就有做就近接入,但对于接入核心语音视频网络就需要有智能的调度策略来完成就近接入,以及跨运营商、跨区域的接入,比如可以采用上次登录IP、常用IP和区域调度,甚至可以测速再去连接,当然网络调度的策略也需要根据业务群的分布仔细规划,甚至采用多个策略配置权重的方式。2、流畅性要实现流畅性也会有很多的技术难点和策略,我主要会介绍其中几种。第一、可以做动态伸缩的JitterBuffer,在网络较差或者网络抖动比较剧烈的情况下,可以适当增大JitterBuffer,从而降低一点点延迟来对抗抖动。第二、快播和慢播技术,在网络较差的环境,可以在用户无感知的条件下稍微降低播放速度,来应对短暂网络抖动引起的立即卡顿,当网络恢复可以加快速度追回来,但这种方式并非适合所有场景,比如对于节奏要求非常准确的唱歌场景,当播放速度稍微放慢就可以被感知。第三、码率自适应,也就是以比较合适的码率做动态传输,为了保证流畅度甚至可以调整帧率和分辨率。语音视频引擎会根据当前网络测速的结果和应用所期望的码率,动态地调整码率、帧率和分辨率,最终达到流畅观看的用户体验。第四、分层编码、传输控制,在推流端做一些分层的编码,这样在拉流端可以动态根据侦测到的网络带宽情况来拉取不同的数据去做渲染。分层编码允许拉流端取选择不同层次的视频编码数据,网络情况好的时候,就拉取较多层次的数据;网络情况差的情况下,就拉取基础层次的数据。第五、动态调度,当在推拉流端监测当前推拉流质量比较差,而且即使通过降低码率、帧率和分辨率等策略已经无法保证质量,这时就可以选择放弃这条链路,直接重新做选入、建立连接,当然在这个过程中可能会出现短暂的停顿。3、回声消除首先介绍下回声消除的原理:对端发送的信号会先给到回声消除的模块,作为将来消除的参考信号,再把信号给到扬声器播放,扬声器播放后由于周围环境反射形成回声,与真实的音频输入一同被麦克风采集,这时采集到的输入信号是带有回声的,回声消除模块会根据前面的参考信号生成滤波抵消掉回声消后再发送出去。原理听起来会比较简单,但在实际过程中却蕴藏着很多的难点,比如回声消除模块接收的参考信号与最终被环境反射后的回声本身就是存在差异的,此外设备也会极大的影响回声消除,尤其是国内的安卓机型特别多,比如国内某手机厂商,从麦克风采集音频数据到提交中间有将近一百毫秒的延迟,这时回声消除算法如何适应这么长回声延迟的手机就很关键;再比如很多用户在直播中都会用外置声卡,甚至是模拟器,这无形中也会带来回声的延迟。除了设备,场地同样存在很大的相关性,对于普通会议室,设置40米的回声延迟可能已经足够了,但一些大会场这种回声延迟能达到将近上百米,这也是一种挑战。关于回声消除,其实谷歌开源的WebRTC提供了回声消除模块,但本应用的设计本身是为了在PC端实时音视频互动的场景,在移动端的适应性上就会差一些,尤其体现在安卓的一些低端机上。而相对来说,苹果因为整体硬件、软件全是自己实现的,麦克风、扬声器也都有声学模型设计,因此回声消除的效果会比安卓好很多。即构科技的音视频引擎都是采用自研,在真机和模拟器等1000多的机型上测试过,都可以做到很好的回声消除。4、国内外互通前面提到很多产品都会选择出海,包括主打国内市场的产品也会有一些海外用户,因此流媒体数据和控制信令就要做好跨国的互通,这就需要考虑在全球合理布置一些中继节点。这张图就是一个典型的中继续传,北京用户和迪拜用户之间要做视频沟通,根据就近接入原则他们会分别连接当地的节点,而这两个节点间如果互拉,效果会非常差,这时就需要布置适合的中继节点,比如香港、新加坡、日本等等,数据路径的选择是需要根据业务侧决定的,也就是说在物理链路路由之上还要再有一条业务的路由表,需要根据用户场景制定,包括用户分布、用户访问频率、高频段峰值等等,可能每次的路由都会有所不同。5、海量并发海量并发是所有互联网产品都会遇到的问题,这里就不再展开,主要要考虑负载均衡,如何平滑扩容,对于无法覆盖的地方要做代理调度,甚至需要考虑容灾、接入层的设计等等。实时语音视频的技术门槛相对比较高,如果依靠自己研发,可能即使会投入很多开发成本也无法与匹配市场快速发展的节奏。我们可以先看一下腾讯的实时音视频(TRTC)。整体流程根据业务逻辑在service里签名传到前台,前台根据userId,和签名,房间号(房间号后台管理,每进入房间默认创建房间号,返回前端)进入房间,然后根据前台操作开启视频直播,此房间号后台 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 后广播到用户展示的房间列表,其他用户通过点击房间号,进入各个房间,根据操作开启关闭摄像头通讯。集成方式下载npmitrtc-js-sdk引入importTRTCfrom"trtc-js-sdk";文档上的看到这样配置constclient=TRTC.createClient({mode:'videoCall',//实时音视频通话模式,设置为‘videoCall’。sdkAppId,//您从 申请 关于撤销行政处分的申请关于工程延期监理费的申请报告关于减免管理费的申请关于减租申请书的范文关于解除警告处分的申请 的sdkAppIduserId,//用户ID不唯一的随机数,可自己写userSig//用户签名});看一下源码和demo.发现userSig和sdkAppId是从genTestUserSig这个方法来的,其他userId,roomId自己随意写SDKAppId,需要替换为您自己账号下的SDKAppId,需在申请,SECRETKEY也一样需要替换为您自己账号下的SECRETKEY具体申请及demo请参考官方文档:点我查看我们来看一下如何使用,代码做了必要的注释。需要注意的是一定要给以上div添加宽高,否则视频无法显示//本地流.local-stream{width:500px;height:500px;}//远端流.distant-stream{width:200px;height:200px;}要查看的申请的SDKAPPID是否可用,服务器端口也要注意打开,特别注意线上环境要在https环境下运行,详情可参考官网,以下有记录地址。总结ios11版本可以在Safari浏览器中才能打开,微信浏览器不支持,可切换为外部的Safari浏览器中打开,经测试,h5端IOS微信内置浏览器不支持调用,Android浏览器允许打开摄像头情况下调用正常。如果报Relayservertimeoutobserved错误,可以查看两端通信的userID是否是一样的,相同无法推送远方流给双方,和自己打电话给自己无法打通一个道理,可自行在userID后面加上随机数,防止两端id重复。如果报navigator.mediaDevicesisundefined错误,其中主要原因是浏览器的安全限制,通过MediaDevices.getUserMedia()获取用户多媒体权限时,需要注意其只工作于以下三种环境:1.localhost域,不要用ip地址访问,比如127.0.0.1。2.启了https的域,http的不能用。3.使用file:///协议打开的本地文件,线上环境一定要https协议!这样就完成了简单的接入工作,每个开发的业务工作可能不一样,具体的可以参考官方的API文档 -全文完-
本文档为【vue接入腾讯实时音视频trtc-js-sdk的技术难点与解决方案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
永兴文档
暂无简介~
格式:doc
大小:118KB
软件:Word
页数:9
分类:互联网
上传时间:2023-06-22
浏览量:48