那些年一起创业的日子
-
第四十五章 P2P打洞原理
WebRTC 本身是基于点对点(Peer-to-Peer)连接的。如果连接双方都是公网地址,则可以直接访问到对方,从而建立连接。但大部分情况下其中一方或者双方都不是公网地址,而是隐…
-
第四十四章 带宽估计和拥塞控制算法
产品角度看数据 下图是Google Stadia 针对4K保持60Fps情况下的带宽估计。 和我们QL之前的4K数据测试是一致的。 4K的带宽占用在10~35Mb区间内 延时表现 …
-
第四十三章 RTSP媒体流的录制方案
实时录制功能支持三种模式,分别是云端录制、本地服务端录制和页面录制,我们的流式系统也有对应的内容。这里从录制视频格式的调研、录制方案的选择、异常状况的处理、覆盖策略的执行四个大方面…
-
第四十二章 码率控制
基本概念 码率控制是指视频编码中决定输出码率的过程。 首先介绍一下 X264 中使用到的与码率控制相关的几个概念: CQP(Constant QP) 恒 定QP(Quantizat…
-
第四十一章 发送方码率预估揭秘
WebRTC使用的是Google Congestion Control (简称GCC)拥塞控制,目前有两种实现: 基于延迟的拥塞控制原理 先来看下Google Congestion…
-
第四十章 生成QTCreator项目进行编译
基础情况 一般的,我们可以使用VSCode在Linux下进行编译,调试和运行。 不过我们有时候倾向于需要强大的UI库,此时我们需要用到Qt这个开源库和IDE处理。 以下,我们尝试使…
-
第三十九章 Linux下编译的一些注意事项
如何抽取头文件作为SDK 很多情况下我们编译完成WebRTC后,需要直接将Lib和头文件以一种比较好的目录结构形式给外部程序调用,而默认的WebRTC的编译系统将目标文件输出在了W…
-
第三十八章 Ubuntu或Debian下的情况
Ubuntu情况 在Ubuntu下是肯定可以安装的。网上资料很多不多赘述。 Debian下情况 以下是在Debian系统上的编译步骤。M90下验证。M108也同样可以。 步骤 备注…
-
第三十七章 CentOS下的情况
CentOS支持的不是很理想 我们尝试使用下面的步骤在CentOS上编译流式系统,但是没有成功。 Step Description Use Ninja to compile Ins…
-
第三十六章 信令服务器开源方案和部署
目前主流的TURN开源方案是Coturn,官方地址https://github.com/coturn/coturn coturn 是 TURN 和 STUN 服务器的免费开源实现。…
-
第三十五章 STUN/TURN基础知识
STUN简介 Simple Traversal of UDP over NATs, NAT的UDP的简单穿越,是一种网络协议。是客户机-服务器的一种协议,由RFC 3489 定义。…
-
第三十四章 信令服务器基础知识
信令服务器基础概念 两个设备之间建立 WebRTC 连接需要一个信令服务器来实现双方通过网络进行连接。信令服务器的作用是作为一个中间人帮助双方在尽可能少的暴露隐私的情况下建立连接。…
-
第三十三章 后端的鼠标键盘等事件实现
基础情况 在流式系统中,大部分的情况,数据源是从后端准备好后推送到前端的,此时大部分的情形是前端被动的显示后端流化传过来的内容。有一些场景,在前端需要接受用户的操作,从而影响后端的…
-
第三十二章 实际使用数据通道
基础建立DataChannel的步骤 Description Detail 1 SingalConnection类中创建DataChannel PeerConnection Cre…
-
第三十一章 视频内容检测和分析手段
当我们完成整体的流转后,需要检测其中的每帧数据时,需要用到一些工具检测和API获取。以下我们来介绍2个方法。 内置性能测试工具webrtc-internals 针对云渲染产品进行性…
-
第二十九章 硬件编码/解码
基础知识 我们在基础知识中了解了什么编码和解码,那么之前的行为都是CPU在处理,我们称之为软编码,软解码。 这里我们借用GPU的能力,借用它上面的视频编码解码芯片,直接从硬件层面进…
-
第二十八章 各种编码器介绍和比较
H.264/MPEG-4 AVC H.264/MPEG-4 , 或称AVC(Advanced Video Coding,高级视频编码),是一种视频压缩标准,一种被广泛使用的高精度视…
-
第二十七章 视频推流细节
什么是推流? 推流,指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播…
-
第二十六章 视频轨道和视频捕捉器
视频轨道添加 在建立完成P2P连接后,我们最主要的一步内容是增加视频通道,这可能是整个环节中最重要的内容了。很多问题都是关于视频流内容和画面的内容。 在WebRTC中默认提供2种视…
-
第二十五章 消息数据传递机制
消息机制 在建立P2P连接之后,前后端,信令等都要进行一定的行为交互,每个行为一般的我们会指定一个指令ID或者字符串,然后跟随对应的数据内容。 心跳机制,就是其中一个典型的使用例子…