Home
Aperture Science
Cancel

视频Jitter Buffer原理

本文以WebRTC中的FrameBuffer为例,介绍了基于卡尔曼滤波的Jitter Buffer的原理。 前言 由于网络带宽以及视频码率都不是恒定的,当视频数据在网络传输时,各帧数据实际上并不是按照帧率匀速到达的,即存在抖动(Jitter)。为了保证在线播放视频时帧率稳定,不出现快慢放,客户端往往会在本地缓存一段数据,再按照帧率读取渲染。这个机制我们可以称之为Jitter Buffer。...

GCC带宽探测原理

前言 拥塞控制是RTC系统中非常重要的一个功能模块,直接关系到通信质量。而在谷歌开源的WebRTC中,就有着名为GCC(Google Congestion Control)的优秀实现供我们参考学习。但是由于其代码经历大量迭代,兼容和实验性质的代码较多,不利于阅读。本文将结合流程图分析GCC的带宽探测过程。使用的WebRTC版本为72,分析内容不包含默认不开启的实验代码和废弃代码。阅读本文需要...

视频码率控制原理

本文简要总结了笔者对视频编码技术中码率控制算法的理解。例子的范围限制在从H.264至今的编码标准,更早的编码标准笔者并没有了解过。 名词解释 视频编码(video encoding):将视频的原始像素数据压缩为符合某些标准(比如H.264)的二进制数据的过程。 码率(bitrate):单位时间内的数据量,一般用bps(bits per second)作为单位。 MB:宏块(m...

视频隐形水印技术分类

说明:本文是笔者之前给公司公众号写的两篇隐形水印科普文章的整合与扩充,介绍了能够在视频数据中嵌入隐形数据的技术。 前言 起初笔者只是被论坛里一个讨论隐写术的帖子引起了兴趣,期望找到一种隐藏的信息经过转码甚至屏摄后依然不会丢失的视频隐写技术,即一种可靠的隐形数字水印技术。遗憾的是一番资料查下来,发现现有的技术和笔者的期望依然存在一定距离。但查都查了,这里还是分类总结一下。 封装级水印 首先...