webrtc

how to do webRTC in reactJs

与世无争的帅哥 提交于 2020-08-10 19:29:14
问题 Am trying to include a webRTC tech to my already existing reactJs App the problem is that react is not recognizing the webRTC API's Line 185:19: 'webkitRTCPeerConnection' is not defined no-undef Line 191:1: 'rtcPeerConn' is not defined no-undef Line 212:3: 'rtcPeerConn' is not defined no-undef Line 214:62: 'rtcPeerConn' is not defined no-undef this function is inside a functional react component function startSignaling(){ displayMessage("start signaling..."); rtcPeerConn = new

获取内网Ip

吃可爱长大的小学妹 提交于 2020-08-10 06:24:39
Chrome44 - 72 亲测可用,利用 webRTC 特性实现。 //get the IP addresses associated with an account function getIPs(callback){ var ip_dups = {}; //compatibility for firefox and chrome var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; var useWebKit = !!window.webkitRTCPeerConnection; //bypass naive webrtc blocking using an iframe if(!RTCPeerConnection){ //NOTE: you need to have an iframe in the page right above the script tag // //<iframe id="iframe" sandbox="allow-same-origin" style="display: none"></iframe> //<script>...getIPs called in here..

Video call causing mobile data connection to go off

人走茶凉 提交于 2020-08-10 03:37:42
问题 Update: It seems the issue is with ISP. When I used other ISP(SIM) it worked on the same phone. Using the previous SIM on other phone caused the same issue there. That means something is happening at ISP's end. What is left there to try after I already have a TURN server set up? const RTCconfiguration = { sdpSemantics: "unified-plan", iceServers: [ { urls: "turn:numb.viagenie.ca", username: "username-goes-here", credential: "password-goes-here" }, { urls: ["stun:stun.voipbuster.com"] } ] }

如何构建低延时直播体验,让互动更实时?

亡梦爱人 提交于 2020-08-09 11:46:15
QuestMobile《2020中国移动直播行业“战疫”专题报告》数据显示, 疫情期间,看直播成为休闲娱乐、获取资讯、上课学习的主要方式,一些高度依赖线下场景的行业也纷纷通过直播进行自救,线上转型直播卖货,政府部门也通过直播形式进行招商、推广农产品等。电商平台在疫情期间加大对直播的支持力度,为滞销农产品直播、云卖车、云卖房、实体店直播卖货提供平台和支持。 直播破圈加速进行,除了各类网络红人外,国家博物馆、知名酒吧、景点等线下主体为网民提供线上逛博物馆、云蹦迪、云旅游服务,吸引了大批年轻用户参与。直播不再是线上娱乐内容的生产工具,而是与商业业务场景结合越来越紧密,逐渐演变为基础的业务工具。 直播的及时性和互动性让他成为信息触达、互动沟通的新媒介,但直播的实时互动效果够好了吗?传统的直播技术延迟非常大,从观众评论到看到主播给出反馈一般要在5-10秒以上。 我们来看下几个典型的尴尬场景: 在线教育,学生提问,老师都讲到下一个知识点了,再返回来回答。 电商直播,询问宝贝信息,主播“视而不理”。 打赏后迟迟听不到主播的口播感谢。 在别人的呐喊声知道球进了,你看的还是直播吗? 高延时影响了直播互动体验,阻碍了直播在一些场景的落地,特别在电商直播,直播间的评论提问是观众和主播互动的一个重要手段,主播的实时互动反馈对直播间的活跃度和交易达成至关重要。 使用常规的直播方案(rtmp 推流,FLV

SRS支持rtmp/srt/gb28181/webrtc上行推流和rtmp/http-flv/hls/dash/gb28181/webrtc下行拉流

℡╲_俬逩灬. 提交于 2020-08-09 10:36:34
Usage 1. 编译SRS 编译SRS,需要切换到Develop分支,并开启gb28181功能: git checkout develop && ./configure --with-gb28181 && make clean && make 然后使用配置文件 conf/push.gb28181.conf 启动: ./objs/srs -c conf/push.gb28181.conf Remark: 一定要修改配置文件中的 host 配置,改成你的服务器的IP,摄像头能访问到的这个IP。后续会改进为自动获取,目前还需要修改配置。 2. 配置摄像头 先找到摄像头IP 使用海康的网络工具SADP https://www.hikvision.com/cn/download_more_393.html?_blank 然后登录到摄像头网页后台按下面的操作配置摄像头,推流到SRS: 最后,观看RTMP流: rtmp://localhost:1935/live/34020000001320000001 Remark: 海康摄像头默认会连接萤石云,可以在APP上看到摄像头的内网IP,然后访问这个IP进入管理页面。其他摄像头也有对应办法,可以配置摄像头使用GB28181推流。 Remark:如果看不了流,请确认你的服务器IP,还有流名称也就是 视频通道编码ID 是否正确。 Remark:

webRTC中音频相关的netEQ(五):DSP处理

和自甴很熟 提交于 2020-08-09 05:32:13
上篇( webRTC中音频相关的netEQ(四):控制命令决策 )讲了MCU模块是怎么根据网络延时、抖动缓冲延时和反馈报告等来决定给DSP模块发什么控制命令的。DSP模块根据收到的命令进行相关处理,处理简要流程图如下。 从上图看出如果有语音包从packet buffer里取出来先要做解码得到PCM数据,没有就不用做解码了。编解码也是数字信号处理算法的一种,是个相当大的topic,不是本文所关注的,本文关注的是对解码后的PCM数据做数字信号处理,如加减速。如果命令是非Normal命令,就要根据命令做DSP处理,是Normal命令就不用做了。最后取出一帧数据用于播放。 MCU发给DSP的主要的控制命令有正常播放(normal)、加速播放(accelerate)、减速播放(preemptive expand)、丢包补偿(PLC,代码中叫expand)、融合(merge)等。正常播放就是不需要做额外的DSP处理。加减速也就是改变语音时长,即在不改变语音的音调并保证良好音质的情况下使语音在时间轴上压缩或者拉伸,或者叫变速不变调。语音时长调整算法可分为时域调整和频域调整,时域调整以重叠区波形相似性(WSOLA)算法为代表,通常用在语音通信中。频域调整通常音乐数据中。丢包补偿就是基于先前的语音数据生成当前丢掉的语音数据。融合处理发生在上一播放的帧与当前解码的帧不是连续的情况下

守得云开见日出——危机之下的音视频技术驱动产品创新

点点圈 提交于 2020-08-08 15:46:30
Photo by Julia M Cameron from Pexels 在全球疫情的今天,大量线上服务短时间内诞生或极速扩张。身处在云计算的时代,如何用远超以往的基础音视频云服务快速构建海量稳定的在线应用,以应对一场全人类的危机就显得尤为重要。本次LiveVideoStackCon 2020线上峰会我们邀请到了腾讯云音视频通信业务总经理李郁韬,他将从视频会议、在线教育和在线娱乐等典型场景来看音视频技术推动下的产品创新和机遇。 文 / 李郁韬 整理 / LiveVideoStack 1. 疫情之下,云计算及音视频通信云助力众多垂直场景落地 疫情之下,各行各业都发生了巨大的变化,其核心本质在于社会活动从线下变成了线上,根据市场调研报告来看,线上应用的用户规模增长最多的行业是效率办公,其次是短视频、在线教育、娱乐应用等。同时,这些应用的用户在线时长也呈现出井喷状,由于复工复课的需求,在线教育迎来了较大的需求增长。 从音视频行业的整体产业链来看,随着疫情的发展,越来越多的线上应用将音视频作为常态工具或标准配置。 大家较为熟知的互联网应用领域在疫情期间迎来比较正常的用户增长。由于复课的需要,各大在线教育相关应用都迎来了用户和在线时长的爆发式增长,同时还有很多垂直行业由于各种压力,开始在各种平台进行电商带货。企业无法进行线下宣传活动,也纷纷搬到线上进行,因此企业直播也迎来了很大的发展机遇

视频直播客户端技术之WebRTC 通过WebView接入小程序

一曲冷凌霜 提交于 2020-08-08 13:56:54
还有别的方法在小程序上做连麦直播互动吗?必须要使用微信小程序开放的语音视频能力吗?也不一定。绕过了微信小程序实时语音视频能力,通过微信小程序 WebView 组件实现了连麦直播的方案。图玩智能科技为企业提供专业的直播技术支持,这里和大家分享一下,欢迎随时咨询www.toivan.com。 这个方案的基本思路是利用 WebView 的浏览器特点,在 WebView 内使用 WebRTC 的 Web API ,从而在小程序上获得实时音视频能力。上图是这个方案的架构图。最底层是微信小程序的基础能力。上一层是 WebView ,微信小程序的 WebView 类似浏览器,那么就可能会支持 WebRTC 。然而必须要注意到,微信小程序的 WebView 在安卓平台上支持 WebRTC ,但在 iOS 平台上面不支持 WebRTC 。 虽然这个方案理论上也能在微信小程序上实现连麦直播,但是它有以下的局限性: 1 )在 iOS 平台上,微信小程序不支持这个方案,上面已经说过; 2 )小程序 WebView 不是完整的浏览器,要比普通浏览器表现差而且有很多的限制; 3 )开发者和操作系统之间隔了好几层:微信底层,小程序, WebView , WebRTC ,然后才是开发者的小程序应用。每一层的抽象都会带来性能上的消耗,都会影响到最终的体验。 这个方案本质上还是一个基于 WebRTC 的解决方案

网易云信流媒体服务端架构设计与实现

拈花ヽ惹草 提交于 2020-08-08 12:50:23
实时音视频通话作为高效便捷的沟通手段在许多场景下得到应用。随着5G商用元年的真正到来,实时音视频通话将会得到更加蓬勃的发展。本次LiveVideoStackCon 2020线上峰会我们邀请到了网易云信资深音视频服务端开发工程师鲁林俊,他将结合网易云信流媒体服务搭建的实战经验,进行一些深入的分享。 文 / 鲁林俊 整理 / LiveVideoStack 大家好,我叫鲁林俊,很高兴参加 LiveVideoStackCon 2020线上峰会 ,本次我分享的主题是网易云信流媒体服务端架构设计与实现。 本次内容主要分为三个部分:一是实时音视频为基础的流媒体服务端设计;二是录制服务方案设计;三是视频会议传输质量控制。 1 实时音视频为基础的流媒体服务端设计 1.1 分发架构 在设计以实时音视频为基础的流媒体服务器之前需要解决的一个问题是:转发方案的选取。讨论比较多的方案有三种: 一是Mesh方案,即通话各端两两进行媒体通道的建立,并交换数据,实现媒体通话。从服务器角度看,这种方案比较简单,服务器只要实现一些信令和打洞相关的能力等就可以实现通话,但这种方案的缺陷是通话能否成功建立依赖于打洞的成功率。 二是SFU弹性转发方案,下行转发的单位是每个用户的单个流。 三是MCU方案,媒体服务器会进行媒体处理,将混合好的音频和视频进行重新编码并转发给下行用户。

Webrtc 开源代码的简单介绍

我只是一个虾纸丫 提交于 2020-08-08 11:23:07
WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android, iOS等。Webrtc 是多媒体通信技术的未来趋势,Google为了成为标准的主导者,将Chrome浏览器里的Webrtc实现代码开源了,浏览器的开源的WebRTC是众多同仁学习研究的重要资源,这个开源实现中的任何的一个技术点都可以拿出来列一个专题进行讨论,这里我们只能简单的介绍一下。 一、视频相关 视频采集---video_capture 源代码在webrtc\modules\video_capture\main目录下,包含接口和各个平台的源代码。 在windows平台上,WebRTC采用的是dshow技术,来实现枚举视频的设备信息和视频数据的采集,这意味着可以支持大多数的视频采集设备;对那些需要单独驱动程序的视频采集卡(比如海康高清卡)就无能为力了。 视频采集支持多种媒体类型,比如I420、YUY2、RGB、UYUY等,并可以进行帧大小和帧率控制。 视频编解码---video_coding 源代码在webrtc\modules\video_coding目录下。 WebRTC采用I420/VP8编解码技术。 VP8是google收购ON2后的开源实现,并且也用在WebM项目中。 VP8能以更少的数据提供更高质量的视频