目录
一、音视频 C++ 岗位「必须掌握」(核心基础)
1️⃣ 音视频基础原理(面试必问)
🎵 音频基础
🎬 视频基础
2️⃣ FFmpeg(音视频 C++ 的绝对核心)
必须掌握
必会 API(重点)
必做练习
3️⃣ 音视频数据处理能力(很重要)
视频
音频
二、进阶能力(区分普通和大厂)
4️⃣ 实时音视频(非常重要)
协议
核心问题
5️⃣ WebRTC(大厂必杀技)
WebRTC 必会点
实战目标
6️⃣ 音视频播放器 / 推流器
播放器
推流器
三、高阶 / 大厂加分项(拉开差距)
7️⃣ 性能与系统能力(C++ 大厂非常看重)
8️⃣ 跨平台 & 工程能力
9️⃣ 算法方向(可选但非常加分)
四、推荐学习路线(适合你)
📍 第 1 阶段(1–2 个月)
📍 第 2 阶段(2–3 个月)
📍 第 3 阶段(3 个月)
一、音视频 C++ 岗位「必须掌握」(核心基础)
1️⃣ 音视频基础原理(面试必问)
🎵 音频基础
PCM、WAV、MP3、AAC 区别
采样率 / 采样位数 / 声道数
音频帧 vs 音频包
音频编码流程(PCM → 编码 → 压缩)
重采样、混音原理
常见音频编码:
AAC(LC / HE / HEv2)
Opus(大厂高频)
🎬 视频基础
YUV / RGB 区别(重点)
YUV420P / NV12 / NV21
分辨率、帧率、码率
GOP / I帧 / P帧 / B帧
Annex-B vs AVCC
视频编码流程
常见视频编码:
H.264(必须)
H.265 / VP9 / AV1(了解)
📌 面试常问:
YUV420 为什么省带宽?
I 帧为什么大?
GOP 变大有什么影响?
2️⃣ FFmpeg(音视频 C++ 的绝对核心)
👉不会 FFmpeg = 基本进不了音视频岗
必须掌握
FFmpeg 整体架构
核心模块:
libavformat(封装/解封装)
libavcodec(编解码)
libavutil
libswscale(视频转换)
libswresample(音频重采样)
必会 API(重点)
avformat_open_inputavformat_find_stream_infoavcodec_find_decoder / encoderavcodec_open2av_read_frameavcodec_send_packetavcodec_receive_frameav_frameav_packet时间戳:PTS / DTS / time_base
必做练习
✅ 本地视频解封装
✅ 解码 H.264 → YUV
✅ PCM 重采样
✅ 编码 AAC / H.264
✅ 音视频同步(基础)
3️⃣ 音视频数据处理能力(很重要)
大厂喜欢考**“你到底懂不懂数据”**
视频
YUV 转 RGB
缩放、裁剪
颜色空间转换
NV12 ↔ YUV420P
软解 vs 硬解(概念)
音频
PCM 重采样
音量调整
多路混音
回声消除 / 噪声抑制(原理)
二、进阶能力(区分普通和大厂)
4️⃣ 实时音视频(非常重要)
抖音 / 腾讯 / 阿里 / 快手 = 全是实时
协议
RTP / RTCP(重点)
RTSP
WebRTC(大厂高频)
FLV / HLS(直播)
核心问题
音视频同步策略
抖动缓冲(Jitter Buffer)
丢包重传
延迟控制
弱网对策
📌 面试常问:
实时音视频如何降低延迟?
RTP 和 RTMP 的区别?
5️⃣ WebRTC(大厂必杀技)
如果你目标是腾讯 / 字节 / 阿里,一定要会
WebRTC 必会点
WebRTC 架构
SDP
ICE / STUN / TURN
SRTP
NACK / FEC
AEC / AGC / NS
实战目标
跑通 WebRTC demo
理解音视频采集 → 编码 → 传输 → 解码 → 渲染
6️⃣ 音视频播放器 / 推流器
播放器
缓冲区设计
解码线程
音视频同步
快进 / 快退
推流器
RTMP / RTP 推流
时间戳处理
丢帧策略
三、高阶 / 大厂加分项(拉开差距)
7️⃣ 性能与系统能力(C++ 大厂非常看重)
多线程解码架构
锁优化
内存池
零拷贝
SIMD(了解)
硬件加速(NVDEC / VAAPI / MediaCodec)
8️⃣ 跨平台 & 工程能力
Linux 音视频开发(重点)
Android NDK(C++ 音视频)
iOS AVFoundation(了解)
CMake
动态库 / 静态库
编译 FFmpeg
9️⃣ 算法方向(可选但非常加分)
编码器原理(x264 / x265)
B 帧参考
码率控制(CBR / VBR / ABR)
QoE 指标
四、推荐学习路线
📍 第 1 阶段(1–2 个月)
音视频基础 + FFmpeg API
解封装 / 解码 / 编码
本地播放器
📍 第 2 阶段(2–3 个月)
RTMP / RTP
音视频同步
推流器
弱网处理
📍 第 3 阶段(3 个月)
WebRTC
实时音视频项目
性能优化