为什么这门课值得你认真考虑
音视频开发在招聘市场上长期处于“稀缺”状态,核心原因在于技术栈深、原理多,且官方文档更新频繁。课程选择基于 FFmpeg 5.0 这个版本,主要考虑到该版本对硬件加速解码、现代编码器接口以及新封装格式的支持更加完善,是目前构建生产级播放器时的主流选择之一。如果你的目标是摆脱脚本化调用的依赖,真正理解音视频从文件读取到屏幕渲染的完整链路,那么建立一套基于 FFmpeg API 的开发思维是必经之路。
这门课解决的核心痛点不是“如何安装 FFmpeg”,而是“如何在项目中从零搭建播放器”。很多初学者卡在原理懂但代码写不出来,或者遇到画面不同步、花屏等 bug 无从下手。课程通过一套完整的音视频业务实现,覆盖了容器解析、码流解码、音视频同步策略以及最终的渲染输出,旨在帮你打通从底层 API 调用到上层功能集成的全链条。
适合什么基础,建议先看哪些模块
课程定位明确指向“从小白到高手”的进阶路径,因此不要求你预先精通 C 语言或图形学,但需要具备基础的编程能力,最好对指针、内存管理有一定概念,因为 FFmpeg 的 C 接口涉及大量结构体操作。同时,具备 Linux/Unix 环境下的编译构建经验会大幅降低上手阻力,毕竟开发环境配置往往是第一道门槛。
资料配合练习时,建议优先关注两个核心块:一是“音视频渲染”部分,这是理解数据如何从解码器流向屏幕的关键;二是“音视频同步”部分,这是播放器稳定运行的基石。不要一开始就纠结特效实现,先保证能流畅播放一个带声音的视频。对于资料包中提供的源码案例,先跑通播放流程,再逐步替换解码器和渲染后端,这样能更清晰地看到每个环节的作用。
学完能独立做什么,如何使用资料
完成课程主体内容后,你应该能够独立开发一个具备基本功能的桌面端音视频播放器。具体能力包括:能够解析常见的 MP4、MKV、TS 等容器格式;能够调用 FFmpeg 解码 H.264、H.265、AAC 等主流编码;能够处理音频和视频的时间轴同步问题,避免声画不同步;能够使用 OpenGL 或 SDL 进行软解渲染。此外,你还将掌握音视频特效的基础开发方法,如画中画、滤镜叠加等高级功能的集成思路。
资料包是你实践的主要载体。建议将资料中的示例代码作为基准,在自己的开发环境中重新构建,而不是直接复制粘贴。遇到编译错误时,对照课程讲解的定位方法排查依赖链接和头文件路径。对于想要深入的同学,可以利用资料中的模块尝试扩展功能,比如增加字幕显示或网络流播放,从而将课程知识转化为实际的工程能力。
课程目录
ffmpeg5.0.png (65. 83 KB, ) 2022-11-27 16: 37 上传 课程介绍: FFmpeg是音视频领域的一顶王冠,可以说是每个音视频从业者同学都必须熟练掌握的技术。本课程通过一套完整音视频业务的实现,掌握播放器、音视频渲染、音视频同步、音视频特效等高级功能的开发,帮助大家快速、正确的掌握FFmpeg 5.0,从音视频小白进阶为行业高手! 课程目录: 第1章 学习指南【课程提供200+问题与答案库】 7 节 | 35分钟 【你遇到的坑,别人已经出坑了,课程提供200+问题与答案库】【老师是位答题狂,问答区的问题有问必答】全民娱乐时代,需要音视频等多媒体产品层出不穷,但会处理音视频数据的工程师却极度匮乏,进入音视频开发领域正当时,这门课程就是为这样的你而生。来吧!加入我们,成就更好的自己。... 1-1 课前必读(不看会错过一个亿) 1-2 FFmpeg5.0-课程导学 (11:09) 1-3 音视频的应用范围与播放器架构讲解(选看) (05:26) 1-4 什么是FFmpeg?它能做什么?(选看) (04:59) 1-5 FFmpeg下载,编译与安装 (12:53) 1-6 Windows下安装 FFmpeg 1-7 FFmpeg命令大全文档 第2章 FFmpeg常用命令实战 10 节 | 100分钟 本章讲解如何使用FFmpeg命令进行音视频处理,包括FFmpeg常用命令分类, 音视频处理流程,多媒体基本信息查询命令,录制命令,分解与复用命令,处理原始数据命令,滤镜命令,裁剪与合并命令 ,图片与视频互转命令,直播相关命令等 ... 2-1 FFmpeg常用命令分类讲解 (06:24) 2-2 FFmpeg音视频处理流程讲解 (07:06) 2-3 FFmpeg基本信息查询命令实战 (08:22) 2-4 FFmpeg录制命令实战 (11:07) 2-5 FFmpeg分解与复用命令实战 (11:21) 2-6 FFmpeg 处理原始数据命令实战 (13:31) 2-7 FFmpeg滤镜命令实战 (09:53) 2-8 FFmpeg音视频的裁剪与合并命令实战 (13:53) 2-9 FFmpeg图片与视频互转实战 (09:42) 2- 10 FFmpeg直播相关的命令实战 (08:09) 第3章 FFmpeg开发必备C语言回顾-vim讲解 4 节 | 36分钟 工欲善其事必先利其器,在回顾FFmpeg开发必备C语言基础之前,先为大家讲解下vim的基本使用。 3-1 FFmpeg基础开发概述 (04:00) 3-2 vim模式及创建文件 (07:21) 3-3 vim的基本操作与光标移动 (10:27) 3-4 vim查找替换与多窗口 (13:38) 第4章 FFmpeg开发必备C语言回顾 12 节 | 151分钟 本章带大家回顾FFmpeg开发必备C语言基础,包括C语言中的常量与变量,C语言结构体,C语言中的判断语句, C语言中的循环语句,C语言再论指针,C语言中的函数 ,C语言对文件的操作,编译的基本原理,调试器等。 4-1 C语言Helloworld (14:50) 4-2 C语言中的常量与变量 (10:59) 4-3 C语言中的指针-1 (09:12) 4-4 C语言中的指针-2 (13:54) 4-5 C语言结构体 (13:35) 4-6 C语言中的if_else (08:10) 4-7 C语言中的for_while (10:51) 4-8 C语言中的函数 (08:29) 4-9 C语言中的文件操作 (09:51) 4- 10 再论C语言指针 (18:22) 4- 11 C语言编译器 (19:15) 4- 12 C语言调试器 (13:11) 第5章 FFmpeg多媒体文件处理 20 节 | 227分钟 本章为大家讲解FFmpeg多媒体文件处理,包括Log系统,删除文件与重命名,操作目录及list命令实现,处理流数据的基本原理,打印多媒体Meta信息 实战-使用FFmpeg从多媒体文件中抽取音频数据 , 实战-多媒体类型转换(mp4->flv),实战-裁剪音视频,最后为大家留一个作业:讨论-如何实现一个小咖秀核心逻辑。 ... 5-1 FFmpeg初级开发介绍 (06:34) 5-2 FFmpeg开发入门Log系统 (10:11) 5-3 FFmpeg日志系统 (16:43) 5-4 FFmpeg文件的删除与重命名 (13:25) 5-5 FFmpeg操作目录及list的实现(一) (14:22) 5-6 FFmpeg操作目录及list的实现(二) (07:21) 5-7 FFmpeg处理流数据的基本概念 (08:56) 5-8 搭建FFmpeg5.0开发环境 (17:13) 5-9 配置VSCode调试环境 (09:56) 5- 10 抽取音频数据(一) (11:59) 5- 11 抽取音频数据(二) (16:21) 5- 12 抽取音频数据(三) (13:41) 5- 13 调试extra_audio程序 (13:38) 5- 14 抽取视频数据 (11:36) 5- 15 多媒体格式转封装(一) (16:28) 5- 16 多媒体格式转封装(二) (08:47) 5- 17 多媒体格式转封装(三) (01:42) 5- 18 视频裁剪(一) (10:26) 5- 19 视频裁剪(二) (11:27) 5- 20 作业:ffmpeg实现小咖秀 (05:25) 第6章 FFmpeg编解码实战 14 节 | 145分钟 本章带大家进行FFmpeg编解码实战,包括实战-视频编码, 实战-视频转图片,实战-音频编码,实战-音频解码。 6-1 FFmpeg中级开发介绍 (09:24) 6-2 视频编码(一) (09:22) 6-3 视频编码(二) (07:40) 6-4 视频编码(三) (10:45) 6-5 视频编码(四) (16:44) 6-6 调试encode_video (06:38) 6-7 音频编码(一) (17:30) 6-8 音频编码(二) (15:00) 6-9 生成图片(一) (13:00) 6- 10 生成图片(二) (10:25) 6- 11 生成带色彩的BMP图片(一) (14:04) 6- 12 生成带色彩的BMP图片(二) (13:41) 作业: 6- 13 为什么编码后的视频少了几帧数据? 作业: 6- 14 视频抽取图片 第7章 FFmpeg SDL音视频渲染实战 12 节 | 145分钟 本章带大家学习FFmpeg SDL音视频渲染实战,包括 SDL编译与安装,使用SDL的基本步骤,SDL窗口渲染,SDL事件处理,SDL彻底理解纹理渲染,实战-实现YUV播放器,SDL音步处理流程,实战-实现PCM播放器。 7-1 SDL编译与安装 (14:38) 7-2 使用SDL的基本步骤 (13:14) 7-3 SDL窗口渲染 (11:45) 7-4 SDL处理事件 (15:57) 7-5 SDL彻底理解纹理渲染-1 (13:14) 7-6 SDL彻底理解纹理渲染-2 (13:55) 7-7 实现YUV播放器 (18:19) 7-8 SDL音频处理 (08:40) 7-9 实现PCM播放器-1 (12:45) 7-10 实现PCM播放器-2 (11:51) 7-11 实现PCM播放器-3 (10:15) 作业: 7- 12 为什么创建SDL窗口时不显示? 第8章 FFmpeg播放器核心功能开发 22 节 | 275分钟 本章带大家进行播放器核心功能开发,包括实现一个最简单的多媒体播放器,多线程与锁, 锁与条件变量在实际中的应用,音视频同步,seek等 8-1 最简单的视频播放器(一) (08:57) 8-2 最简单的视频播放器(二) (13:23) 8-3 最简单的视频播放器(三) (13:15) 8-4 最简单的视频播放器(四) (13:44) 8-5 最简单的视频播放器(五) (03:27) 8-6 解复用音视频数据 (15:14) 8-7 为音频设备设置参数 (06:41) 8-8 AVPacket队列实现(一) (12:03) 8-9 AVPacket队列实现(二) (15:25) 8- 10 获取音频并解码(一) (14:58) 8- 11 获取音频并解码(二) (13:10) 8- 12 获取音频并解码(三) (11:44) 8-13 调试SimplePlayer2.0 (09:35) 8- 14 你必须清楚的多线程与锁 (12:44) 8- 15 锁与条件变量的实际应用 (10:25) 8- 16 播放器内核线程模型讲解 (08:50) 8- 17 播放器核心结构体讲解 (11:08) 8- 18 播放器线程退出机制讲解 (09:16) 8- 19 音视频同步的基本概念及原理讲解 (21:16) 8- 20 一个真正的播放器(一) (15:53) 8- 21 一个真正的播放器(二) (18:57) 8- 22 一个真正的播放器(三) (13:58) 第9章 如何在Android下使用FFmpeg 10 节 | 126分钟 本章将教大家在Android下使用FFmpeg ,包括编译可以Android系统运行的FFmpeg,学习NDK,java调用C函数, C函数调用java,在Android系统下使用FFmpeg等,为Android工程师提升核心竞争力。 9-1 第一个JNI程序 (15:24) 9-2 Java调用C接口-1 (14:18) 9-3 Java调用C方法-2 (18:45) 9-4 JNI中的Signature (08:38) 9-5 C调Java的方法 (13:10) 9-6 编译android下可以使用的ffmpeg「通过生成工具链方式」 (18:39) 9-7 编译Android下可使用的 ffmpeg「不生成工具链方式」 (19:14) 9-8 实战-Android下的播放器 (17:46) 作业: 9-9 Linux系统为什么无法编译出ffplay? 作业: 9- 10 错误分析 第10章 如何在IOS下使用FFmpeg 2 节 | 29分钟 本章将教大家在IOS下使用FFmpeg ,让IOS工程师也可以玩转FFmpeg音视频技术,提升自己的核心竞争力。 10-1 编译iOS下可使用的FFmpeg (14:51) 10-2 iOS中使用FFmpeg (13:15) 第11章 滤镜Filter的核心原理及实现 18 节 | 278分钟 本章带大家剖析Filter核心原理及Filter初始化原理,掌握Filter的使用与实现,了解实现Filter的几个重要的结构体。 11-1 filter的核心原理 (12:36) 11-2 通过命令行使用filter (24:23) 11-3 在项目中引入avfilter库 (10:38) 11-4 使用filter的具体步骤-1 (16:28) 11-5 使用filter的具体步骤-2 (11:01) 11-6 初始化filter的原理 (07:35) 11-7 初始化filter实战-1 (18:58) 11-8 初始化filter实战-2 (21:36) 11-9 优化init_filter函数 (15:52) 11- 10 如何使用filter-读取数据 (09:44) 11- 11 如何使用filter-获取原始数据 (10:57) 11- 12 如何使用filter-滤镜处理 (15:39) 11- 13 如何使用filter-输出数据 (14:44) 11- 14 如何使用filter-代码优化 (23:16) 11- 15 如何实现自己的filter (18:27) 11- 16 实现filter需要知道的几个重要结构体 (19:18) 11-17 drawboxfilter的实现分析-1 (14:17) 11-18 drawboxfilter的实现分析-2 (12:00) 第12章 课程总结 2 节 | 23分钟 本章带大家回顾课程知识重点,最后祝小伙伴们都能获取高薪offer。我在课程问答区等着与大家进一步交流。有问题欢迎大家到课程问答区提问。 12-1 课程总结 (13:05) 12-2 音视频进阶学习建议与行业痛点分析 (09:47)






