
webrtc
文章平均质量分 86
伍意
这个作者很懒,什么都没留下…
展开
-
webrtc成功编译(windows vs2015)
参考官网 因下载实在太难了,建议从WEBRTC群 网盘下载后再通过下面步骤生成并编译推荐网盘2016-5-31代码(WebRTCer分享)http://pan.baidu.com/s/1o8Eh5LC 密码: kgas分享一个我在2016年1月初下载的源码,带vs2013 sln,可用,需要重新执行生成2015 slnhttps://255a5d.lt.yunpan原创 2016-06-04 20:40:37 · 11890 阅读 · 10 评论 -
WEBRTC视频网络传输到解码输出
一. 视频传输到解码VideoCodingModuleImpl类其实并没有使用 函数调用次顺:VideoReceiveStream::DeliverRtp->RtpStreamReceiver::DeliverRtp->RtpReceiverImpl::IncomingRtpPacket->RTPReceiverVideo::ParseRtpPacket->RtpStre原创 2016-12-21 23:38:31 · 7487 阅读 · 1 评论 -
WEBRTC 如何建立P2P连接
WEBRTC如何建立P2P连接媒体通道建立和信令通道建立搜集候选地址 调用顺序PeerConnection::SetLocalDescription->WebRtcSession::SetLocalDescription->WebRtcSession::CreateChannels[创建传输通道和媒体通道,以视频为例]原创 2016-12-28 18:32:01 · 6667 阅读 · 0 评论 -
WEBRTC 音频从采集到网络发送
音频从采集到网络P2P发送AudioDeviceBuffer::DeliverRecordedData[由采集线程调用]->VoEBaseImpl::RecordedDataIsAvailable->VoEBaseImpl::ProcessRecordedDataWithAPM->Channel::EncodeAndSend()[音频编码前]->AudioCodingModuleImpl:原创 2016-12-29 21:54:13 · 3850 阅读 · 1 评论 -
WEBRTC RFC5766-TURN协议
摘要 如果一台主机处于NAT后面,那么在一定条件下两台主机无法之间进行通讯。在这种条件下,那么使用中继服务提供通讯是有必要的。这个规范定义了一个名为TURN(使用中继穿越NAT)的协议,它允许一台主机使用中继服务与对端进行报文传输。TURN不同于其它中继协议在于它允许客户机使用一个中继地址与多个对端同时进行通讯。 TURN协议也是ICE(交互式连接建立)协议转载 2017-02-04 21:58:48 · 1936 阅读 · 1 评论 -
WEBRTC 视频接收到解码
一. 视频传输到解码VideoCodingModuleImpl类其实并没有使用函数调用次顺:VideoReceiveStream::DeliverRtp->RtpStreamReceiver::DeliverRtp->RtpReceiverImpl::IncomingRtpPacket->RTPReceiverVideo::ParseRtpPacket->RtpStr原创 2017-01-24 08:11:37 · 4479 阅读 · 1 评论 -
WebRTC 拥塞控制技术
1. 概述对于共享网络资源的各类应用来说,拥塞控制技术的使用有利于提高带宽利用率,同时也使得终端用户在使用网络时能够获得更好的体验。在协议层面上拥塞控制是TCP的一个总要的组成部分;但是对于非面向链接的传输层协议,如UDP,其在协议层面上并没有对拥塞控制进行强制性的要求,这样做保证了最优的传输性能,且在拥塞控制的设计上也保留了更大的灵活性。WebRTC为我们提供了强大的音视频媒体引转载 2017-02-22 11:04:07 · 2334 阅读 · 0 评论 -
WebRTC 视频接收缓冲区基于KalmanFilter的延迟模型
在WebRTC的视频处理流水线中,接收端缓冲区JitterBuffer是关键的组成部分:它负责RTP数据包乱序重排和组帧,RTP丢包重传,请求重传关键帧,估算缓冲区延迟等功能。其中缓冲区延迟JitterDelay对视频流的单向延迟有重要影响,很大程度上决定着应用的实时性。本文不打算全面分析接收端缓冲区的实现细节,只针对缓冲区延迟JitterDelay的计算这一议题进行深入分析。1 接收端延转载 2017-02-22 11:25:07 · 2801 阅读 · 1 评论 -
WebRTC 基于GCC的拥塞控制(上)
实时流媒体应用的最大特点是实时性,而延迟是实时性的最大敌人。从媒体收发端来讲,媒体数据的处理速度是造成延迟的重要原因;而从传输角度来讲,网络拥塞则是造成延迟的最主要原因。网络拥塞可能造成数据包丢失,也可能造成数据传输时间变长,延迟增大。拥塞控制是实时流媒体应用质量保证(QoS)的重要手段之一,它在缓解网络拥堵、减小网络延迟、平滑数据传输等质量保证方面发挥重要作用。WebRTC通控制发送端数转载 2017-02-22 11:37:47 · 3655 阅读 · 0 评论 -
WebRTC 基于GCC的拥塞控制(下)
本文在文章[1]的基础上,从源代码实现角度对WebRTC的GCC算法进行分析。主要内容包括: RTCP RR的数据源、报文构造和接收,接收端基于数据包到达延迟的码率估计,发送端码率的计算以及生效于目标模块。拥塞控制是实时流媒体应用的重要服务质量保证。通过本文和文章[1][2],从数学基础、算法步骤到实现细节,对WebRTC的拥塞控制GCC算法有一个全面深入的理解,为进一步学习WebRTC奠转载 2017-02-22 15:44:14 · 3222 阅读 · 1 评论 -
WEBRTC RTP/RTCP协议族
RF3550定义实时传输协议RTP和它的控制协议RTCP。RTP协议是Internet上针对流媒体传输的基础协议,该协议详细说明在互联网上传输音视频的标准数据包格式。RTP本身只保证实时数据的传输,并不能提供可靠传输、流量控制和拥塞控制等服务质量保证,这需要RTCP协议提供这些服务。RTCP协议负责流媒体的传输质量保证,提供流量控制和拥塞控制等服务。在RTP会话期间,各参与者周期性彼此发送转载 2017-02-22 20:15:04 · 4726 阅读 · 0 评论 -
WEBRTC RELAY---COTURN
WEBRTCRELAY---COTURN WEBRTC P2P穿透不了采用RELAY策略,RELAY实现采用标准的RFC5766(UDP Allocation),当然少不了RFC5389,但没有实现RFC6062(TCP Allocation) RELAY采用的传输层协议,由STUN Attributes REQUESTED-TRANSPORT决定,RFC5766定义UDP ,RFC6原创 2017-02-01 21:54:36 · 3804 阅读 · 2 评论 -
WebRTC中RTP/RTCP协议实现分析
一 前言RTP/RTCP协议是流媒体通信的基石。RTP协议定义流媒体数据在互联网上传输的数据包格式,而RTCP协议则负责可靠传输、流量控制和拥塞控制等服务质量保证。在WebRTC项目中,RTP/RTCP模块作为传输模块的一部分,负责对发送端采集到的媒体数据进行进行封包,然后交给上层网络模块发送;在接收端RTP/RTCP模块收到上层模块的数据包后,进行解包操作,最后把负载发送到解码模转载 2017-06-16 11:13:07 · 747 阅读 · 0 评论 -
WEBRTC 实时视频传输中的RTCP协议码率控制报文
流媒体传输中常用的RTCP包主要有SR/RR/SDES/BYE/APP/XR,主要由RFC 3611和RFC 3550定义。而WEBRTC视频中常用的RTCP包比语音要多很多,语音的RTCP主要用于状态传递,统计数据。而视频中的RTCP更多赋予了控制功能,比如关键帧请求,码率控制等等。本文不介绍语音中的RTCP,只介绍视频中的RTCP包。这些报文遵守RFC458转载 2017-06-16 21:34:51 · 2780 阅读 · 0 评论 -
WEBRTC 发送端拥塞控制
音视频传输核心主要是通过发送端来控制服务质量,但服务质量的决策可根据发送端丢包率算法和接收端数据包延迟算法来计算实际的目标码率,进而反馈给源端,即编码端和RTP发送端,如下类图:数据流图函数主要调用次顺:拥塞算法得到的码率如何作用于编码模块和发送模块CongestionController::Process->BitrateControllerImpl::P原创 2017-06-18 11:12:47 · 2351 阅读 · 0 评论 -
WEBRTC 候选地址收集
#include "webrtc/base/thread.h"#include "webrtc/base/asyncinvoker.h"#include "webrtc/p2p/base/basicpacketsocketfactory.h"#include "webrtc/p2p/client/basicportallocator.h"#include "webrtc/p2p/c原创 2017-06-18 13:00:50 · 2005 阅读 · 0 评论 -
WEBRTC 线程类
Thread 具备多种职责1.传统的提供运行一个任务 由用户实现Runnable中的接口Run 然后调用Start(Runnable) 或直接覆盖 virtual void Run() 然后调用Start2.基于消息队列异步处理 只要Post(消息处理者,消息本身) 然后汇总另一个线程运行,当然还的启动Start(NULL)3.基于网络事件的处理原创 2016-06-25 15:49:32 · 2978 阅读 · 0 评论 -
WEBRTC音视频接收(从网络接收RTP包到组帧)
WebRtcSession::SetLocalDescription|WebRtcSession::SetRemoteDescription->WebRtcSession::CreateChannels->WebRtcSession::CreateVoiceChannel|WebRtcSession::CreateVideoChannel->ChannelManager::Cr原创 2016-09-07 18:55:17 · 6374 阅读 · 0 评论 -
WEBRTC SDP
本端SDP形成1.发起CreateOffer请求 或CreateAnswer响应2.PeerConnection::CreateOffer->PeerConnection::GetOptionsForOffer[获取SDP媒体属性]3.WebRtcSession::CreateOffer[每个PeerConnection一个WebRtcSession]4.WebRtcSes原创 2016-07-19 23:07:29 · 10627 阅读 · 0 评论 -
WebRTC Native APIs
The WebRTC Native APIs implementation is based on W3C’s WebRTC 1.0: Real-time Communication Between Browsers.The code that implements WebRTC Native APIs (including the Stream and PeerConnect转载 2016-06-26 23:28:43 · 1558 阅读 · 0 评论 -
WEBRTC CAPTURE 视频采集
WEBRTC 视频采集模块,支持WINDOWS IOS ANDROID LINUX同时支持自定义Capture 比如虚拟Capture 左边是具体平台的实现,右边是面向使用者的接口客户通过 WebRtcVideoDeviceCapturerFactory::Create 创建视频采集对象 返回抽象接口 VideoCapturer,实际创建了WebRtcVideoCapturer 对原创 2016-06-29 14:13:11 · 3197 阅读 · 0 评论 -
WEBRTC 支持H264编解码
WEBRTC视频编解码支持H264 VP8 VP9 但是默认是VP8 ,根据SDP描述协商WEBRTC H264编码采用OPENH264 解码采用FFMPEG一 让WEBRTC支持H264编码1. 修改配置支持H264编码 webrtc/build/common.gypi rtc_use_h264=1(只要有都设为1),这样OPENH264就会生成 然后需要重新编译原创 2016-06-30 09:46:35 · 16467 阅读 · 6 评论 -
GIPS-NetEQ 最大化话音质量、最小化延迟
× GIPS-NetEQ 最大化话音质量、最小化延迟1. GIPS NetEQ概述 GIPS NetEQ是一项专为IP电信系统开发的高级语音质量处理技术,其能够在大幅提高语音质量的同时,有效地减少由于bu转载 2016-07-01 11:22:04 · 1508 阅读 · 0 评论 -
WebRTC NetEQ 音频引擎
WebRTC由语音引擎,视频引擎和网络传输三大模块组成,其中语音引擎是WebRTC中最具价值的技术之一。WebRTC语音引擎由一系列音频和网络处理模块组成,包括了从音频采集到网络传输等处理流程的完整解决方案。语音引擎工作流程图语音引擎的一般工作流程如下:1.发起端进行声音采集2.采集到的声音信号进行回声消除,噪音抑制,自动增益控制处理3.语音压缩编码转载 2016-07-01 11:25:02 · 2698 阅读 · 0 评论 -
WEBRTC SOCKET
原创 2016-07-02 18:05:14 · 1030 阅读 · 0 评论 -
WEBRTC 媒体引擎MediaEngine
WEBRTC 媒体引擎包括音频引擎 和 视频引擎音频引擎包括 采集 处理 编码 传输 处理 解码 视频音频包括 采集 处理 编码 传输 处理 解码 视频采集流程一.创建VideoCapturer 1.创建VideoCaptureFactory::CreateDeviceInfo 2.查询采集设备 GetDeviceName 3. 通过工厂方法创建Video原创 2016-07-02 17:53:23 · 2273 阅读 · 0 评论 -
WEBRTC 视频接收原理及流程
创建解码器VideoChannel::SetRemoteContent_w->BaseChannel::UpdateRemoteStreams_w->WebRtcVideoChannel2::AddRecvStream->WebRtcVideoChannel2::AddRecvStream[new WebRtcVideoReceiveStream]->WebRtcVideoRe原创 2016-07-25 12:39:56 · 7717 阅读 · 0 评论 -
WEBRTC TURNSERVER配置
如何让WEBRTC 支持P2P RELAY一:下载libevent下载http://libevent.org/turnserver下载https://github.com/coturn/coturn newhttps://github.com/freewebsys/rfc5766-turn-server old二:配置添加用户密码1. 直接修改 tur原创 2016-07-14 17:08:52 · 13116 阅读 · 5 评论 -
WebRTC原生音频采集
转载请注明出处:http://www.cnblogs.com/fangkm/p/4374668.html 上一篇博文介绍了本地视频采集,这一篇就介绍下音频采集流程,也是先介绍WebRTC原生的音频采集,再介绍Chromium源码对它的定制。1. WebRTC原生音频采集先介绍一下WebRTC中与音频采集貌似相关的接口概念:结构上看起来是不是和视频Track的结构类似?不转载 2016-07-04 22:42:48 · 4060 阅读 · 0 评论 -
WebRTC手记之本地视频采集
转载请注明出处:http://www.cnblogs.com/fangkm/p/4374610.html 前面两篇文章介绍WebRTC的运行流程和使用框架接口,接下来就开始分析本地音视频的采集流程。由于篇幅较大,视频采集和音频采集分成两篇博文,这里先分析视频采集流程。分析的时候先分析WebRTC原生的视频采集流程,再捎带提一下Chromium对WebRTC视频采集的适配,这样能更好地理转载 2016-07-04 22:43:45 · 1456 阅读 · 0 评论 -
WebRTC手记Channel概念
转载请注明出处:http://www.cnblogs.com/fangkm/p/4401075.html 前面两篇博文完整地介绍了WebRTC音视频的采集模块,接下来应该开始介绍关键的音视频编码模块。不过在介绍音视频编码模块之前,需要介绍一下Channel概念,WebRTC的每路数据的传输流程都封装成一个Channel对象。详细UML图如下:MediaChannel及其派生类封转载 2016-07-04 22:45:08 · 1263 阅读 · 0 评论 -
WEBRTC DataChannel使用
WEBRTC DataChannel 数据通道的 使用Webrtc DataChannel 有2中数据传输协议DCT_RTP-不可靠 ,DCT_SCTP-可靠前者必须加密SDES,当然可以去掉加密,后者必须DTLS,还没有去掉过,正在尝试...以DCT_RTP传输为例 1.设置参数 rtc_configuration.enable_rtp_data_channel = tr原创 2016-07-16 21:45:14 · 6934 阅读 · 2 评论 -
WEBRTC DataChannel SCTP
In WebRTC, DataChannel API is used to send non-media data (sending arbitrary application data). To send the data between the peers, DataChannel uses SCTP (Stream Control Transmission Protocol) w原创 2016-07-17 22:52:26 · 2931 阅读 · 0 评论 -
WebRTC Data Channels RFC
WebRTC Data Channelshttps://tools.ietf.org/html/draft-ietf-rtcweb-data-channel-13draft-ietf-rtcweb-data-channel-13.txtAbstract The WebRTC framework specifies protocol support for direct转载 2016-07-18 23:38:32 · 1458 阅读 · 0 评论 -
Why was SCTP Selected for WebRTC’s Data Channel?
https://bloggeek.me/sctp-data-channel/I think the people who defined WebRTC are historians or librarians. I say this all the time: WebRTC brings practically no new technology with it. It is a co转载 2016-07-18 23:47:54 · 1169 阅读 · 0 评论 -
WEBRTC核心技术穿透
PortInterface代表本地通信端口,,有UDP ,TCP端口,如UDPPort,StunPort,TCPPort,TurnPort都必须拥有网络SOCKET(AsyncPacketSocket),负责与PEER及STUN和TURN通信,与STUN和 TURN完成候选地址的搜集,与PEER完成连接建立(Connection)及建立后的通信.原创 2017-06-23 12:53:01 · 2631 阅读 · 1 评论