
WebRTC
文章平均质量分 59
沉迷WebRTC
想在音视频实时通信行业一直深耕下去的女孩,请多多包涵。
展开
-
WebRTC学习(八)peerconnection_client之loopback(回环)测试
在webrtc中peerconnection_client例子中含有本地回环测试代码,如果要使用,稍微改动一下src\examples\peerconnection\client\conductor.cc代码改动如下:void Conductor::StartLogin(const std::string& server, int port) {/*loopback*/ InitializePeerConnection(); ReinitializePeerConne原创 2022-01-09 23:58:39 · 1397 阅读 · 0 评论 -
WebRTC学习(七)Win10调试peerconnection_client遇到crash问题
编译成功之后,可以使用VS2017打开工程,我们可以看到如下:我们可以在一个电脑下执行peerconnection_client,具体的操作如下:1.将编译好的peerconnection_client.exe 复制一份;2.安装一个虚拟摄像头:e2esoft Vcam ,安装后开启;3.分别执行peerconnection_client最为两个客户端;在刚开始执行peerconnection_client,遇到了crash问题,主要报错堆栈信息如下:我们可以看到报.原创 2022-01-09 23:36:06 · 1864 阅读 · 0 评论 -
WebRTC学习(六)Win10编译WebRTC支持H264
WebRTC要支持H264,需要在编译时开启,具体的编译指令如下:set PATH=%PATH%;%USERPROFILE%\depot_toolsset DEPOT_TOOLS_UPDATE=0 #不更新depot_toolsset DEPOT_TOOLS_WIN_TOOLCHAIN=0 #编译时使用本机VS工具链set GYP_MSVS_VERSION=2017 #指定VS版本set GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\M原创 2022-01-09 23:14:36 · 990 阅读 · 0 评论 -
WebRTC学习(五)海思平台交叉编译WebRTC
前言:有一位大神在博客中说:(2019年9月之前的版本,这之后的版本默认是C++14的(由git log可获取该信息),用海思编译器编译会有问题,release版本的分支号branch-heads/m77,这个版本之前的应该都可以。)如果更高的版本在海思arm-hisiv500-linux 可以编译,还请指导。鉴于这个原因,本文也是用M77版本在海思平台上编译;如果所在的编译环境有网络,那么可以参照如上的博客操作,我这边因为编译环境无法访问外网,需要用到docker...原创 2021-09-27 14:55:14 · 2313 阅读 · 0 评论 -
WebRTC学习(四)提取WebRTC头文件供外部使用
1、Window下提取webrtc的头文件创建bat脚本,该脚本和src目录放在同一级,最后提取的头文件按照原来目录级别放在src同级的include中。echo off :: 定义源目录set sourcePath=.\src::定义目标路径set resulePath=.\include xcopy %sourcePath%\*.h %resulePath%\ /s /e /c /y /h /r pause2、Linux下提取webrtc的头文件放在和src下目录,原创 2021-09-27 11:51:59 · 1679 阅读 · 0 评论 -
WebRTC学习(三)Ubuntu 16.04编译linux平台WebRTC
1、使用apt-get安装基础工具sudo apt-get install g++sudo apt-get install pythonsudo apt-get install gitsudo apt-get install subversion2、下载depot_toolsgit clone https://chromium.googlesource.com/chromium/tools/depot_tools.git3、配置环境变量在bashrc中添加一个export命令原创 2021-09-27 11:11:02 · 1730 阅读 · 0 评论 -
WebRTC学习(二)Windows10平台WebRTC编译(VS2017)
1、Visual Studio 2017安装WebRTC用到了很多C++最新特性,所以编译最新WebRTC代码VS要求为2017(>=15.7.2) 版本。原创 2021-09-02 19:45:19 · 1505 阅读 · 4 评论 -
WebRTC学习(一)下载指定版本源码
使用阿里云下载,修改主机名hostnamectl set-hostname 要修改的名字安装Git的错误与解决方法(Unable to locate package)需要安装git,所以就用:sudo apt-get install git进行安装,在安装的时候出现错误:Unable to locate package经过查阅资料,发现是因为新装的ubuntu系统,没有update的原因。然后进行update,输入命令:sudo apt-get updateapt-get inst原创 2021-08-25 20:31:26 · 4427 阅读 · 2 评论 -
与WebRTC的缘分不浅
在我2016年大学毕业,就进入音视频相关的岗位,那时候记得老大对我们讲:一毕业就进入一个比较潮流的领域...之后虽然研究WebRTC的源码比较少,但是WebRTC的思想一直在被我们学习和借鉴,更没有说将WeBRTC的源码直接拿来使用,所以对WeBRTC的框架研究和学习比较少,后来一些大厂商已经提供了供大家使用的WebRTC的SDK比如亚马逊基于KVS的WebRTC,声网SDK,这里面因为项目需求,对于他们的SDK或多或少都有过一些涉及。而今有一个机会,让我继续研究和学习甚至是二次开发WebRTC,我原创 2021-08-11 00:15:04 · 692 阅读 · 3 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC集成过程报错问题整理(九)
当我认为可以很快将WebRTC SDK合入到设备中时,这里我选择使用动态加载WebRTC的业务模块(按照插件方式),当主业务进程启动后,根据配置项,是否加载该WebRTC的插件;WebRTC的业务代码完成编译后,我发现主进程使用的openssl的版本是1.0.1e,libwesockets的版本是2.3-stable,都是静态库的方式,而WebRTC SDK中使用的openssl-1.1.1 和libwesockets-3.2.3,也是静态库,这必然会导致运行报错;...原创 2021-05-13 18:51:01 · 867 阅读 · 0 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC集成过程报错问题整理(八)
1、用例情况:【1】第一组master:君正平台的 kvsWebrtcClientMasterviewer:https://us-west-2.console.aws.amazon.com/kinesisvideo/home?region=us-west-2#/signalingChannels/signalingChannelName/ 打开创建的信号通道结论:信令交互都正确,但是在STUN包交互过程,出现问题,无论是P2P还是Relay都没有通【2】第二组master:官..原创 2021-05-11 18:45:28 · 1452 阅读 · 15 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC集成过程报错问题整理(七)
在前面我已经将君正T31X平台的WebRTC相关的依赖库编译完成,且现在将kvsWebrtcClientMaster测试用例也需要编译出来,在Camera中运行,验证依赖库的正确性。根据自己编写的CMakeLists.txt,编译成功后,在camera上执行:(1)将依赖的动态库和程序放在SD卡;(2)设置编辑变量的值export AWS_ACCESS_KEY_ID=XXexport AWS_SECRET_ACCESS_KEY=XXexport DEBUG_LOG_SDP=debug原创 2021-04-28 11:42:09 · 1494 阅读 · 0 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC集成过程(六)
因为我们的实际的使用过程是智能摄像头设备(门铃/Camera)和Echoshow(实际上是Alexa)对接,实现语音全双工,我们计划集成AWS提供的完整的WebRTC的方案(SDK),因此在所有依赖库编译完后,可以通过如下的过程(Alexa SmartHome Camera WebRTC Integration with AWS KVS),理解和分析WebRTC的使用流程;...原创 2021-04-19 10:22:04 · 2369 阅读 · 0 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC移植编译(五)
在使用KVS完整的WebRTC的SDK(包括信令、STUN/TURN等),我们还需要编译(详见SDK的依赖项)如下两个库1、amazon-kinesis-video-streams-producer-c中的libkvsCommonLws.a编译君正平台:我们在下载的源码目录中新建如下三个目录:Bin/T31X :存放生成的库Build/T31X: 编译脚本Library/T31X:依赖项CMakeLists.txt内容如下:#**********************原创 2021-04-19 10:11:35 · 2888 阅读 · 3 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC移植编译(四)
在前面几篇文章中我们已经进行了依赖库的编译,因此,现在需要最终我们需要使用的库libkvsWebrtcClient.a 或者libkvsWebrtcClient.so如下操作是编译君正(T31X)平台的libkvsWebrtcClient.a 或者libkvsWebrtcClient.so1、下载源码(amazon-kinesis-video-streams-webrtc-sdk-c)我们新建几个目录:Library 用于存放依赖的库和头文件;Build用于存放编译脚本;Bin用原创 2021-03-29 12:00:39 · 2851 阅读 · 5 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC移植编译(三)
继上一篇文章后,中途被其他事情耽误两周,现在继续。。。编译第三方库:一、【君正平台:编译usrsctp】1、下载源码git clone https://github.com/sctplab/usrsctp.git2、编译我们进入目录建一个Build/T31X/目录,并进入该目录,将编译链toolchain拷贝在该目录下执行:cmake -DCMAKE_TOOLCHAIN_FILE=./toolchain/cross-mips-linux-uclibc-gnu.cmake原创 2021-03-22 13:49:56 · 3128 阅读 · 7 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC移植编译(二)
在编译依赖库前,我们需要整理一下amazon-kinesis-video-streams-webrtc-sdk-c依赖的所有库头文件:依赖库:我们首先编译第三方库:君正平台的openssl,当前的版本是1.1.1g下载源码后,我们可以在源码include/openssl/opensslv.h查看到当前的版本号:(1)进入源码目录后,我们修改config 和Configure的可执行权限后,执行如下的编译脚本:./config no-asm no-sse2 no-ss原创 2021-02-26 14:00:39 · 3236 阅读 · 3 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC移植编译(一)
本文在于记录amazon-kinesis提供的设备端WebRTC SDK的依赖项编译过程,该过程在嵌入式设备君正平台验证1、首先我们可能需要一个墙外的服务器拉取代码,我是在开启了一个AWS的美国环境EC2,因为在国内访问实在是太慢了。...原创 2021-02-24 15:35:04 · 4543 阅读 · 2 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC的C库测试
想要验证AWS KVS with WebRTC的嵌入式C库,我们将其源码编译(详见WebRTC编译过程)后,可以运行其提供的sample,注:该过程是在Linux环境上。1.编译结束后,我们在build目录中看到如下信息:这其中提供了一个kvsWebrtcClientMaster可用于我们主设备发送数据,kvsWebrtcClientViewer用于请求发送数据端,即接受者。验证过程如下:我们执行kvsWebrtcClientMaster,后参数可以加 数据通道名称,不加默认为...原创 2021-02-24 15:05:57 · 1895 阅读 · 1 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC依赖项
KVS WebRTC依赖于openssl、srtp、usrsctp、kvspic。我们挨个来编译,如果我们需要往嵌入式设备中移植,需要移植这些依赖项,因此在编译移植前,我们需要得到源码。 先下载所有代码(我使用了镜像加速),其实都是github:OpenSSL:git clone https://github.com.cnpmjs.org/openssl/openssl.git -b OpenSSL_1_1_1glibsrtp:git clone https://git.原创 2021-02-02 15:12:16 · 1000 阅读 · 0 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC的C库
C 中适用于嵌入式设备的 WebRTC 开发工具包如下步骤是下载和编译SDK:备注:github如果在自己本地下载比较慢,因此我申请了一个美国地区的AWS的EC2(Centos系统),我在此EC2上安装相应的工具后操作,特别快;0、准备工作(1)安装git :sudo yum install git$ git --versiongit version 2.23.3(2)安装Cmake :sudo yum install cmake$ cmake --versioncm.原创 2021-02-02 14:47:45 · 1892 阅读 · 5 评论 -
AWS KVS(Kinesis Video Streams)之WebRTC
STUN 、TURN 和ICE如何工作 (两个端点交互流程):我们假设两个对等方A和B都使用WebRTC对等双向媒体流(例如,视频聊天应用程序)的情况。要连接到B的应用程序,A的应用程序必须生成SDP offer。SDP offer包含有关A的应用程序想要建立的会话的信息,包括要使用的编解码器,这是音频还是视频会话等。它还包含 ICE candidates,它们B应用程序用于尝试连接A应用程序需要用到的A的IP和port。为了建立ICE候选者列表,A的应用程序向STUN服务器发出了一系列请求。服务器返原创 2021-01-22 16:02:11 · 2689 阅读 · 5 评论 -
WebRTC之框架与接口(二)
转载请注明出处:http://www.cnblogs.com/fangkm/p/4370492.html上一篇文章简单地介绍了下WebRTC的协议流程,这一篇就开始介绍框架与接口。一提到框架,本能地不知道从什么地方入手了。曾经直接从Chromium项目对WebRTC的源码的集成方面入手,后来发现这个步子迈的太大了,看的越多,概念越混乱,看了半个月感觉也没啥沉淀。还是从WebRTC提供的示例工程p转载 2017-08-18 11:11:29 · 607 阅读 · 0 评论 -
WebRTC之本地视频采集(三)
转载请注明出处:http://www.cnblogs.com/fangkm/p/4374610.html 前面两篇文章介绍WebRTC的运行流程和使用框架接口,接下来就开始分析本地音视频的采集流程。由于篇幅较大,视频采集和音频采集分成两篇博文,这里先分析视频采集流程。分析的时候先分析WebRTC原生的视频采集流程,再捎带提一下Chromium对WebRTC视频采集的适配,这样能更好地理解WebRT转载 2017-08-18 11:13:14 · 838 阅读 · 0 评论 -
WebRTC之本地音频采集(四)
转载请注明出处:http://www.cnblogs.com/fangkm/p/4374668.html 上一篇博文介绍了本地视频采集,这一篇就介绍下音频采集流程,也是先介绍WebRTC原生的音频采集,再介绍Chromium源码对它的定制。1. WebRTC原生音频采集先介绍一下WebRTC中与音频采集貌似相关的接口概念:结构上看起来是不是和视频Track的结构类似?不过前面提过,如果你以对称转载 2017-08-18 11:15:06 · 785 阅读 · 1 评论 -
WebRTC之WebRtcVideoEngine2模块(六)
转载请注明出处:http://www.cnblogs.com/fangkm/p/4401143.html 终于讲到视频数据的编码发送模块了,不容易。总体来说也看了不少时间WebRTC的源码了,最大的感触就是各个模块在开发的时候非常独立,每个模块都定义了自己的一套接口,最后串起来的时候添加各种适配对象来转接。这给我们这些刚开始源码阅读的人带来非常大的苦恼,不过WebRTC的模块内的结构设计还是很不错转载 2017-08-18 11:17:38 · 636 阅读 · 0 评论 -
WebRTC之channel(五)
转载请注明出处:http://www.cnblogs.com/fangkm/p/4401075.html 前面两篇博文完整地介绍了WebRTC音视频的采集模块,接下来应该开始介绍关键的音视频编码模块。不过在介绍音视频编码模块之前,需要介绍一下Channel概念,WebRTC的每路数据的传输流程都封装成一个Channel对象。详细UML图如下:MediaChannel及其派生类封装了待传输的编解码、转载 2017-08-18 11:16:27 · 708 阅读 · 0 评论 -
WebRTC各种资料
WebRTC各种资料集合javascript frameworksVideo chat:https://github.com/andyet/SimpleWebRTC https://github.com/priologic/easyrtc https://github.com/webRTC-io/webRTC.ioPeer-to-peer data:http://peerjs.com/ htt转载 2017-08-21 09:09:36 · 812 阅读 · 1 评论 -
WebRTC之appRTC实现过程
备注:1.下载的过程需要翻墙,可以确保有稳定的vpn 2.webrtc服务器所需要的证书必须是第三方签名机构颁发的证书,自签证书不起作用一、服务器组成 1、AppRTC 房间服务器 https://github.com/webrtc/apprtc 2、Collider 信令服务器 上边源码里自带 3、CoTurn coturn打洞原创 2017-09-01 11:22:37 · 2662 阅读 · 0 评论 -
WebRTC之初探(一)
转载请注明出处:http://www.cnblogs.com/fangkm/p/4364553.html WebRTC是HTML5支持的重要特性之一,有了它,不再需要借助音视频相关的客户端,直接通过浏览器的Web页面就可以实现音视频对聊功能。而且WebRTC项目是开源的,我们可以借助WebRTC源码快速构建自己的音视频对聊功能。无论是使用前端JS的WebRTC API接口,还是在WebRTC源码上转载 2017-08-18 10:56:31 · 648 阅读 · 0 评论