目录
[一、音视频 C++ 岗位「必须掌握」(核心基础)](#一、音视频 C++ 岗位「必须掌握」(核心基础))
[1️⃣ 音视频基础原理(面试必问)](#1️⃣ 音视频基础原理(面试必问))
[🎵 音频基础](#🎵 音频基础)
[🎬 视频基础](#🎬 视频基础)
[2️⃣ FFmpeg(音视频 C++ 的绝对核心)](#2️⃣ FFmpeg(音视频 C++ 的绝对核心))
[必会 API(重点)](#必会 API(重点))
[3️⃣ 音视频数据处理能力(很重要)](#3️⃣ 音视频数据处理能力(很重要))
[4️⃣ 实时音视频(非常重要)](#4️⃣ 实时音视频(非常重要))
[5️⃣ WebRTC(大厂必杀技)](#5️⃣ WebRTC(大厂必杀技))
[WebRTC 必会点](#WebRTC 必会点)
[6️⃣ 音视频播放器 / 推流器](#6️⃣ 音视频播放器 / 推流器)
[三、高阶 / 大厂加分项(拉开差距)](#三、高阶 / 大厂加分项(拉开差距))
[7️⃣ 性能与系统能力(C++ 大厂非常看重)](#7️⃣ 性能与系统能力(C++ 大厂非常看重))
[8️⃣ 跨平台 & 工程能力](#8️⃣ 跨平台 & 工程能力)
[9️⃣ 算法方向(可选但非常加分)](#9️⃣ 算法方向(可选但非常加分))
[📍 第 1 阶段(1--2 个月)](#📍 第 1 阶段(1–2 个月))
[📍 第 2 阶段(2--3 个月)](#📍 第 2 阶段(2–3 个月))
[📍 第 3 阶段(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_input -
avformat_find_stream_info -
avcodec_find_decoder / encoder -
avcodec_open2 -
av_read_frame -
avcodec_send_packet -
avcodec_receive_frame -
av_frame -
av_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
-
实时音视频项目
-
性能优化