C++音视频开发技能树(初级)

前言

        来整理一下C++音视频开发从初级阶段到高级阶段要学习的知识点吧!


C++音视频开发技能树(初级)

第一阶段 音视频基础

音频基础知识

01.如何采集声音-模数转换原理

02.为什么高品质音频采样率>=44.1Khz

03.什么是PCM

04.一个采样点用多少位表示

05.采样值用整数还是浮点数表示

06.音量大小和采样值大关系

07.多少个采样点作为一帧数据

08.左右通道的采样数据如何排列

09.什么是PCM(脉冲编码调制)

10.音频编码原理

视频基础知识

01.RGB彩色原理

02.为什么需要YUV格式

03.什么是像素

04.分辨率、帧率、码率

05.YUV数据存储格式区别

06.YUV内存对齐问题

07.为什么画面显示绿屏

08.H264编码原理

09.H264 IPB帧的关系

解复用基础知识

01.什么是解复用,比如MP4格式

02.为什么需要不同格式的解复用格式MP4/FLV/TS

03.常见的服用格式MP4/FLV/TS

FFmpeg开发环境搭建

01.Windows、Ubuntu、MAC三大平台

02.QT安装

03.FFmpeg 命令行环境

04.FFmpeg API环境

05.FFmpeg 编译

06.vs2019安装(win平台)

音视频开发常用工具

01.MediaInfo-——分析视频文件

02.VL播放器——播放测试

03.EasyICE——分析TS流

04.flvAnalyser——分析FLV

05.mp4box——分析MP4

06.audacity——分析音频PCM

07.Elecard_streamEye——分析H264

08.海康YUVPlayer——分析YUY

第二阶段 FFmpeg实战

FFmpeg命令

01.音频PCM/AAC文件提取

02.视频YUY/H264文件提取

03.解复用、复用

04.音视频录制

05.视频裁剪和合并

06.图片/视频转换

07.直播推流和拉流

08.水印/画中画/九宫格滤镜

SDL跨平台多媒体开发库实战

01.SDL环境搭建

02.SDL事件处理

03.SDL线程处理

04.视频YUV画面渲染

05.音频PCM声音输出

FFmpeg的基石

01.FFmpeg 框架

02.FFmjpg 内存引用计数模型

03.解复用相关AVFormat XXX等

04.编解码相关AVCodec XXX等

05.压缩数据AVPacket

06.未压缩数据AVFrame

07.FFmpeg面向对象思想

08.Packet/Frame数据零拷贝

FFmpeg过滤器

01.FFmpeg过滤chain框架

02.音频过滤器框架

03.视频规律器框架

04.多路音频混音amix

05.视频水印watermark

06.视频区域裁剪和翻转

07.视频添加logo

FFmpeg音视频解复用+解码

01.解复用流程

02.音频解码流程

03.视频解码流程

04.FLV封装格式分析

05.MP4封装格式分析

06.FLV和MP4 seek有什么区别

07.为什么FLV格式能用于直播

08.为什么MP4不能用于直播

09.MP4能否用来做点播

10.AAC ADTS分析

11.H264 NALU分析

12.AVIO内存输入模式

13.音频重采样实战

14.重采样后的数据播放时长是否一致

15.重采样后PTS如何表示

16.视频解码后YUV内存对齐问题

17.音频解码后PCM排列格式问题

18.硬件解码dxva2/nvdec/cuvid/qsv

19.硬件gpu数据转移到cpu

20.H265解码

ffplay播放器

01.掌握ffplay.c的意义

02.ffplay框架分析

03.解复用线程

04.音频解码线程

05.视频解码线程

06.声音输出回调

07.画面渲染时间间隔

08.音频重采样

09.画面尺寸格式变换

10.音频、视频、外部时钟、同步区别

11、以视频为基准时音频重采样补偿

12、音量静音、调节大小的本质

13、音视频packet队列大小限制

14、音视频packet队列线程安全

15、音视频frame队列大小限制

16、音视频frame队列线程安全

17、暂停、播放实现机制

18、seek播放导致的画面卡主问题

19、seek播放数据队列、同步时钟处理

20、如何做到逐帧播放

21、播放器退出的流程要点

FFmpeg音视频解码+复用合成视频 

01.AAC音频编码

02.H264视频解码

03.PCM+YUV复用合成MP4/FLV

04.H264编码原理

05.IDR帧和I帧的区别

06.动态修改编码码率

07.GOP间隔参考值

08.复用合成MP4音视频不同步问题

09.编码、复用timebase问题

10.MP4合成IOS不能播放问题

11.重采样后PTS如何表示

12.视频编码YUV内存对齐问题

13.硬件编码dxva2/nvenc/cuvid/qsv

14.H265编码原理

15.H264、H265编码互转

ffmpeg多媒体视频处理工具

01.掌握ffmpeg.c的意义

02.ffmpeg框架分析

03.音视频编码

04.封装格式转换

05.提取音频

06.提取视频

07.logo叠加

08.音视频文件拼接

09.filter机制

10.命令行解析流程

11.MP4转FLV不重新编码逻辑

12.MP4转FLV重新编码逻辑

13.MP4转FLV timebase

14.MP4转FLV scale

FFmpeg+QT QMplay2播放器

01.QMplay2开源播放器讲解

02.QMplay2框架分析

03.播放器模块划分

04.解复用模块

05.音视频解码

06.播放器控制

07.音视频同步

08.CUVID/D3D11VA硬解

09.音量频谱展示

10.音频均衡器

11.画面旋转、翻转

12.画面亮度、饱和度调节

13.画面4:3 16:9切换

14.码流信息分析

OBS推流录制源码分析

01.OBS vs2019+QT5.15.2编译

02.音视频配置和初始化分析

03.音视频线程模块采集和编码分析

04.视频配置和初始化分析

05.视频线程模块采集和编码分析

06.OBS初始化过程分析

07.录制流程分析

08.麦克风采集分析

09.桌面采集分析

10.X264编码分析

11.系统声音+麦克风混音

12.推流模块分析


第一阶段 音视频基础

音频基础知识

01.如何采集声音-模数转换原理

02.为什么高品质音频采样率>=44.1Khz

03.什么是PCM

04.一个采样点用多少位表示

05.采样值用整数还是浮点数表示

06.音量大小和采样值大关系

07.多少个采样点作为一帧数据

08.左右通道的采样数据如何排列

09.什么是PCM(脉冲编码调制)

10.音频编码原理

视频基础知识

01.RGB彩色原理

02.为什么需要YUV格式

03.什么是像素

04.分辨率、帧率、码率

05.YUV数据存储格式区别

06.YUV内存对齐问题

07.为什么画面显示绿屏

08.H264编码原理

09.H264 IPB帧的关系

注:具体H264编码格式见FFmpeg章节

解复用基础知识

01.什么是解复用,比如MP4格式

02.为什么需要不同格式的解复用格式MP4/FLV/TS

03.常见的服用格式MP4/FLV/TS

注:具体复用格式详解见FFmpeg章节

FFmpeg开发环境搭建

01.Windows、Ubuntu、MAC三大平台

02.QT安装

03.FFmpeg 命令行环境

04.FFmpeg API环境

05.FFmpeg 编译

06.vs2019安装(win平台)

音视频开发常用工具

01.MediaInfo-——分析视频文件

02.VL播放器——播放测试

03.EasyICE——分析TS流

04.flvAnalyser——分析FLV

05.mp4box——分析MP4

06.audacity——分析音频PCM

07.Elecard_streamEye——分析H264

08.海康YUVPlayer——分析YUY

第二阶段 FFmpeg实战

FFmpeg命令

01.音频PCM/AAC文件提取

02.视频YUY/H264文件提取

03.解复用、复用

04.音视频录制

05.视频裁剪和合并

06.图片/视频转换

07.直播推流和拉流

08.水印/画中画/九宫格滤镜

注:掌握FFmpeg的目的:1、快速掌握FFmpeg能做什么;2、加深对音视频的理解

SDL跨平台多媒体开发库实战

01.SDL环境搭建

02.SDL事件处理

03.SDL线程处理

04.视频YUV画面渲染

05.音频PCM声音输出

注:SDL兼容Win、Ubuntu、Mac三大平台,主要用于后续项目的画面显示和声音输出

FFmpeg的基石

01.FFmpeg 框架

02.FFmjpg 内存引用计数模型

03.解复用相关AVFormat XXX等

04.编解码相关AVCodec XXX等

05.压缩数据AVPacket

06.未压缩数据AVFrame

07.FFmpeg面向对象思想

08.Packet/Frame数据零拷贝

注:目的熟悉FFmpeg常用结构体和函数接口

FFmpeg过滤器

01.FFmpeg过滤chain框架

02.音频过滤器框架

03.视频规律器框架

04.多路音频混音amix

05.视频水印watermark

06.视频区域裁剪和翻转

FFmpeg音视频解复用+解码

01.解复用流程

02.音频解码流程

03.视频解码流程

04.FLV封装格式分析

05.MP4封装格式分析

06.FLV和MP4 seek有什么区别

07.为什么FLV格式能用于直播

08.为什么MP4不能用于直播

09.MP4能否用来做点播

10.AAC ADTS分析

11.H264 NALU分析

12.AVIO内存输入模式

13.音频重采样实战

14.重采样后的数据播放时长是否一致

15.重采样后PTS如何表示

16.视频解码后YUV内存对齐问题

17.音频解码后PCM排列格式问题

18.硬件解码dxva2/nvdec/cuvid/qsv

19.硬件gpu数据转移到cpu

20.H265解码

注:FFmpeg API学习:视频解复用->解码->编码->复用合成视频

ffplay播放器

01.掌握ffplay.c的意义

02.ffplay框架分析

03.解复用线程

04.音频解码线程

05.视频解码线程

06.声音输出回调

07.画面渲染时间间隔

08.音频重采样

09.画面尺寸格式变换

10.音频、视频、外部时钟、同步区别

11、以视频为基准时音频重采样补偿

12、音量静音、调节大小的本质

13、音视频packet队列大小限制

14、音视频packet队列线程安全

15、音视频frame队列大小限制

16、音视频frame队列线程安全

17、暂停、播放实现机制

18、seek播放导致的画面卡主问题

19、seek播放数据队列、同步时钟处理

20、如何做到逐帧播放

21、播放器退出的流程要点

注:ffplay.c是ffplay命令的源码,掌握ffplay对于我们自己开发播放器有事半功倍的效果

FFmpeg音视频解码+复用合成视频 

01.AAC音频编码

02.H264视频解码

03.PCM+YUV复用合成MP4/FLV

04.H264编码原理

05.IDR帧和I帧的区别

06.动态修改编码码率

07.GOP间隔参考值

08.复用合成MP4音视频不同步问题

09.编码、复用timebase问题

10.MP4合成IOS不能播放问题

11.重采样后PTS如何表示

12.视频编码YUV内存对齐问题

13.硬件编码dxva2/nvenc/cuvid/qsv

14.H265编码原理

15.H264、H265编码互转

ffmpeg多媒体视频处理工具

01.掌握ffmpeg.c的意义

02.ffmpeg框架分析

03.音视频编码

04.封装格式转换

05.提取音频

06.提取视频

07.logo叠加

08.音视频文件拼接

09.filter机制

10.命令行解析流程

11.MP4转FLV不重新编码逻辑

12.MP4转FLV重新编码逻辑

13.MP4转FLV timebase

14.MP4转FLV scale

注:ffmpeg.c是ffmpeg命令的源码,掌握ffmpeg.c的大体框架对于我们要实现一些不知道怎么编写代码的功能(用ffmpeg命令行可以但不知道怎么调用ffmpeg api时可以参考ffmpeg.c的逻辑)有极大的帮助,比如要裁剪视频的长度

FFmpeg+QT QMplay2播放器

01.QMplay2开源播放器讲解

02.QMplay2框架分析

03.播放器模块划分

04.解复用模块

05.音视频解码

06.播放器控制

07.音视频同步

08.CUVID/D3D11VA硬解

09.音量频谱展示

10.音频均衡器

11.画面旋转、翻转

12.画面亮度、饱和度调节

13.画面4:3 16:9切换

14.码流信息分析

OBS推流录制源码分析

01.OBS vs2019+QT5.15.2编译

02.音视频配置和初始化分析

03.音视频线程模块采集和编码分析

04.视频配置和初始化分析

05.视频线程模块采集和编码分析

06.OBS初始化过程分析

07.录制流程分析

08.麦克风采集分析

09.桌面采集分析

10.X264编码分析

11.系统声音+麦克风混音

12.推流模块分析

你可能感兴趣的:(C++音视频开发-★★★,java,jvm,开发语言)