
VideoFrame是 WebRTC 视频子系统的"原子"对象。它不只是一个裸 buffer,而是把"像素格式 + 宽高 + 时间戳 + 旋转角度 + 引用计数"打包在一起,跨采集、编码、解码、渲染模块传递。理解VideoFrame的内部设计与 ZeroCopy 引用机制,是排查"花屏、内存暴涨、跨线程崩溃"问题的前提。1. VideoFrame 的核心价值:像素数据 + 时序语义 + 生命周期VideoFrame不只是“图像数据容器”,它同时承载了三件事:像素数据(VideoFrameBuffer)、时序信息(timestamp_us、RTP timestamp 关联)和显示语义(旋转、颜色空间、元数据)。这让一帧数据在采集、编码、传输、解码、渲染之间可以用统一对象流动,而不是每个模块都定义一套私有结构再做格式搬运。常见路径可以概括为: