Skeyevss FAQ:转码与多码率自适应
1. 何时需要转码
- 播放端仅支持 H.264,源为 H.265;
- 要求 低码率 外发,而设备只出主码流;
- 需要将 PS/RTP 转为浏览器友好的 fMP4/HLS;
- 音频 G.711/G.722 与 WebRTC Opus 互转。
不转码路径 延迟最低、CPU 最少;转码是 功能换成本 的显式选择。
2. 资源规划
转码是 CPU 密集型:
- 按 并发路数 × 分辨率 × 帧率 估算;1080p30 全转码与仅转封装差异巨大;
- 容器部署时设置 CPU limit 过低会导致 帧率下降、马赛克;
- 关注 内存带宽 与 NUMA(物理机多路转码时)。
3. 常见故障
| 现象 | 排查方向 |
|---|---|
| 画面卡顿周期性 | CPU 打满、单核热点 |
| 花屏 | 关键帧丢失、码流损坏、时间戳异常 |
| 音画不同步 | 时间戳重排、音频 resample 配置 |
| 启动即失败 | 缺少编解码库、许可证、或设备编码格式不在白名单 |
可与《SDP 协商与编码格式》FAQ 联合阅读,先确认 协商结果 再判断是否要转码。
4. 多码率与自适应
- ABR 通常需要 多档 GOP 对齐 与 切片边界一致,否则切换时闪烁;
- 若仅做 双码流(主/子),平台侧策略可以是:大屏主码、小屏子码,减少实时转码压力;
- 弱网下降档时,注意 信令与媒体状态机 是否一致,避免 UI 显示高清实际已切子码流。
5. 运维建议
- 对转码节点单独 监控 CPU、队列长度、丢弃帧数;
- 大版本升级后回归 典型设备品牌 的编码组合;
- 提供 关闭转码 的配置开关作为应急(接受兼容风险)。
转码问题 先量化 CPU 与协商格式,再调参数;多数卡顿是容量不足而非参数玄学。