音视频开发常见面试题解析(一)
音视频开发核心问题解析
解码与渲染流程
解码过程
- H.264解码输出:YUV420P/YUV格式
- AAC解码输出:PCM格式
渲染实现
- 使用OpenGL将YUV分量上传为纹理
- 通过着色器完成YUV到RGB的转换
音视频同步
- 利用帧的PTS做时钟同步
音频帧丢失处理
-
视频丢帧方案
- 丢弃部分视频帧使视频追上音频
-
音频补偿方案
- 填充静音或插值补足缺失片段
- 适用于不允许丢视频帧的场景
-
动态速率调整
- 通过加快或减慢视频播放重新同步
注:丢帧或填充静音是直播场景下最常用的方案
花屏问题处理
产生原因
-
关键帧丢失
- 导致后续B帧和P帧无法显示
-
元数据变化
- 分辨率、帧率、编码格式等参数变化
- 播放器适应问题
-
硬件兼容性
- 主要出现在安卓设备
-
颜色格式不一致
- 推流和播放端格式不匹配
解决方案
-
丢帧处理优化
- 必须丢帧时应丢弃整个GOP
-
参数稳定性
- 保持直播编码参数稳定
-
解码方案调整
- 尝试软解码对比
- 建立设备兼容性名单
-
格式统一
- 统一推流和拉流的颜色格式
跳帧问题分析
原因分析
- 帧率与刷新率不匹配
- 解码/渲染性能不足
- 网络抖动影响
- 音视频同步机制问题
服务器性能评估
测试维度
-
并发能力
- 同时观看和推流路数
-
带宽评估
- 总出口带宽
- CDN分发能力
-
转码负载
- CPU/GPU资源评估
-
系统稳定性
- 端到端延迟
- 丢包率
- 故障恢复能力
IPC摄像头方案
设备来源
- 自研/ODM
- 第三方厂商(海康、大华等)
通信协议
-
RTSP+RTP
- 主流摄像头默认支持
-
GB28181
- 国内安防标准
- SIP 5060端口注册
-
ONVIF
- 国际通用协议
- 支持设备发现和控制
音视频平台架构
核心模块
-
用户权限模块
- 登录认证
- 鉴权管理
- Token管理
-
前端/客户端
- 播放功能
- 管理交互
-
流媒体服务
- 推流/拉流
- 协议转发
- 转码支持
-
存储服务
- 录像保存
- 截图存储
- 检索回放
-
设备管理
- 摄像头注册
- 状态监控
- 控制命令下发
评论