webrtc
HappinessLee
专注音视频
展开
-
mediasoup-demo在 Windows编译安装
1、环境准备Windows10 操作系统node v10.19.0(官网要求 >= v8.6.0)npm-v6.13.4git-v2.1.10python-v2.7.17(不可以是 python3)visual studio v2017及以上(官网要求 2015 以上,笔者最开始尝试 VS2015 ,遇见 constexpr 关键字不支持,此关键字在 VS2015 中开始支持,但是如果版本较低,则不会支持此关键字,因此请至少应使用 VS2017),我使用了 VS2019。设置 npm原创 2021-02-12 14:37:18 · 1881 阅读 · 3 评论 -
mediasoup-demo安装部署笔记
mediasoup-demo的安装部署比较简单,直接按照官方的README就可以成功部署运行。1.Clone工程:git clone https://github.com/versatica/mediasoup-demo.gitcd mediasoup-demogit checkout v3 1 2 3其实clone下来默认就是v32.server安装配置:cd servernpm install1 2这一步比较慢,会进行下载编译,还可能因为超时失败,如果ser原创 2021-01-30 23:08:14 · 556 阅读 · 0 评论 -
peerconnection_client分析笔记
Windows版本的peerconnection_client demo是一个win32程序,入口函数为main.cc里面的wWinMain,程序整体流程就从这个入口函数下手开始分析。1.peerconnection_client demo中主要的类的关系整个demo中有3个主要的类分别是窗口类MainWnd,它的主要功能是实现了一个窗体程序,然后是PeerConnectionClient...转载 2019-05-31 11:13:26 · 3680 阅读 · 2 评论 -
WebRTC手记之初探
WebRTC是HTML5支持的重要特性之一,有了它,不再需要借助音视频相关的客户端,直接通过浏览器的Web页面就可以实现音视频对聊功能。而且WebRTC项目是开源的,我们可以借助WebRTC源码快速构建自己的音视频对聊功能。无论是使用前端JS的WebRTC API接口,还是在WebRTC源码上构建自己的对聊框架,都需要遵循以下执行流程:上述序列中,WebRTC并不提供Stun服务器和Sig...转载 2019-06-05 23:46:27 · 531 阅读 · 0 评论 -
WebRTC手记之框架与接口
上一篇文章简单地介绍了下WebRTC的协议流程,这一篇就开始介绍框架与接口。一提到框架,本能地不知道从什么地方入手了。曾经直接从Chromium项目对WebRTC的源码的集成方面入手,后来发现这个步子迈的太大了,看的越多,概念越混乱,看了半个月感觉也没啥沉淀。还是从WebRTC提供的示例工程peerconnection_client入手比较轻便。先抛开音视频流的构建和渲染流程,示例工程核心的代...转载 2019-06-05 23:47:19 · 544 阅读 · 0 评论 -
WebRTC手记之本地视频采集
前面两篇文章介绍WebRTC的运行流程和使用框架接口,接下来就开始分析本地音视频的采集流程。由于篇幅较大,视频采集和音频采集分成两篇博文,这里先分析视频采集流程。分析的时候先分析WebRTC原生的视频采集流程,再捎带提一下Chromium对WebRTC视频采集的适配,这样能更好地理解WebRTC的接口设计。1. WebRTC原生视频采集在介绍视频设备的采集之前,首先要分析一下WebRTC的...转载 2019-06-05 23:48:10 · 648 阅读 · 0 评论 -
WebRTC手记之本地音频采集
上一篇博文介绍了本地视频采集,这一篇就介绍下音频采集流程,也是先介绍WebRTC原生的音频采集,再介绍Chromium源码对它的定制。1. WebRTC原生音频采集先介绍一下WebRTC中与音频采集貌似相关的接口概念:结构上看起来是不是和视频Track的结构类似?不过前面提过,如果你以对称的思维,在此结构中找出与视频track相似的采集源和输出源,那就肯定无功而返了,LocalAu...转载 2019-06-05 23:48:57 · 1338 阅读 · 1 评论 -
WebRTC手记Channel概念
前面两篇博文完整地介绍了WebRTC音视频的采集模块,接下来应该开始介绍关键的音视频编码模块。不过在介绍音视频编码模块之前,需要介绍一下Channel概念,WebRTC的每路数据的传输流程都封装成一个Channel对象。详细UML图如下:MediaChannel及其派生类封装了待传输的编解码、RTP/RTCP封包解包等逻辑,具体对象由相应的Media Engine类创建,如图:视频Chan...转载 2019-06-05 23:49:34 · 925 阅读 · 0 评论 -
WebRTC手记之WebRtcVideoEngine2模块
终于讲到视频数据的编码发送模块了,不容易。总体来说也看了不少时间WebRTC的源码了,最大的感触就是各个模块在开发的时候非常独立,每个模块都定义了自己的一套接口,最后串起来的时候添加各种适配对象来转接。这给我们这些刚开始源码阅读的人带来非常大的苦恼,不过WebRTC的模块内的结构设计还是很不错的,不然我也没有看下去的动力。注意命名,WebRtcVideoEngine2带了个2字,不用想,这肯定...转载 2019-06-05 23:50:14 · 628 阅读 · 0 评论 -
WEBRTC 接收H264 RTP数据流小结
WEBRTC 接收H264 RTP数据流小结这篇文章是对webrtc 中,接收H264 RTP包的一个总结,主要分为两个部分:第一部分,介绍H264打包成RTP包的规范,以及WEBRTC中目前正在使用的几种格式。第二部分,介绍WEBRTC的数据流,从接收RTP包,到拼装成H264 Frame,最终送入Decoder,获取YUV数据。第一部分:RTP Payload Format f...原创 2019-07-31 10:25:36 · 1587 阅读 · 1 评论 -
Webrtc中的各种Channel
背景自己决定整理整理之前的笔记,今天整理的这一篇是webrtc相关的,自己在这方面已经工作了几年了,之前也总结了一些文档,正好借助网络的平台整理整理对象图channelmanager_class.png对象图分析这张图我觉得是一个非常宏观的图了,我们研究的最多的音视频模块,居然在这张图里,也只是一小部分而已。现在重新来看这张图,回忆当时绘图的思路,总结总结。WebRtc...转载 2019-08-14 23:26:57 · 4085 阅读 · 1 评论 -
webrtc示例peerconnection_client&server
1,使用执行peerconnection_server后,服务器默认会监听本地8888端口;执行peerconnection_client,界面会转到现有的用户列表(暂时为空),服务器那边会打印出有新用户连接的消息;再执行一个peerconnection_client,连接到服务器,此时用户列表里就有先前的client,而先前连接的client的用户列表里则会出现新连接上的client;双击c...原创 2019-09-17 11:10:17 · 1459 阅读 · 0 评论 -
Janus WebRTC服务器部署
第一步:安装janus依赖库和工具,并设置环境变量apt install git aptitudeaptitude install libmicrohttpd-dev libjansson-dev libssl-dev libcurl4-openssl-devaptitude install libsofia-sip-ua-dev libglib2.0-dev libopus-dev ...原创 2019-09-24 18:02:16 · 20940 阅读 · 10 评论 -
WebRTC代码走读
WebRTC代码走读:http://blog.csdn.net/wanghorse原创 2018-11-28 11:07:46 · 847 阅读 · 0 评论 -
WebRtc语音整体框架
图一语音整体框架图 如上图所示,音频整个处理框架除了ligjingle负责p2p数据的传输,主要是VOE(Voice Engine)和Channel适配层 图二创建数据通信channel时序图 上图是本地端 的完整过程,VOE由CreateMediaEngine_w开始创建,Channel适配层由SetLocalDescription根据SDP开始创建,下面来分析下这两个过程 VOE创建过程 /*...转载 2018-09-25 11:28:22 · 1921 阅读 · 0 评论 -
快速编译出WebRTC for Android 的一次记录
WebRTC for android官网 http://www.webrtc.org/native-code/android WebRTC 源码地址作为新手,以前就知道chromium的项目不是好搞的,webrtc就是chromium项目中的一个子项目,在墙内光是同步下载源码都是有点困难的事情(要翻),然后再按照它的操作说明干起来。不同平台下还不同操作,各种晕啊。好在有人把这些转载 2017-09-18 09:30:04 · 1042 阅读 · 0 评论 -
音视频直播技术--Windows下编译WebRTC
前言随着音视频技术的不断普及,Google推出的 WebRTC 越来越受到大家的喜欢。现在很多直播产品都是基于WebRTC 进行二次开发做出来的。WebRTC是提供了一整套处理实时音视频的开源库。它包括了音视频处理(采集,编解码,前处理,后处理,渲染),数据传输(实时传输,流控)和业务逻辑控制。可以说 WebRTC 的出现大大减少了做音视频开发的难度,所以熟练掌握好这个库对于做音视频相关的同学转载 2017-12-26 15:09:24 · 871 阅读 · 0 评论 -
webrtc旧版本代码获取
获取旧版本代码的步骤参考[1],主要内容如下: 1获取代码:git clone https://chromium.googlesource.com/external/webrtc 2编辑文件.git/config(cd .git 然后vim config),在[remote "origin"]部分,增加内容fetch = +refs/branch-heads/*:ref转载 2018-02-06 16:01:15 · 1496 阅读 · 0 评论 -
apprtc server nodejs 版
https://github.com/ISBX/apprtc-node-server原创 2018-02-28 10:47:37 · 909 阅读 · 0 评论 -
开箱即用的 WebRTC 开发环境
在刚刚落幕的 WWDC17 上,苹果为我们带来了一个不小的惊喜 —— 其浏览器内核WebKit将正式支持 WebRTC,而未来基于 WebKit 内核的苹果浏览器,比如macOS High Sierra、iOS 11 中的 Safari 浏览器和Safari 技术预览版 32,都将使用到 WebRTC 技术。——苹果终于入伙 WebRTC适逢我也正在倒腾一些 WebRTC 的东西,万事开头难,搞事...转载 2018-03-14 20:00:16 · 2022 阅读 · 0 评论 -
WebRTC-Android 源码导读(一):相机采集实现分析
前面分享了一套开箱即用的 WebRTC 开发环境,希望能给对 WebRTC 感兴趣的朋友带来帮助。不过有了开发环境只是迈出了万里长征第一步,后面的事情还得仔细研读源码才行,所以这里给大家先带来 WebRTC 的安卓 demo 工程—— AppRTC-Android 的源码导读系列。(十个月前说好的拆 Dagger2 看来又要等等了,海涵海涵…)WebRTC 的代码量不小,一次性看明白不太现实,在本...转载 2018-03-14 20:01:04 · 2037 阅读 · 0 评论 -
WebRTC-Android 源码导读(二):预览实现分析
在本系列第一篇中,我们分析了 WebRTC-Android 相机采集的实现,本文中我们将分析预览的实现。有过一定相机开发经验的朋友可能会疑惑,预览还有什么好分析的,不是直接 camera.setPreviewDisplay 或者 camera.setPreviewTexture 就能在 SurfaceView/TextureView上预览了吗?实际上预览还有更高级的玩法,尤其是需要加上图像处理功能...转载 2018-03-14 20:01:38 · 2479 阅读 · 1 评论 -
WebRTC-Android 源码导读(三):视频硬编码实现分析
前两篇我们分析了 WebRTC 的相机采集和预览,接下来的环节就是编码和传输了。目前我对传输还不熟悉,本篇只关注编码相关的内容,同样也是聚焦于三个问题:数据怎么送进编码器?怎么从编码器取数据?如何做流控?在开始之前,我们先了解一下 MediaCodec 的基本知识。MediaCodec 基础Developer 官网 上的描述已经很清楚了,下面简要总结一下。首先是工作流程:生产者不断把输入数据送进 ...转载 2018-03-14 20:02:32 · 1578 阅读 · 0 评论 -
WebRTC-Android 源码导读(四):VideoCRE 与内存抖动优化
前面三篇中,我们依次分析了 WebRTC Android 的视频采集、视频渲染和视频硬编码,Live Streaming 视频的前段就已经全了。WebRTC 是个宝,初窥这部分代码时就被它的 Capturer 类的设计惊艳到了,仔细品鉴后越发佩服起来,里面简直填了太多坑了,如此宝贝,如不能为我所用,岂非一大憾事!而前三篇的解读,正是为了今天能将其剥离出来所做的铺垫,现在就有请我们今天的主角——Vi...转载 2018-03-14 20:03:18 · 904 阅读 · 0 评论 -
WebRTC之Android客户端
一.WebRTC的Android客户端搭建1.libjingle_peerconnection_so.so2.libjingle_peerconnection.jar3.客户端源码一份(可以在github上下载)二、相关概念介绍1.P2P:点对点通讯;2.STUN:提供反射地址使双方可以进行P2P通讯;3.TURN:在反射地址方式失败情况下的补充方案,即使用中继器,使双方百分之百能够通讯;4.IC...转载 2018-03-04 21:30:19 · 1641 阅读 · 0 评论 -
AppRTC-Android 源码导读
前面分享了一套开箱即用的 WebRTC 开发环境,希望能给对 WebRTC 感兴趣的朋友带来帮助。不过有了开发环境只是迈出了万里长征第一步,后面的事情还得仔细研读源码才行,所以这里给大家先带来 WebRTC 的安卓 demo 工程—— AppRTC-Android 的源码导读。(九个月前说好的拆 Dagger2 看来又要等等了,海涵海涵...)概览让我们先搞清楚 WebRTC 的几个核心类以及它们...转载 2018-03-19 18:07:27 · 2041 阅读 · 2 评论 -
webrtc_android代码
https://github.com/vivek1794原创 2018-04-18 11:07:52 · 960 阅读 · 1 评论 -
Ubuntu 14.04编译WebRTC For Android代码
最近基于Google开源的WebRTC项目做了一款音视频聊天的即时通信项目,期间在下载WebRTC代码时就碰到了一些问题,在此以作记录,也希望能够帮助到正在下载编译WebRTC代码中碰到类似问题的童鞋们。1). 准备环境1. Ubuntu 14.04 LTS 系统2. 准备一个稳定的速度还可以的VPN 或者 VPS ,这个很重要,大家都懂,大部分下载代码失败都是因为访问go转载 2017-09-16 21:05:35 · 691 阅读 · 0 评论