
WebRTC
文章平均质量分 60
rtc8_com
专注于WebRTC研究,欢迎有共同研究方向的兄弟一起探讨!!
展开
-
WebRTC应用中如何检测回音
在WebRTC应用开发中,我们可能需要知道某个通话过程中是否有回音产生,传统的做法是通过人工去听才能知道。从WebRTC56版本开始,WebRTC提供了一个接口可以让我们知道是否有回音。有两个办法可以观察,一是如果是使用网页版本的WebRTC,你可以在浏览器中输入chrome://webrtc-internals,在打开的网页中关于音频的统计项目中有googResidualEchoLikeli原创 2017-08-22 14:02:36 · 3082 阅读 · 0 评论 -
WebRTC自适应网络带宽之联播方案
假设在一个多个用户参与的视频直播系统中,大部分用户的网络都是非常好,但是只有一两个用户用的是3G,4G上网,网络质量不太好。这种情况下对于发布方应该如何处理呢?一种比较容易想到的方案就是降低发布方的视频码流,这样不管网络好还是网络不好的用户都可以流畅观看视频了,这种方案有个致命缺陷,大部分网络好的用户被少数几个网络差的用户给拖累了。如上图所示,发布方只能发布低于0.原创 2017-08-15 14:40:52 · 5916 阅读 · 2 评论 -
WebRTC中的Opus编码揭秘
WebRTC中默认是采用Opus编码,Opus编码是由silk编码和celt编码合并在一起,silk编码是由skype公司开源的一种语音编码,特别适合人声,适合于Voip语音通信。celt和mp3,aac类似,适合于传输音乐。Opus编码具备以下特点:6 kb /秒到510 kb / s的比特率采样率从8 kHz(窄带)到48 kHz(全频)帧大小从2.5毫秒到60毫秒支持原创 2017-08-11 11:43:40 · 9275 阅读 · 2 评论 -
Chrome 57版本的WebRTC默认使用rtp,rtcp端口复用
流媒体传输协议(RTP)包括两个不同的组件:1,RTP负责传输音视频数据。2,RTCP负责传输控制信令。RTP协议规范规定,“ 底层协议必须提供数据和控制数据包的复用,例如使用单独的UDP端口号 ”。由于使用两个不同的端口(主要是由于NAT穿越)导致的复杂性,RFC-5761 提供了“使用单独的UDP端口解复用RTP和RTCP的替代方法,而仅使用单个UDP端口并在应用程序内解复用”原创 2017-08-09 09:54:40 · 2726 阅读 · 0 评论 -
WebRTC中丢包重传机制的实现
当网络质量突然变的很差并开始丢包时,声音听起来音质会变差,画面帧速会下降,甚至会完全卡住。我们可能需要某种机制来应对这种情况。在WebRTC中,主要有两种机制来应该网络变差的情况:前向纠错:在每个数据包中,您将添加一些关于前一个信息的信息,以防丢失,您需要重新构建它们(flexfec是WebRTC [1]中的新格式)。重传:当接收方检测到有丢包时,它会发送NACK类型的RTCP包给原创 2017-08-08 09:28:17 · 5533 阅读 · 0 评论 -
WebRTC 网页版本输出Log方法
当网页版本的WebRTC程序出了各种问题的时候,你可以想了解WebRTC底层出了什么问题,这个时候我们就要看看WebRTC的日志了,下面提WebRTC日志输出方法:Windows在命令行下输入:1, cd C:\Program Files (x86)\Google\Chrome\Application\2, chrome.exe--enable-logging --原创 2017-08-07 11:31:43 · 2564 阅读 · 1 评论 -
Safari即将支持WebRTC
自从开始做WebRTC开发以来,经常被别人问到,safari浏览器能支持WebRTC吗?我也很希望safari能支持WebRTC,这样就不用写原生WebRTC应用或者Safari浏览器插件了。很高兴的是,近期Apple公司宣布,WebRTC将会进入Safari和iOS 11。事实上,如果你是苹果的注册开发者,你就可以尝试使用支持WebRTC的测试版Safari浏览器。我提前试用了下测试版本原创 2017-08-07 07:36:23 · 480 阅读 · 0 评论 -
WebRTC原生开发和混合开发优缺点分析对比
WebRTC的出现,让企业快速开发出一个支持全平台的音视频程序成为可能。在WebRTC之前,企业想要开发出一个全平台的音视频程序,难度,工作量非常大。使用WebRTC后,音视频程序中一些通用的模块比如音视频采集,播放模块,rtp,rtcp协议模块,都可以直接复用WebRTC现成的,不用自己再重复造轮子。这些模块开发难度不是很大,但是工作量非常大。使用WebRTC后,企业可以专注于优化流程,解决bu原创 2017-08-07 07:35:08 · 1101 阅读 · 0 评论 -
Safari即将支持WebRTC
自从开始做WebRTC开发以来,经常被别人问到,safari浏览器能支持WebRTC吗?我也很希望safari能支持WebRTC,这样就不用写原生WebRTC应用或者Safari浏览器插件了。很高兴的是,近期Apple公司宣布,WebRTC将会进入Safari和iOS 11。事实上,如果你是苹果的注册开发者,你就可以尝试使用支持WebRTC的测试版Safari浏览器。我提前试用了下测试版本原创 2017-08-06 23:01:09 · 2238 阅读 · 0 评论 -
WebRTC原生开发和混合开发优缺点分析对比
WebRTC的出现,让企业快速开发出一个支持全平台的音视频程序成为可能。在WebRTC之前,企业想要开发出一个全平台的音视频程序,难度,工作量非常大。使用WebRTC后,音视频程序中一些通用的模块比如音视频采集,播放模块,rtp,rtcp协议模块,都可以直接复用WebRTC现成的,不用自己再重复造轮子。这些模块开发难度不是很大,但是工作量非常大。使用WebRTC后,企业可以专注于优化流程,解决bu原创 2017-08-06 20:47:59 · 3002 阅读 · 0 评论 -
WebRTC通话过程中如何避免其它进程音量下降
在Windows下,WebRTC通话过程中,会把其它进程的音量自动下降,比如音乐播放器。如何避免这种情况呢?其实很简单,只要修改一下注册表就可以了,用Qt的实现方法如下:void disableCommunicationReduce(){ static const QString key = "HKEY_CURRENT_USER\\SOFTWARE\\Micr原创 2017-08-06 17:02:53 · 820 阅读 · 2 评论 -
WebRTC中OPUS编码相关设置和分析
新版本的WebRTC默认是采用OPUS编码,OPUS编码是silk编码和celt编码的合成,silk编码是skype公司开源的一个编码,特别适合语音通信,它根据人的声音做了很多优化,但不是适合传输高质量的音乐。celt编码相反更适合传输高质量的音乐。OPUS编码在采样率很高的情况下,音质还是非常不错的,以下这个连接地址有很多opus的音频样例,大家可以在线听听。http://www.o原创 2017-08-05 10:27:52 · 5546 阅读 · 1 评论 -
WebRTC手记之初探
作者: 博客园 - 孤竹君 WebRTC是HTML5支持的重要特性之一,有了它,不再需要借助音视频相关的客户端,直接通过浏览器的Web页面就可以实现音视频对聊功能。而且WebRTC项目是开源的,我们可以借助WebRTC源码快速构建自己的音视频对聊功能。无论是使用前端JS的WebRTC API接口,还是在WebRTC源码上构建自己的对聊框架,都需要遵循以下执行流程转载 2017-08-05 10:26:26 · 334 阅读 · 0 评论 -
WebRTC基本概念
前言WebRTC(Web Real-Time Communication),一个可以让用户用自己流量实现音视频实时通信的框架(APIs),支持浏览器(Firefox、Chrome、Opera)以及iOS、Android 原生系统(Poor WP,默哀)。对于觉得带宽贼贵又需要实现用户之间音视频通信的公司来说,这是一个大大的福利。What is WebRTC?官方介绍:转载 2017-08-05 10:25:38 · 595 阅读 · 1 评论 -
实现WebRTC的几个想法
Nikolai Bezruk,译者:张卫滨不借助第三方应用,快速且安全地在浏览器中传输视频——这有可能实现吗?根据你的需求,有不止一种方式能够将WebRTC添加到你的站点之中。WebRTC(Web实时通信,Web Real-Time Communication)是一项开源技术,用来在Web浏览器中实现实时直接的多媒体通信功能。它能够在两个或更多的人之间建立端到端的连接,这对转载 2017-08-05 10:24:47 · 406 阅读 · 0 评论 -
在部署WebRTC的时候什么时候使用TURN
12%,这就是Callstats.io的CEO Varun Singh,告诉WebRTC Conference-in-Conference大会上的听众WebRTC通话失败的比例。对于那些失败的通话,有22%的通话需要某些形式的媒体传输。造成12%这个比例的主要原因是因为网络工程师们没有考虑到NAT防火墙穿透,当搭建很多RTC网络的时候,这是对企业部署十分重要的。关于NAT和防火墙穿透转载 2017-08-05 09:51:29 · 1074 阅读 · 0 评论 -
WebRTC getStats详解 - 从标准、调用到实现
前言getStats是WebRTC一个非常重要的API,用来向开发者和用户导出WebRTC运行时状态信息,包括网络数据接收和发送状态、P2P客户端媒体数据采集和渲染状态等[1]。这些信息对于监控WebRTC运行状态、排除程序错误等非常重要。本文首先描述W3C定义的getStats标准,然后展示如何在JS层调用getStats,最后深入分析WebRTC源代码中getStats的实现。转载 2017-08-05 09:49:45 · 2233 阅读 · 0 评论 -
Webrt中H264编码相关问题
编译WebRTC后,默认是没有把H264编码编进来的。WebRTC中H264编码采用的是openh264,解码默认采用的是ffmpeg,移动版本android,ios默认采用的是系统的h264硬件编码,如果你的手机支持H264硬件编码的话,WebRTC就会默认支持H264.1.如何在桌面版本中开启H264编码 使用gn生成ninja文件时,加入以下两个选项就可以生成 ff原创 2017-08-05 09:48:17 · 1477 阅读 · 0 评论 -
WebRTC中如何设置视频的码流
WebRTC原生就是为了p2p通话而设计的,视频的码流会尽量匹配你的带宽。你会发现,当两个客户端在局域网内通话时,视频的码流会非常大,有时会达到两三兆。在有些业务场景下,你可能不希望要这么大的视频码流,比如会占用你的服务器很大的带宽。如果我们能够灵活的控制视频码流,这对节省服务器带宽会非常有用。 在WebRTC生成的SDP中,与视频编码相关的部分如下:a=rtpmap:1原创 2017-08-05 09:46:19 · 3218 阅读 · 2 评论 -
如何在没有https环境下使用webrtc
新版本的webrtc使用需要Https,但是在内网开发调试时,要配置Https环境比较麻烦,哪有没有办法绕过https的限制呢?下面的方法是教你如何在http下使用webrtc1,点桌面上的Chrome图票,右键->属性,把目票输入框中的内容换成以下内容"C:\Program Files (x86)\Google\Chrome\Application\chr原创 2017-08-05 09:44:14 · 8834 阅读 · 1 评论 -
WebRTC56版本SDP详细解析
v=0//sdp版本号,一直为0,rfc4566规定o=- 7017624586836067756 2 IN IP4 127.0.0.1// RFC 4566 o= //username如何没有使用-代替,7017624586836067756是整个会话的编号,2代表会话版本,如果在会话//过程中有改变编码之类的操作,重新生成sdp时,sess-id原创 2017-08-05 09:42:10 · 3249 阅读 · 1 评论