webrtc/pjsip
文章平均质量分 84
shareinfo2018
复杂问题简单化,力求精简强悍。
展开
-
SDP在pjsip中的应用
SDP的定义参见http://www.ietf.org/rfc/rfc2327.txtSDP在pjsip中的状态转换(图片来自pjsip开发文档)结合pjsip2.0源码分析一下上面这张图:假设两个人做视频通话,一方是拨打者,一方是接听者,拨打者发送sip invite消息, 接听方接收消息拨打者开始打电话,会回调on_make_call_med_tp_complete, 在该方法转载 2016-07-13 11:07:27 · 1960 阅读 · 0 评论 -
licode_basicExample简易分析【2016-9】
/*global require, __dirname, console*/var express = require('express'), bodyParser = require('body-parser'), errorhandler = require('errorhandler'), morgan = require('morgan'), net =原创 2016-09-14 20:47:18 · 1575 阅读 · 0 评论 -
WEBRTC 录音与会议录音【转】
来自:http://blog.csdn.net/darkinger/article/details/13627479今年4月时,我们一个利用WEBRTC开发的单人及多人语音功能需要新增一个录音功能,由此又开始一段艰苦的WEBRTC研究之旅。最开始时,记得WEBRTC中好像提供了录音功能,兴冲冲一试,成了,可以录,还提供了录制文件格式的转换功能(ILBC2PCM等),太好了,立即应用于产品中转载 2016-08-15 10:54:25 · 1863 阅读 · 0 评论 -
流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)【转】
RTP 参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP)转载 2016-09-26 14:31:00 · 889 阅读 · 0 评论 -
GOP/ 码流 /码率 / 比特率 / 帧速率 / 分辨率【转】
来自:http://blog.csdn.net/xiangjai/article/details/44238005GOP(Group of picture) 关键帧的周期,也就是两个IDR帧之间的距离,一个帧组的最大帧数,一般而言,每一秒视频至少需要使用 1 个关键帧。增加关键帧个数可改善质量,但是同时增加带宽和网络负载。 需要说明的转载 2017-01-02 10:10:30 · 10529 阅读 · 0 评论 -
licode 客户端API (译文)【转】
来自:http://quainty.org/licode-webrtc/9.html原文地址:http://lynckia.com/licode/client-api.html概览:Api在浏览器中使用,作为一种javascript文件提供使用,可以在你的web应用中直接调用。典型的使用组合:想要连接的房间,使用后端函数,管理本地音视频,客户端事件管理等等。翻译 2017-01-02 14:38:19 · 3603 阅读 · 0 评论 -
基于webrtc多人音视频的研究【转】
来自:http://blog.csdn.net/gupar/article/details/53101435WebRTC技术和它的对等网络功能,非常适合一对一的通信。然而,当我与客户讨论使用超越一比一,即一对多或多对一的许多案例和服务,问题出现了:“好吧,但我会用什么架构吗?” 。一些服务提供商要重用他们在网络具有多播支持(我们有乐趣做一些实验与此),一些正在探索基于联播的解决方案,有转载 2016-12-26 17:10:35 · 1420 阅读 · 0 评论 -
ORTC以及WebRTC的未来【转】
来自:http://www.infoq.com/cn/news/2014/08/ortc-webrtc第一版稳定的ORTC(对象RTC)规范已经发布。问题是,它会对WebRTC产生什么样的影响呢?让我们回顾一下,在2013年,Hookflash的首席架构师Robin Raymond就表达了对于在WebRTC中使用SDP(会话描述协议)的不满。他总结了自己关于SDP的问题,如下:转载 2017-02-27 11:01:16 · 3139 阅读 · 0 评论 -
延时、丢包、抖动,用尽洪荒之力也传不到,该怎么办?【转】
来自:点击打开链接互联网大概可以算是最近几十年人类最重要的发明之一。最早人们用互联网发送电子邮件,接着普及了网页浏览,后来又流行即时文字聊天,人们工作生活的方式在这写年里发生了巨大的变化。可是当人们想更进一步实现实时音视频通话时,却发现互联网有点不给力了。卡顿、掉线、延时太高等等,这些问题始终伴阻碍实时音视频通话的发展。而这根本上的原因是,互联网一开始并不是针对实时通信而设计的。转载 2017-03-27 14:43:51 · 524 阅读 · 0 评论 -
webrtc中的网络反馈与控制【转】
来自: http://befo.io/4206.html一、引言站在风口上,猪都能飞起来。雷布斯的这句名言,已经被大家传的家喻户晓了,说起当下站在风口上的猪,除了丁老板的未央猪,这头实实在在的猪,视频直播应该可以算一个。今年各种直播平台,各个轮次的融资消息应接不暇。对于互联网技术从业者来说,RTC(Real Time Communication,实时通信)这个站着视频直播背转载 2017-04-05 13:49:43 · 575 阅读 · 0 评论 -
WebRTC视频采集模块和数据流水线建立【转】
来自:http://befo.io/4644.html视频采集模块在WebRTC数据流水线中负责从视频源采集视频数据,推送给流水线下一模块(本地回显模块或者编码模块)进行处理。视频源除了常见的摄像头,也可以是桌面抓屏或者窗口抓屏,或者是一个视频文件。视频采集模块是平台相关的,MacOS和IOS平台一般使用AVFoundation框架,Linux平台一般使用V4L2库,而Windows平转载 2017-04-05 13:52:19 · 1110 阅读 · 0 评论 -
WebRTC的模块处理机制【转】
来自:http://befo.io/4590.html对于实时音视频应用来讲,媒体数据从采集到渲染,在数据流水线上依次完成一系列处理。流水线由不同的功能模块组成,彼此分工协作:数据采集模块负责从摄像头/麦克风采集音视频数据,编解码模块负责对数据进行编解码,RTP模块负责数据打包和解包。数据流水线上的数据处理速度是影响应用实时性的最重要因素。与此同时,从服务质量保证角度讲,应用需要知道数转载 2017-04-05 13:53:47 · 924 阅读 · 0 评论 -
WebRTC中丢包重传NACK实现分析【转】
来自:http://befo.io/4169.html在WebRTC中,前向纠错(FEC)和丢包重传(NACK)是抵抗网络错误的重要手段。FEC在发送端将数据包添加冗余纠错码,纠错码连同数据包一起发送到接收端;接收端根据纠错码对数据进行检查和纠正。RFC5109[1]定义FEC数据包的格式。NACK则在接收端检测到数据丢包后,发送NACK报文到发送端;发送端根据NACK报文中的序列号,转载 2017-04-05 13:57:47 · 1045 阅读 · 0 评论 -
WebRTC音视频同步机制实现分析【转】
来自:http://befo.io/4022.html音视频同步事关多媒体产品的最直观用户体验,是音视频媒体数据传输和渲染播放的最基本质量保证。音视频如果不同步,有可能造成延迟、卡顿等非常影响用户体验的现象。因此,它非常重要。一般说来,音视频同步维护媒体数据的时间线顺序,即发送端在某一时刻采集的音视频数据,接收端在另一时刻同时播放和渲染。本文在深入研究WebRTC源代码的基础上转载 2017-04-05 13:59:17 · 797 阅读 · 0 评论 -
WebRTC中RTP/RTCP协议实现分析【转】
来自:http://befo.io/3500.html一 前言RTP/RTCP协议是流媒体通信的基石。RTP协议定义流媒体数据在互联网上传输的数据包格式,而RTCP协议则负责可靠传输、流量控制和拥塞控制等服务质量保证。在WebRTC项目中,RTP/RTCP模块作为传输模块的一部分,负责对发送端采集到的媒体数据进行进行封包,然后交给上层网络模块发送;在接收端RTP/RTC转载 2017-04-05 14:01:53 · 521 阅读 · 0 评论 -
旧版本licode_basicExample简易分析
/*global require, __dirname, console*/var express = require('express'), bodyParser = require('body-parser'), errorhandler = require('errorhandler'), morgan = require('morgan'), net =原创 2016-09-14 20:57:33 · 947 阅读 · 0 评论 -
speex 回声消除的用法【转】
来自:http://blog.csdn.net/lsccsl/article/details/8126338speex的回声消息就是speex_echo_cancellation函数的正确用法回声消息的原理:对参考声音(解码的对端原始语音包)做延迟(会有多个延迟,如麦克风直接采集到音箱的声音,经墙壁反射后再次采集),衰减,从声卡里采集到的语音,做转载 2016-08-30 16:51:32 · 3438 阅读 · 0 评论 -
webrtc中的带宽自适应算法
webrtc中的带宽自适应算法分为两种:1, 发端带宽控制, 原理是由rtcp中的丢包统计来动态的增加或减少带宽,在减少带宽时使用TFRC算法来增加平滑度。2, 收端带宽估算, 原理是并由收到rtp数据,估出带宽; 用卡尔曼滤波,对每一帧的发送时间和接收时间进行分析, 从而得出网络带宽利用情况,修正估出的带宽。两种算法相辅相成, 收端将估算的带宽发送给发端, 发转载 2016-07-13 11:10:06 · 3053 阅读 · 1 评论 -
Ubuntu12.4 下 WebRTC编译 【转】
Ubuntu12.4 下 WebRTC编译 由于项目原因,需要音视频,所以最后选择了开源的WebRTC(采用BDS开源协议),并且是Google支持的开源项目。在Html5方面,Google的野心可见一般,为什么这么说,WebRTC支持浏览器。目前支持WebRTC的浏览器有Chrome,FireFox,Opera(最新版本,老版本就不支持),就是转载 2016-07-04 14:21:08 · 551 阅读 · 0 评论 -
peerconnection_server简单分析
ListeningSocket listener; //ListeningSocket继承了SocketBase基类listener.Create()socket(()listener.Listen(FLAG_port)setsockopt()bind()listen()PeerChannel clients;//typedef std::vector Memb原创 2016-08-03 17:31:27 · 1307 阅读 · 0 评论 -
peerconnection_server目录中html代码简单注释与分析
PeerConnection server test pagevar request = null;var hangingGet = null;var localName;var server;var my_id = -1;var other_peers = {};var message_counter = 0;function trace(txt) { var elem原创 2016-08-04 11:32:59 · 568 阅读 · 0 评论 -
peerconnection_client简单分析
/******** main.cc ********/wWinMain() wnd() PeerConnectionClient client;//用于信令处理相关 rtc::scoped_refptr conductor(new rtc::RefCountedObject(&client, &wnd)); while((gm = ::GetMessage(&msg, NULL, 0,原创 2016-08-04 15:36:40 · 2669 阅读 · 0 评论 -
WebRTC audio解码后播放【转】
AudioDeviceLinuxPulse::PlayThreadProcessAudioDeviceBuffer::RequestPlayoutData因为 将 AudioDeviceBuffer注册了audioCallbackWebRtc_Word32 AudioDeviceBuffer::RegisterAudioCallback(AudioTransport* audioCallb转载 2016-08-16 16:09:37 · 1287 阅读 · 0 评论 -
WebRTC录音【转】
录音流程:AudioDeviceLinuxPulse::RecThreadProcess()负责采集音频数据,传递到AudioDeviceBuffer中缓存,AudioDeviceBuffer则将数据送入TransmixMixer,首先交给AudioProcess进行近端音频处理,完成后分发到各个Channel中,Channel则通过AudioCodingModule进行编码,编码后再交付到Rtp转载 2016-08-16 16:01:11 · 1055 阅读 · 0 评论 -
WebRTC中peerconnectclient&server 简析【转】
来自:http://blog.csdn.net/oldmtn/article/details/49778099/////////////////////////////////////////////////////////////////// A. 第一台client连接服务器1. MainWnd::OnDefaultAction里面接收用户单击“connect"的事件2. 委托转载 2016-08-03 09:12:18 · 1192 阅读 · 0 评论 -
WebRTC学习记录(1):采集microphone到文件原理实践&讲解【转】
来自:http://blog.csdn.net/oldmtn/article/details/49888017最近做这个webrtc,着实麻烦。网上资料少,翻墙困难,即使成功下载速度也很慢。因为我这边是联通,慢,慢,慢。我想研究下webrtc是如何采集音频的,并如何将其写入到文件的。无奈不得不查看webrtc的源码,怎么查看,需要有好的方法。我在一次不经意间发现VoEFil转载 2016-08-03 09:39:03 · 992 阅读 · 0 评论 -
WebRTC中最简单loopback摄像头&麦克风的例子【转】
来自:http://blog.csdn.net/oldmtn/article/details/49800227peerconnection_client本地回放原理默认的client已经集成了本地回放代码,但是要想实现该功能,需要做少许修改。默认的点击界面上的"connect"按钮是连接到另一台peer,其最终执行的函数为Conductor::StartLogin。转载 2016-08-03 09:28:17 · 1629 阅读 · 0 评论 -
自建 AppRTC【转】
来自:http://www.jianshu.com/p/c55ecf5a3fcfAppRTC 是 webrtc 的一个 demo。自建 AppRTC 可以苦其心志劳其筋骨饿其体肤,更重要的是能学会 webrtc 服务器的搭建流程……AppRTC 的组成部分是这样的:1、AppRTC - 房间服务器。Github 2、Collider - 信令服务器。上面 G转载 2016-08-18 09:37:28 · 1114 阅读 · 0 评论 -
Chromium Embedded Framework
来自:https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart#markdown-header-windows-setup1. Chromium Embedded Framework2. cefWiki Clone wikicef / MasterBuildQuickStart转载 2016-08-03 11:10:07 · 1604 阅读 · 0 评论 -
G711转AAC代码总结【转】
来自:http://blog.csdn.net/qq_24551315/article/details/51134999思路: 将G711转为PCM , 然后将PCM数据转为AAC,G711转为PCM,可以使用上一篇中讲到的方式, 而PCM转AAC(ADTS),采用的是faac这个开源库这里只讲怎么实现, 了解更详细的内容,则需要自己查找学习了.直接上代码.转载 2016-08-30 10:32:16 · 6042 阅读 · 0 评论 -
G711编解码(G711与PCM类型互转)【转】
来自:http://blog.csdn.net/qq_24551315/article/details/51134689总结网上的G711编解码, 将其一直到andorid系统上去, 通过jni的来进行G711和PCM 的互转, 由于对于这两种格式没有深入的了解,, 所以如果想深入的了解他们可以百度, 在这里只是实现这样的功能罢了.g711.c 包含编码和解码的方法转载 2016-08-30 10:34:23 · 13601 阅读 · 2 评论 -
WebRTC getStats详解 - 从标准、调用到实现【转】
来自:http://befo.io/2945.html前言getStats是WebRTC一个非常重要的API,用来向开发者和用户导出WebRTC运行时状态信息,包括网络数据接收和发送状态、P2P客户端媒体数据采集和渲染状态等[1]。这些信息对于监控WebRTC运行状态、排除程序错误等非常重要。本文首先描述W3C定义的getStats标准,然后展示如何在JS层调用转载 2017-04-05 14:04:03 · 4279 阅读 · 0 评论