剑痴乎

  • 首页
  • 文章分类
    • 音视频
    • WebRTC
    • 编程之美
    • Linux
    • Windows
    • 生活点滴
    • 校园生活
  • 参考
    • API参考
    • 实用工具
    • 测试音视频
    • 文档
  • 留言板
  • 关于
剑痴乎
代码为剑,如痴如醉
WebRTC

大话WebRTC

整理归纳写过的WebRTC系列研究文章,专注WebRTC底层技术研究以及优化。 基础入门 音视频开发入门:音频基础 音视频开发入门:视频基础 WebRTC音视频传输基础:NAT穿透 相关概念 WebRTC研究:MediaStream概念以及定义 编译 Windows平台WebRTC编译(持续更新) Windows平台WebRTC编译-VS2017 Linux平台WebRTC编译 WebRTC安卓编译 网络参数 WebRTC研究:丢包率计算 WebRTC研究:抖动计算 WebRTC研究:码率计算 RTCP/RTP W…

2020年4月28日 0条评论 404点热度 4人点赞 阅读全文
WebRTC

WebRTC研究:Simulcast层数变化

当我们上行推Simulcast流的时候,会发现Simulcast层数会时不时变化,本来是大小流(大小两个分辨率)两层,但是变为只有一层小流了,后面又恢复为两层了,如果我们服务端支持Simulcast的话,这就成为一个棘手问题。 例如我们团队的WebRTC产品,客户端默认会启用Simulcast,上行推送两个不同分辨率的流到服务端,服务端下行会依据带宽估计值,自动选择某个分辨率的流给订阅客户端。假设此时下行带宽足够,服务端会推送大流。但是对于上行客户端来说,因为某种原因,Simulcast层数减少为一层,只剩一路小流…

2020年12月27日 0条评论 72点热度 2人点赞 阅读全文
WebRTC

WebRTC研究:RTP头部扩展

RTP Header RTP协议中,RTP Header分为固定头(Fixed Header)与扩展头(Header extension)。 RTP Fixed Header结构如下,其中前12字节是每个RTP包必须包含的。 [crayon-600f655bf4207502885150/] 但是这Fixed Header携带的信息满足不了更复杂的需求。所以引入了RTP Header Extension,可以携带更多的信息。 RTP Header Extension 如果RTP Fixed Header中,X字段为1…

2020年10月25日 0条评论 122点热度 0人点赞 阅读全文
WebRTC

WebRTC研究:音频带内FEC

在WebRTC中,对于音频丢包,目前有三种丢包恢复方案: 带内FEC 带外FEC NACK 本文介绍其中最简单的带内FEC。带内FEC属于WebRTC中默认启用的功能,由Opus编解码器实现,经过我们测试,30%丢包率下语音聊天,仍有不错的质量。不过单一靠带内FEC是无法实现更高的抗丢包要求,这也是各个厂商的优化点。 Opus编解码器 Opus编解码器其实是一种混合音频编解码器,融合了SILK与CELT两种编解码器。 SILK编解码器 由Skype开发 使用线性预测 适合语音 CELT编解码器 由Xiph.Org开…

2020年10月24日 0条评论 126点热度 0人点赞 阅读全文
WebRTC

WebRTC研究:BBR拥塞控制被移除了

本来想写篇文章分析下WebRTC拥塞控制中的BBR算法代码,不过更新最新代码后发现BBR相关代码已经被移除了,所以也没必要了。WebRTC中对应的代码提交如下: [crayon-600f655c00660378553003/] 给出的理由是WebRTC中性能表现很糟糕,BBR得等到以后我研究完QUIC协议再专门分析了。

2020年8月22日 2条评论 182点热度 1人点赞 阅读全文
WebRTC

WebRTC安卓编译

系统:Ubuntu 18.04 安装depot_tools [crayon-600f655c00ff1975942459/] 获取代码 [crayon-600f655c00ff7521341887/] 依赖安装 [crayon-600f655c00ffa224531255/] 编译 直接使用aar编译工具编译,这里我们指定编译armeabi-v7a与arm64-v8a两种架构。 [crayon-600f655c00ffc430368459/] 生成的libwebrtc.aar文件文件位于src目录下,编译过程产生的…

2020年8月17日 0条评论 184点热度 1人点赞 阅读全文
WebRTC

音视频开发入门:视频基础

数字图像 平时我们看到的视频其实是由一幅幅图像组成,所以先来了解下数字图像。 数字图像由一个个像素组成,是二维图像用有限数字数值像素的表示。如下路所示,我们放大一个图像后,能明显看到一个个像素块: 图像分辨率 水平分辨率指的一幅图像的宽,垂直分辨率指的一幅图像的高。一般说的分辨率用水平分辨率(宽)X 垂直分辨率(高)表示。 常见分辨率有: QVGA:320x240 CIF:352×288 VGA:640x480 HD:1360x768 FHD:1920x1080 WQHD:2560x1440 4K UHD:3840…

2020年8月16日 1条评论 218点热度 7人点赞 阅读全文
WebRTC

WebRTC研究:FEC之RED封装

首先看下webrtcglossary中的定义。 RED stands for REDundant coding and it is a RTP payload format defined in RFC 2198 for encoding redundant audio or video data. The primary motivation of sending redundant data is to be able to recover packets lost under lossy network co…

2020年8月16日 0条评论 199点热度 0人点赞 阅读全文
WebRTC

WebRTC研究:带宽估计中的稳定估计值

WebRTC带宽估计后,得到的结果会存到TargetTransferRate结构体中,然后回调给上层。 [crayon-600f655c0189f992363621/] 可以看到该结构体有两个估计码率值,本文我们介绍下其中的stable_target_rate,该值在后续的码率分配中有用到,配合target_rate进行相关判断。 在GoogCcNetworkController中,TargetTransferRate结果值按如下得到: [crayon-600f655c018a5087912799/] 其中push…

2020年8月12日 0条评论 229点热度 2人点赞 阅读全文
12345…23
我的其它小窝

公众号:码上Play(基本不更新,回答问题用)

近期评论
  • Fett on Windows平台WebRTC编译(持续更新)能不能提供一个.lib,一份include,这样我…
  • Jeff on WebRTC研究:BBR拥塞控制被移除了研究过了,等后面有时间简单说明下
  • xhcx on WebRTC研究:BBR拥塞控制被移除了楼主,BBR移除的原因最近有研究吗,分享一下
  • Jeff on Windows平台WebRTC编译(持续更新)M79是2019年发布的版本,不适用这篇文章。编译…
  • haige on Windows平台WebRTC编译(持续更新)我编译的m79版本,用VS2019打开会报错, F…
版权声明

为支持原创,创作更好的文章,未经许可,禁止任何形式的转载与抄袭,如需转载请邮件私信!本人保留所有法定权利。违者必究!

COPYRIGHT © 2021 剑痴乎. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS