如果你的简历上写着「熟悉 FFmpeg」,但被问到 AVFrame 和 AVPacket 的区别、PTS 怎么算、为什么推流会花屏时答不上来,这门课就是冲这些缺口来的。它不讲 C++ 语法基础,也不讲直播行业概况,而是直接扎进一条完整的链路:采集 → 处理 → 编码 → 推流,中间还塞进了美颜这一层。
先看清楚:它默认你已经会什么
课程从直播服务器讲起,要在 Ubuntu 上把 crtmpserver 编译跑起来。这一步本身就是筛子——你得会用 Linux 命令行,看得懂编译报错,知道 RTMP 地址里 app 和 stream 各指什么。如果你连 Socket 阻塞和非阻塞的区别都要现查,前面几节会过得很吃力。
C++ 部分同样是默认项。课程里会出现回调、指针传参、类的封装这些写法,不会停下来解释「引用和指针有什么不同」。它的假设是:你有 C++ 底子,缺的只是把它用到音视频这条具体链路上。
真正要补的三个缺口
- 音频链路。用 QT 的音频接口把麦克风数据录进来,再决定喂给编码器之前要不要重采样、怎么处理采样格式差异。很多人视频推得动、音频却爆音或对不上口型,问题就出在这一段。
- 编码与封装。加入视频编码器、把裸数据变成压缩流,然后交给推流模块。这里要弄清楚时间戳是怎么一步步传下去的,一个 pts 算错,播放端就会卡顿或音画不同步。
- 美颜这一层。在直播框架里接入磨皮处理,本质是在原始帧进编码器之前插进一次像素级运算。你要面对的是:滤镜放在哪个环节、处理一帧要多久、帧率掉下来怎么办。
练习和验证方式
每讲基本围绕「写一段代码 → 跑起来 → 看结果」展开,所以光看视频没用。建议每节都动手敲一遍,尤其是服务器搭建那一部分:自己把推流地址跑通一次,比看十遍讲解管用。
验证手段也很直接——用播放器拉流看画面。画面出不来、黑屏、花屏、延迟越来越大,这些都是必须自己排查的现场。课程能给你正确的写法,但排错经验只能自己攒。
看完应该能回答这些问题
- 一帧图像从采集设备到推流服务器,中间经过了哪些结构体的转换?
- 时间戳在哪一步生成、哪一步被使用,为什么它决定了播放是否流畅?
- 美颜处理为什么放在编码前而不是编码后?它的开销体现在哪里?
- 直播推流跑通的最小依赖是什么,哪些环节出问题会导致推流建立不起来?
- 音频和视频各自独立编码,最后靠什么保证同步?
如果你能把上面这些问题用自己的话讲清楚,说明这条链路你是真的走通了,而不只是跟着视频敲了一遍代码。
C++ 编程FFMpegSDK美颜直播推流实战
直播美颜推流技术实战
编辑点评
深度解析美颜直播技术,结合FFmpegSDK,实战项目开发,适合对移动直播开发有深入了解的学习者。
⭐ 编辑推荐
本课程深入讲解C++编程结合FFmpegSDK实现美颜直播推流,涵盖音频录制、视频编码、直播推流等实战技巧。
通过系统学习,你将掌握直播美颜技术核心,并能独立开发相关功能。
课程亮点
课程目录
6-03、QT音频录制接口讲解并编写录制音频程序_ev.mp4 [24.8 MB] 8-04、直播框架添加美颜磨皮_ev_ev.mp4 [21.3 MB] 7-06、加入视频编码器和流_ev_ev.mp4 [27.7 MB] 2-01、直播服务器介绍crtmpserver编译运行(ubuntu)_ev.mp4 [31.1 MB] 7-07、完成音视频推流封装处理未同步_ev_ev.mp4 [39.4 MB] 5-14、完成了视频编码接口并重构rtsp_to_rtmp代码_ev.mp4 [28.5 MB] 8-09、QT直播推流项目完成界面设计_ev_ev.mp4 [33.9 MB] 6-02、音频基础知识音频参数分析_ev.mp4 [25.2 MB] 5-10、XMediaEndcode工厂生产方法创建_ev.mp4 [21.0 MB] 8-07、完成XController中的编码封装推流模块初始化_ev_ev.mp4 [47.5 MB] 6-12、完成音频推流接口XRtmp封装重构音频推流_ev_ev.mp4 [34.6 MB] 7-11、音视频同步三完成同步_ev_ev.mp4 [18.6 MB] 2-04、nginx-rtmp直播和直播状态监听配置ffplay播放_ev.mp4 [25.7 MB] 2-02、下载ffmpeg工具推流并使用功能vlc拉流播放测试_ev.mp4 [20.8 MB] 5-06、编码器参数配置(包括打开多线程编码)并打开编码器_ev.mp4 [36.5 MB] 5-07、视频帧编码并根据设置AVFrame的输入pts_ev.mp4 [28.5 MB] 2-03、nginx-rtmp源码下载、编译运行(ubuntu)_ev.mp4 [25.3 MB] 5-09、打开推流IO,发送封装头,计算pts完成帧推流_ev.mp4 [34.6 MB] 6-04、音频重采样上下文创建和配置_ev.mp4 [27.0 MB] 5-03、像素格式转换(RGBToYUV)上下文创建配置和清理_ev.mp4 [41.5 MB] 7-09、音视频同步时间计算代码分析第一部分_ev_ev.mp4 [68.9 MB] 5-08、创建封装器添加视频AVStream并设置参数_ev.mp4 [28.8 MB] 5-15、创建XRtmp接口类完成封装器接口_ev.mp4 [59.4 MB] 6-11、完成音频编码接口封装和代码重构_ev_ev.mp4 [22.3 MB] 6-09、音频重采样XMediaEncode重采样接口封装代码重构_ev.mp4 [51.0 MB] 8-10、完成了qt项目直播推流_ev_ev.mp4 [44.4 MB] 1-01、课程介绍_ev_ev.mp4 [20.0 MB] 4-05、读取一帧视频接口讲解和源码分析,分析读取解码和颜色转换过程_ev.mp4 [17.7 MB] 3-06、根据pts和系统记时控制推流速度_浏览器flash播放直播流_ev.mp4 [39.8 MB] 8-05、XRtmpStreamer项目框架架构(类图)讲解_ev_ev.mp4 [12.1 MB] 3-05、AVPacket的pts运算并完成帧推送使用vlc测试_ev.mp4 [29.5 MB] 3-04、打开rtmp推流输出并从文件读取音视频帧_ev.mp4 [41.9 MB] 4-02、windows 上创建opencv示例项目_ev.mp4 [21.0 MB] 8-06、完成了XController音视频录制模块初始化_ev_ev.mp4 [37.0 MB] 4-04、VideoCapture打开摄像头接口讲解和源码分析_ev.mp4 [12.8 MB] 6-10、封装音频编码器设置接口重构视频编码器接口_ev.mp4 [25.0 MB] 3-07、推流基于rtsp协议的大华海康相机_ev.mp4 [61.6 MB] 5-01、opencv播放rtsp海康摄像头和播放系统摄像头_ev.mp4 [30.4 MB] 7-08、音频推流同步策略分析_ev_ev.mp4 [17.1 MB] 6-07、音频的pts运算音频数据编码测试_ev_ev.mp4 [17.5 MB] 8-08、XController推流数据线程完成_ev_ev.mp4 [48.6 MB] 7-01、封装音频XAudioRecord初始化和关闭接口_ev_ev.mp4 [29.1 MB] 7-05、XAudioRecord集成数据基类重构_ev_ev.mp4 [25.1 MB] 3-01、ffmpegSDK开发环境准备,第一个ffmpeg项目创建_ev.mp4 [41.2 MB] 7-02、完成音频录制接口,录制缓冲队列处理_ev_ev.mp4 [50.4 MB] 7-03、封装视频录制接口完成初始化和关闭接口_ev_ev.mp4 [29.8 MB] 8-03、直播框架添加图像过滤XFilter接口并实现双边滤波磨皮类_ev_ev.mp4 [39.9 MB] 5-02、基于opencv采集rtsp流并使用异常处理失败流程_ev.mp4 [35.2 MB] 6-06、音频编码器创建和参数设置_ev_ev.mp4 [23.3 MB] 3-03、完成输出音视频流配置信息,使用ffmpeg新版本属性_ev.mp4 [45.6 MB] 1-03、直播rtmp协议分析_ev.mp4 [17.1 MB] 5-13、完成视频编码器初始化InitVideoCodec接口封装_ev.mp4 [23.1 MB] 5-04、rgb转yuv空间分配和转换函数调用_ev.mp4 [47.5 MB] 6-01、QT5开发环境准备_ev.mp4 [25.0 MB] 4-03、遍历修改连续的Mat图像空间_ev.mp4 [19.2 MB] 5-05、查找编码器并创建编码器上下文_ev.mp4 [24.4 MB] 5-11、完成InitScale初始化像素格式转换接口_ev.mp4 [20.3 MB] 7-10、音视频同步二解决音频有相同pts情况_ev_ev.mp4 [24.5 MB] 6-08、完成音频推流并测试_ev.mp4 [31.4 MB] 6-05、音频重采样空间分配并完成重采样_ev_ev.mp4 [25.5 MB] 3-02、初始化封装和网络库打开音视频流并打印调试信息_ev.mp4 [41.6 MB] 1-02、直播推流流程分析讲解_ev_ev.mp4 [11.2 MB] 8-01、磨皮双边滤波算法参数说明_ev_ev.mp4 [18.1 MB] 7-04、XDataThread数据处理线程类创建并实现_ev_ev.mp4 [29.9 MB] 4-01、opencv源码在windows下载编译安装_ev.mp4 [14.4 MB] 5-12、完成RGBToYUV接口封装并重构代码_ev.mp4 [30.4 MB] 8-02、双边滤波磨皮算法调用并测试性能_ev_ev.mp4 [32.3 MB]
适合人群
- 移动开发工程师
- 直播平台开发者
- 对直播美颜技术感兴趣的学习者
学习收获
祝您学习愉快!
学有所成,前程似锦!






