从简单的视频上传到智能化的视频处理管道,B站视频技术的演进之路
B站作为中国领先的视频平台,其视频技术架构经历了从单体到分布式、从同步到异步、从集中式到边缘化的演进过程。本章将深入剖析B站视频技术体系的各个关键组成部分,包括转码系统、CDN网络、P2P技术、超高清支持以及新一代编码技术的应用实践。
┌────────────────────────────────────────────────────────┐
│ 视频处理全链路 │
├────────────────────────────────────────────────────────┤
│ 上传 → 转码 → 存储 → 分发 → 播放 → 分析 │
│ ↓ ↓ ↓ ↓ ↓ ↓ │
│ SDK FFmpeg OSS CDN Player BI │
└────────────────────────────────────────────────────────┘
早期的B站采用最简单的转码方案,所有视频处理都在单台服务器上完成。
技术特点:
系统架构:
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ 用户上传 │────→│ Web Server │────→│ 转码服务器 │
└─────────────┘ └──────────────┘ └─────────────┘
│
↓
┌─────────────┐
│ 文件存储 │
└─────────────┘
主要问题:
随着用户量激增,B站开始构建分布式转码系统。
关键升级:
系统架构:
┌──────────────────────────────────────────────────────┐
│ 转码集群架构 │
├──────────────────────────────────────────────────────┤
│ │
│ 上传API │
│ ↓ │
│ 消息队列 ──→ 调度器 │
│ ↓ │
│ ┌───────┼───────┐ │
│ ↓ ↓ ↓ │
│ Worker1 Worker2 Worker3 │
│ ↓ ↓ ↓ │
│ └───────┼───────┘ │
│ ↓ │
│ 对象存储 │
└──────────────────────────────────────────────────────┘
技术栈:
这一阶段B站开始自研转码框架,引入机器学习优化转码参数。
核心特性:
架构设计:
┌───────────────────────────────────────────────────────┐
│ 智能转码平台 │
├───────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌──────────────┐ │
│ │ 任务接收层 │───→│ 智能调度器 │ │
│ └─────────────┘ └──────┬───────┘ │
│ │ │
│ ┌────────┴────────┐ │
│ │ │ │
│ ┌───────▼──────┐ ┌────────▼──────┐ │
│ │ CPU转码集群 │ │ GPU转码集群 │ │
│ └───────┬──────┘ └────────┬──────┘ │
│ │ │ │
│ └────────┬────────┘ │
│ │ │
│ ┌────────▼────────┐ │
│ │ 质量评估模块 │ │
│ └─────────────────┘ │
└───────────────────────────────────────────────────────┘
技术创新:
全面容器化、云原生化的转码服务。
技术特点:
系统架构:
┌──────────────────────────────────────────────────────┐
│ 云原生转码服务架构 │
├──────────────────────────────────────────────────────┤
│ │
│ API Gateway │
│ ↓ │
│ 任务调度器(K8s CRD) │
│ ↓ │
│ ┌──────────────────────────────┐ │
│ │ Kubernetes 集群 │ │
│ │ ┌─────────┬──────────┐ │ │
│ │ │ CPU Pod │ GPU Pod │ │ │
│ │ │ (x86) │ (T4/A10) │ │ │
│ │ └─────────┴──────────┘ │ │
│ │ HPA自动伸缩 │ │
│ └──────────────────────────────┘ │
│ │
│ AI增强模块 │
│ - 超分辨率 │
│ - 去噪/去模糊 │
│ - HDR转换 │
└──────────────────────────────────────────────────────┘
关键指标对比:
| 指标 | 第一代 | 第二代 | 第三代 | 第四代 |
|---|---|---|---|---|
| 转码速度 | 0.5x | 2x | 8x | 20x+ |
| 并发能力 | 1 | 100 | 1000 | 10000+ |
| 支持格式 | FLV | MP4/FLV | 全格式 | 全格式+新编码 |
| 成本(每小时) | ¥100 | ¥50 | ¥20 | ¥10 |
| SLA | 无 | 99% | 99.9% | 99.99% |
早期B站完全依赖第三方CDN服务商。
使用的CDN服务商:
网络架构:
┌────────────────────────────────────────┐
│ 第三方CDN架构 │
├────────────────────────────────────────┤
│ │
│ 源站 ──→ CDN厂商节点 ──→ 用户 │
│ │
│ 覆盖城市:20+ │
│ 节点数量:<100 │
│ 带宽峰值:1Gbps │
└────────────────────────────────────────┘
主要问题:
开始自建CDN节点,与第三方CDN混合使用。
建设目标:
网络拓扑:
┌──────────────────────────────────────────────────┐
│ 混合CDN架构 │
├──────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ │
│ │ 源站集群 │ │
│ └───────┬──────┘ │
│ │ │
│ ┌──────────┼──────────┐ │
│ ↓ ↓ │
│ 自建CDN节点 第三方CDN │
│ (一线城市) (其他地区) │
│ ↓ ↓ │
│ └──────────┬──────────┘ │
│ ↓ │
│ 终端用户 │
│ │
│ 自建节点:50+ │
│ 总节点数:500+ │
│ 带宽储备:10Tbps │
└──────────────────────────────────────────────────┘
技术实现:
全面自建CDN网络,实现核心技术自主可控。
里程碑事件:
技术架构:
┌───────────────────────────────────────────────────────┐
│ 自研CDN体系架构 │
├───────────────────────────────────────────────────────┤
│ │
│ 中心调度层 │
│ ┌──────────────────────────────────────┐ │
│ │ GSLB全局调度 + DNS智能解析 │ │
│ └──────────────┬───────────────────────┘ │
│ │ │
│ 边缘层 ↓ │
│ ┌──────────────────────────────────────┐ │
│ │ L1: 核心节点(8个) │ │
│ │ ├─ 北京 ├─ 上海 ├─ 广州 ├─ 成都 │ │
│ │ └─ 武汉 └─ 西安 └─ 沈阳 └─ 南京 │ │
│ └──────────────┬───────────────────────┘ │
│ │ │
│ ┌──────────────────────────────────────┐ │
│ │ L2: 省级节点(31个) │ │
│ └──────────────┬───────────────────────┘ │
│ │ │
│ ┌──────────────────────────────────────┐ │
│ │ L3: 地市节点(200+) │ │
│ └──────────────┬───────────────────────┘ │
│ │ │
│ 接入层 ↓ │
│ ┌──────────────────────────────────────┐ │
│ │ Last Mile: 运营商直连 + IX互联 │ │
│ └──────────────────────────────────────┘ │
└───────────────────────────────────────────────────────┘
核心技术:
配合国际化战略,建设全球CDN网络。
全球节点分布:
┌────────────────────────────────────────────────────┐
│ 全球CDN节点分布 │
├────────────────────────────────────────────────────┤
│ │
│ 亚太地区: │
│ ● 中国大陆:200+ 节点 │
│ ● 日本:东京(3)、大阪(2) │
│ ● 韩国:首尔(2) │
│ ● 新加坡:(3) │
│ ● 印度:孟买(1)、新德里(1) │
│ │
│ 北美地区: │
│ ● 美西:洛杉矶(2)、旧金山(1) │
│ ● 美东:纽约(1)、华盛顿(1) │
│ │
│ 欧洲地区: │
│ ● 德国:法兰克福(1) │
│ ● 英国:伦敦(1) │
│ │
│ 总带宽:50Tbps+ │
│ 节点数:300+ │
│ 覆盖国家:15+ │
└────────────────────────────────────────────────────┘
技术创新:
CDN性能指标演进:
| 指标 | 2009年 | 2015年 | 2020年 | 2024年 |
|---|---|---|---|---|
| 节点数量 | 0 | 50 | 200 | 300+ |
| 带宽储备 | 100Mbps | 1Tbps | 20Tbps | 50Tbps+ |
| 缓存命中率 | 60% | 85% | 95% | 98%+ |
| 首字节时间 | 2s | 500ms | 200ms | 50ms |
| 卡顿率 | 10% | 3% | 0.5% | 0.1% |
| 每GB成本 | ¥0.5 | ¥0.2 | ¥0.05 | ¥0.02 |
随着用户量激增,传统CDN面临成本和性能双重压力,B站开始探索P2P技术。2015年,B站日均视频播放量突破1亿次,带宽成本成为最大的运营支出项。同时,《进击的巨人》、《Fate/stay night》等热门番剧的同时在线观看人数经常突破百万,造成CDN节点严重拥堵。
驱动因素:
技术调研: B站技术团队深入研究了多个P2P方案:
基于WebRTC的浏览器端P2P方案。这是B站第一次大规模应用P2P技术,项目代号”BiliP2P”,由5人小组历时6个月开发完成。
技术架构:
┌──────────────────────────────────────────────┐
│ WebRTC P2P架构 │
├──────────────────────────────────────────────┤
│ │
│ Tracker服务器 │
│ ↓ │
│ Peer发现与匹配 │
│ ↓ │
│ ┌─────┴─────┐ │
│ ↓ ↓ │
│ Peer A ←──→ Peer B │
│ ↑ ↑ │
│ └─────┬─────┘ │
│ ↓ │
│ CDN兜底 │
│ │
│ P2P分享率:15% │
│ 节省带宽:10% │
└──────────────────────────────────────────────┘
技术特点:
遇到的挑战:
实际运行数据(2017年Q4):
结合客户端P2P和边缘节点,构建混合分发网络。2018年3月B站在纳斯达克上市后,获得充足资金投入技术研发。新一代P2P系统投入¥3000万研发经费,团队扩充到20人。
系统设计:
┌────────────────────────────────────────────────────┐
│ 混合P2P分发架构 │
├────────────────────────────────────────────────────┤
│ │
│ 调度中心 │
│ ┌────────────────────────────┐ │
│ │ 智能调度算法 │ │
│ │ - 内容热度评估 │ │
│ │ - 节点质量评分 │ │
│ │ - 网络拓扑优化 │ │
│ └────────────┬───────────────┘ │
│ │ │
│ ┌───────┼───────┐ │
│ ↓ ↓ ↓ │
│ CDN节点 边缘节点 P2P节点 │
│ 30% 40% 30% │
│ │ │ │ │
│ └───────┼───────┘ │
│ ↓ │
│ 终端用户 │
│ │
│ P2P分享率:35% │
│ 带宽节省:25% │
│ 启动时间:<1s │
└────────────────────────────────────────────────────┘
核心优化:
if (内容热度 > 阈值 && 在线peer数 > 10) {
优先使用P2P
} else if (用户VIP || 网络质量差) {
优先使用CDN
} else {
混合模式
}
尝试将区块链技术与P2P结合,建立去中心化内容分发网络。
实验性架构:
┌──────────────────────────────────────────────────┐
│ 区块链P2P实验架构 │
├──────────────────────────────────────────────────┤
│ │
│ 智能合约层 │
│ - 带宽贡献记录 │
│ - Token激励分发 │
│ - 内容版权确认 │
│ │
│ IPFS存储层 │
│ - 内容寻址 │
│ - 分布式存储 │
│ - 去重存储 │
│ │
│ P2P传输层 │
│ - LibP2P协议栈 │
│ - 多路复用传输 │
│ - 加密传输通道 │
└──────────────────────────────────────────────────┘
项目成果:
基于AI优化的智能P2P分发系统。
技术创新:
┌───────────────────────────────────────────────────┐
│ AI驱动的P2P系统 │
├───────────────────────────────────────────────────┤
│ │
│ 机器学习模块 │
│ ┌─────────────────────────────────┐ │
│ │ - 用户行为预测 │ │
│ │ - 内容流行度预测 │ │
│ │ - 网络质量预测 │ │
│ │ - 最优路径规划 │ │
│ └──────────┬──────────────────────┘ │
│ ↓ │
│ 智能调度引擎 │
│ ┌─────────────────────────────────┐ │
│ │ - 实时决策(<10ms) │ │
│ │ - 多目标优化 │ │
│ │ - 自适应学习 │ │
│ └──────────┬──────────────────────┘ │
│ ↓ │
│ 分发网络 │
│ ├─ CDN(25%) │
│ ├─ 边缘节点(35%) │
│ └─ P2P(40%) │
│ │
│ 关键指标: │
│ - P2P分享率:40%+(热门内容可达60%) │
│ - 带宽成本降低:35%(年节省约¥2亿) │
│ - 首屏时间:<500ms(相比2020年提升50%) │
│ - 卡顿率:<0.1%(行业领先水平) │
│ - 节点密度:平均每个视频200+活跃节点 │
│ - 上传利用率:用户上行带宽利用率提升至15% │
└───────────────────────────────────────────────────┘
P2P技术指标演进:
| 指标 | 2016年 | 2018年 | 2020年 | 2024年 |
|---|---|---|---|---|
| P2P分享率 | 15% | 25% | 35% | 40%+ |
| NAT穿透成功率 | 60% | 75% | 85% | 92% |
| 节点在线时长 | 10分钟 | 30分钟 | 1小时 | 2小时+ |
| 带宽节省 | 10% | 20% | 30% | 35%+ |
| 数据传输效率 | 50% | 70% | 85% | 95% |
| 月活跃P2P节点 | 10万 | 100万 | 500万 | 1000万+ |
| 技术团队规模 | 5人 | 15人 | 30人 | 50人+ |
B站的超高清视频之路始于2018年,随着用户对高画质内容需求的增长,B站逐步建立了完整的超高清视频技术体系。
里程碑时刻:
主要挑战:
技术架构:
┌──────────────────────────────────────────────────┐
│ 超高清视频处理架构 │
├──────────────────────────────────────────────────┤
│ │
│ 上传端 │
│ ┌────────────────────────────────┐ │
│ │ 分块上传(每块100MB) │ │
│ │ 断点续传支持 │ │
│ │ 客户端预处理(可选) │ │
│ └──────────┬─────────────────────┘ │
│ ↓ │
│ 转码层 │
│ ┌────────────────────────────────┐ │
│ │ GPU集群(NVIDIA A100/H100) │ │
│ │ - HEVC/H.265编码 │ │
│ │ - AV1编码(实验性) │ │
│ │ - HDR元数据处理 │ │
│ └──────────┬─────────────────────┘ │
│ ↓ │
│ 存储层 │
│ ┌────────────────────────────────┐ │
│ │ 分级存储策略 │ │
│ │ - 热数据:SSD(7天内) │ │
│ │ - 温数据:HDD(30天内) │ │
│ │ - 冷数据:磁带/对象存储 │ │
│ └──────────┬─────────────────────┘ │
│ ↓ │
│ 分发层 │
│ ┌────────────────────────────────┐ │
│ │ 智能码率自适应(ABR) │ │
│ │ - 根据带宽动态切换 │ │
│ │ - 优先保证流畅度 │ │
│ └────────────────────────────────┘ │
└──────────────────────────────────────────────────┘
多级编码阶梯:
8K (7680×4320) ━━━━━━━━━━━━━━━━━━━━━━━ 80Mbps
↓
4K (3840×2160) ━━━━━━━━━━━━━━━━━━ 20Mbps
↓
2K (2560×1440) ━━━━━━━━━━━━━ 12Mbps
↓
1080P (1920×1080) ━━━━━━━━━ 8Mbps
↓
720P (1280×720) ━━━━━━ 4Mbps
↓
480P (854×480) ━━━ 2Mbps
智能编码参数优化:
带宽预测与调度:
# 带宽预测算法示例
def predictBandwidth(history, network_type):
# 基于历史数据的卡尔曼滤波
predicted = kalmanFilter(history)
# 网络类型加权
if network_type == "WIFI":
predicted *= 1.2
elif network_type == "5G":
predicted *= 1.5
elif network_type == "4G":
predicted *= 0.8
# 时段因子
hour = getCurrentHour()
if hour in [19, 20, 21, 22]: # 晚高峰
predicted *= 0.7
return min(predicted, MAX_BANDWIDTH)
清晰度智能推荐:
策略一:按需转码
策略二:区域差异化
策略三:会员差异化
成本收益分析: | 清晰度 | 存储成本/TB | CDN成本/TB | 用户占比 | 收入贡献 | |——–|————|————|———-|———-| | 8K | ¥2000 | ¥500 | 0.1% | 5% | | 4K | ¥500 | ¥200 | 2% | 15% | | 1080P | ¥125 | ¥50 | 30% | 40% | | 720P | ¥60 | ¥25 | 50% | 30% | | 480P | ¥30 | ¥15 | 17.9% | 10% |
2020年,B站开始研究AV1编码技术,这是由开放媒体联盟(AOMedia)开发的开源、免版税的视频编码格式。相比H.265/HEVC,AV1能够在相同质量下节省30%的码率,对于B站这样的视频平台具有巨大的成本节约潜力。
选择AV1的原因:
时间线:
2020.Q1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2024.Q4
│ │
├─ 2020.Q1: 技术预研,性能评估 │
├─ 2020.Q3: 小规模测试,1000个视频 │
├─ 2021.Q1: 优化编码器,速度提升3倍 │
├─ 2021.Q3: Web端支持(Chrome 90+) │
├─ 2022.Q1: 移动端软解支持 │
├─ 2022.Q4: 10%流量切换到AV1 │
├─ 2023.Q2: 硬件解码支持(Android 12+) │
├─ 2023.Q4: 全站30%视频支持AV1 │
└─ 2024.Q2: 直播场景AV1应用 │
编码优化:
┌────────────────────────────────────────────────────┐
│ AV1编码pipeline │
├────────────────────────────────────────────────────┤
│ │
│ 预处理 │
│ ├─ 降噪处理 │
│ ├─ 色彩空间转换 │
│ └─ 分辨率适配 │
│ ↓ │
│ 编码器选择 │
│ ├─ SVT-AV1(速度优先) │
│ ├─ libaom(质量优先) │
│ └─ rav1e(平衡模式) │
│ ↓ │
│ 编码参数 │
│ ├─ CRF: 28-35(根据内容) │
│ ├─ Speed: 4-8(速度预设) │
│ ├─ Threads: 32-64 │
│ └─ Tiles: 2×2 到 4×4 │
│ ↓ │
│ 后处理 │
│ ├─ 封装(MP4/WebM) │
│ ├─ 元数据注入 │
│ └─ 质量验证(VMAF>93) │
└────────────────────────────────────────────────────┘
性能对比: | 编码器 | 编码速度 | 压缩率 | 质量(VMAF) | CPU使用率 | |——–|———-|——–|————|———–| | x264 | 100x | 基准 | 95 | 100% | | x265 | 20x | -35% | 96 | 400% | | VP9 | 15x | -30% | 95.5 | 350% | | AV1 | 5x | -45% | 96.5 | 800% |
码率节省效果(相同VMAF 95):
内容类型 H.264 H.265 AV1 节省
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
动画 8Mbps 5Mbps 3.5Mbps 56%
电影 10Mbps 7Mbps 5Mbps 50%
游戏 12Mbps 9Mbps 7Mbps 42%
综艺 9Mbps 6Mbps 4.5Mbps 50%
教育 6Mbps 4Mbps 2.8Mbps 53%
部署挑战与解决:
未来规划: