视频点播与直播技术架构实践笔记
一、核心概念:容器、编码与协议
在深入架构之前,必须先理清三个核心概念的关系:
容器格式(封装格式) :视频文件的“包装盒”,决定文件后缀名(如
.mp4、.flv、.ts)。它规定如何将视频、音频、字幕等轨道打包在一起。编码格式(压缩算法) :视频内容的“压缩方式”,决定画质和文件大小。H.264 是目前兼容性最广的“万金油”,H.265/HEVC 可在同等画质下节省约 40%-50% 的带宽,AV1 是代表未来的免专利费新贵。
传输协议:数据从源头到达目的地的“运输规则”,决定延迟、稳定性和适用场景。
点播的标准组合:MP4 容器 + H.264 视频编码 + AAC 音频编码。
二、视频点播(VOD)架构
VOD 系统由 存储、转码、分发 三大核心组件构成。
2.1 存储层:对象存储是标准答案
视频文件应存储在对象存储(如 AWS S3、阿里云 OSS)中,而非数据库或文件存储。对象存储具有近乎无限的扩容能力、极低的成本,且天生与 CDN 集成。
存储优化策略:
生命周期管理:新上传的“热”视频放标准存储,随时间推移自动迁移到低频访问或归档存储,可节省 70% 以上成本。
多副本冗余:跨可用区存储多份数据副本,保障高可用。
2.2 转码层:不只是格式转换
为什么不能直接播放原始 MP4?转码解决三个核心问题:
自适应码率(ABR) :生成同一视频的多个分辨率版本(1080p/720p/480p/360p),播放器根据用户实时网速自动切换,实现“不卡顿”的观看体验。
兼容性保障:统一转为 H.264 + AAC 的“万金油”组合,确保所有设备都能播放。
拖拽秒开(Fast Start) :将 MP4 文件的元数据索引(moov)从尾部移到头部,实现“拖哪播哪”。
云厂商的转码服务通常基于 GPU 加速集群,支持 H.264/H.265/AV1 等编码格式,可按分钟计费。
2.3 分发层:CDN 是必选项
CDN 将视频缓存到全球边缘节点,实现就近访问。主流云厂商整合了 2800+ 边缘节点,首屏加载时间可控制在 500ms 以内。
三、直播架构与协议详解
直播的核心流程是:推流 → 云端处理 → 分发 → 播放。
3.1 推流协议(上传)
RTMP(Real-Time Messaging Protocol) :直播推流的“事实标准”,基于 TCP,延迟 1-5 秒,几乎所有推流工具(OBS、硬件编码器)都支持。缺点:需要 Flash 或专用播放器,现代浏览器原生不支持。
RTSP(Real Time Streaming Protocol) :安防摄像头的“母语”,与 RTP 配合使用,延迟极低(毫秒级)。缺点:穿透性差,浏览器不支持。典型场景:监控摄像头取流,然后转成 RTMP 推给云平台。
3.2 分发协议(播放)
HLS(HTTP Live Streaming) :Apple 开发,基于 HTTP,将视频切成
.ts小片段 +.m3u8索引文件。优点:跨平台兼容性最好,支持自适应码率缺点:延迟较高(10-30 秒)HTTP-FLV:基于 HTTP 长连接,延迟 1-3 秒,适合 Web 端低延迟直播。
WebRTC:基于 UDP,延迟 < 1 秒,适合视频会议、连麦 PK 等强互动场景。
3.3 协议选型速查表
现代直播标准流水线:
摄像头(RTSP)→ 网关(转 RTMP)→ 云平台(转 HLS/WebRTC)→ 观众
四、点播 vs 直播:技术差异
五、云服务实践:为什么“上云”是必选项
存储:对象存储的成本远低于自建,且具备 12 个 9 的数据持久性。
转码:云厂商提供 GPU 加速转码集群,按分钟计费,无需自建 FFmpeg 集群。
分发:云 CDN 拥有全球百万级节点和 BGP 带宽,自建无法企及。
成本优化:使用抢占式实例(Spot Instance)+ K8s 弹性调度,可大幅降低计算成本。
六、避坑指南
不要把视频存数据库:数据库存视频链接(URL),视频文件本身放对象存储。
不要把数据库跑在 K8s 里:K8s 管“无状态计算”,云管“有状态数据”。
不要用 RTSP 做 Web 直播:浏览器不支持,需转成 RTMP 再分发。
不要省转码的钱:面向公众的 Web/App 播放,转码是“必选项”,云转码按分钟计费,性价比极高。
核心总结:对象存储 + 转码 + CDN 是点播的标准答案;RTMP 推流 + HLS/WebRTC 分发 是直播的最佳实践。把钱花在云服务上,把精力花在业务逻辑上。
视频点播与直播技术架构实践笔记
https://lautung.com/archives/Wxzt6Vit
评论