解决什么问题:直播推拉流底层的黑盒穿透

很多做音视频开发的人,调用 FFmpeg 命令行或高级 API 时很顺,但遇到直播场景的卡顿、花屏、音画不同步就抓瞎。这门课聚焦的不是工具怎么用,而是把工具拆开看。它解决的核心问题是:当你在做推流或拉流时,底层到底经历了哪些数据结构转换、时间基如何对齐、滤镜图怎么串联。课程通过剖析转码器源码和直播架构,帮你建立从协议层到封装层的完整认知,而不是停留在调用第三方库的层面。

适合什么基础:需要懂 C 和基本音视频概念

资料包里涉及 msys2 编译、VS 调试、Qt 环境搭建,说明它默认你已经能写 C 代码、装过开发工具链。如果你连 AVFormatContext 是什么都不知道,直接看源码剖析会非常吃力。建议先确认自己写过简单的解封装或转码程序,再碰这部分内容。课程从编译 FFmpeg 源码开始,逐步过渡到时间基、滤镜语法、转码器源码逐行拆解,难度是实打实的源码级,不是 API 速查手册。

怎么用这份资料:先跑通编译,再对照源码改参数

拿到资料后,不要一上来就钻 ffmpeg.c 的源码细节。第一步,跟着编译模块把 FFmpeg 和 libx264 在 Windows 下编通,这一步踩坑最多,但能让你对编译选项有体感。第二步,搭好 VS 或 Qt 的调试环境,把断点打在转码流程上,观察数据包是怎么从解复用走到编码器的。第三步,重点看时间基转换和滤镜应用这两块,直播场景的很多坑都在这里。学完后,你应该能独立定位直播流处理中的同步问题,能读懂 FFmpeg 命令行背后的完整逻辑,甚至能基于源码二次开发定制化的推流工具。


学习FFmpeg的源码、架构、重要API、数据结构、直播案例应用,以及源码剖析

课程目录

*   01 编译FFmpeg源码/

  *   01 FFmpeg源码剖析课程概览与演示

  *   02 课程简介与开场白

  *   03 msys2编译工具简介

  *   04 msys2+msvc编译libx264

  *   05 msys2+msvc编译ffmpeg

  *   06 msys2+mingw编译ffmpeg+libx264

  *   07 ffmpeg配置选项的灵活应用

  *   08 VS2015编译调试FFmpeg-SMP

*   02 配置FFmpeg开发环境/

  *   01 搭建Qt的FFmpeg开发环境

  *   02 搭建VS的FFmpeg开发环境

  *   03 FFmpeg的时间基与时间刻度

*   03 FFmpeg转码器应用及ffmpeg.c源码剖析/

  *   01 FFmpeg转码器及命令行

  *   02 FFmpeg滤镜应用及语法详解

  *   03 FFmpeg.c源码介绍

  *   04 FFmpeg.c的main函数介绍

  *   05 FFmpeg.c的ffmpeg_parse_options函

  *   06 FFmpeg.c的transcode函数流程解析

  *   07 FFmpeg.c的transcode_step函数图解

  *   08 transcode_step函数的输入流的处理

  *   09 transcode_step函数的过滤器及输出流的处理

  *   10 清理收尾工作及main()函数小结

*   04 把控FFmpeg骨架:“八大金刚”核心开发库/

  *   01 FFmpeg八大金刚核心开发库简介

*   05 夯实FFmpeg基础:重要数据结构及API/

  *   01 FFmpeg核心解码框架及流程简介

  *   02 FFmpeg核心解码相关的10个数据结构

  *   03 FFmpeg协议层的3个数据结构

  *   04 FFmpeg封装层的4个数据结构

  *   05 FFmpeg编解码层的3个数据结构

  *   06 FFmpeg相关的重要API简介

*   06 精通FFmpeg框架流程及责任链设计模式/

  *   01 FFmpeg编解码框架及责任链设计模式

*   07 AVUtil通用工具层案例实战及源码剖析/

  *   01 AVLog日志案例应用及自定义回调函数

  *   02 AVLog底层源码分析

  *   03 AVDictionary字典案例应用及源码剖析

  *   04 AVUtil其它函数及源码剖析

*   08 AVProtocol协议层理论及案例实战/

  *   01 AVIO打开视频文件案例应用

  *   02 AVFormatContext及AVInputFormat结

  *   03 av_dump_format()函数源码分析

  *   04 avformat_open_input()函数源码分析

  *   05 AVIOContext自定义回调函数案例应用

*   09 AVFormat封装层案例实战及源码剖析/

  *   01 FFmpeg解封装案例应用

  *   02 AVPacket及相关API的源码解析

  *   03 av_read_frame()函数的源码解析

*   10 AVCodec编解码层案例实战及源码剖析/

  *   01 FFmpeg解码流程及案例应用

  *   02 FFmpeg解码相关的几个结构体源码剖析

  *   03 avcodec_open2函数源码剖析

  *   04 avcodec_send_packet函数源码剖析

  *   05 FFmpeg解码音频案例简介

  *   06 avcodec_send_frame及三个封装函数源码剖析

*   11 AVFilter过滤器层案例实战及源码剖析/

  *   01 AVFilter过滤器流程及API简介

  *   02 AVFilter的API方式添加图片水印

  *   03 AVFilter的数据结构及API源码分析

  *   04 AVFilter封装为C++类

  *   05 AVFrame的两种内存分配模式及源码剖析

*   12 SWResample音频重采样案例实战及源码剖析/

  *   01 SWResample音频重采样的数据结构及API讲解

  *   02 SWResample音频重采样案例及API源码分析

  *   03 av_samples_alloc_array_and_sam

  *   04 swr_convert源码解析

*   13 SWScale颜色空间转换案例实战及源码剖析/

  *   01 SWScale颜色格式转换简介及案例应用

  *   02 SWScale数据结构及API源码解析

*   14 AVDevice设备读写案例实战及源码剖析/

  *   01 DShow方式读取摄像头案例实战

  *   02 av_find_input_format函数源码解析

  *   03 avdevice_register_all函数源码解析

  *   04 dshow.c函数源码解析

*   15 FFmpeg直播案例实战及源码剖析/

  *   01 FFmpeg摄像头直播案例实战

  *   02 H.264编码器的C++类封装

  *   03 AVFilter为直播添加图片水印

  *   04 RTMP直播推流的API详解

  *   05 FFmpeg直播推流的源码解析