课程介绍

适合人群:

有一定C或者C++基础,想要提高实战能力 想要学习ffmpeg和qt的同学,想要学习直播技术

你将会学到:

本课程讲解的是基于流行的直播技术 FFMpeg3.3音视频处理框架,和应用广泛的c++跨平台

课程简介:

本课程讲解的是基于直播技术 FFMpeg3.3音视频处理框架,和应用广泛的c++跨平台的QT5库(主要用作界面)。开发的一个完整的屏幕录像机项目,包含桌面录制(基于 QT(跨平台),directx(高效)),(基于QT5)话筒录制,音视频h264编码,MP4封装。QT圆角边框界面。

开发工具基于vs2013,但同样适用于vs更高版本。

课程目录

第1章 课程介绍和基础知识(23分钟4节)

1-1 课程介绍
1-2 封装和编码格式介绍mpeg4标准介绍
1-3 FFMpeg库下载和vs项目创建
1-4 课后练习[练习]

第2章 视频传封装代码演示讲解(MP4 to MOV)(59分钟6节)

2-1 创建mp4转mov的项目并调用SDK打开mp4文件
2-2 创建mov封装格式的上下文创建并配置音频和视频流信息
2-3 写入mov视频文件格式头信息
2-4 完成成了视频音频帧数据写入并根据timebase计算pts
2-5 重封装用到的SDK接口和结构体通过流程图总结
2-6 课后练习[练习]

第3章 视频编码(RGB TO MP4)(1小时22分钟7节)

3-1 详解RGB和YUV
3-2 创建视频编码项目设置并打开视频编码器
3-3 完成视频编码的封装上下文创建和视频流信息添加
3-4 视频像素格式转换rgb转为yuv
3-5 视频封装头和尾写入视频帧编码
3-6 完成视频写入清理,解决AVPacket空间泄露
3-7 课后练习[练习]

第4章 音频编码(PCM to aac)(50分钟7节)

4-1 音频参数详解
4-2 创建和配置音频编码器
4-3 创建音频封装的输出上下文写入音频文件头
4-4 创建和配置音频重采样上下文
4-5 创建音频输出AVFrame完成音频重采样
4-6 完成音频的编码和封装入aac文件
4-7 课后练习[练习]

第5章 音视频编码类设计 (2小时56分钟 15节)

5-1 音视频编码类封装介绍和使用ffmpeg工具抽取rgb
5-2 创建XVideoWriter接口类完成工厂模式对象创
5-3 完成ffmpeg初始化、输出上下文初始化和关闭清理接
5-4 新增视频流接口添加,设置视频编码参数并打开
5-5 设置rgb转yuv转换上下文参数设置,创建yuv输出
5-6 读取文件中rgb数据转换为yuv
5-7 完成h264视频帧编码和相关资源清理
5-8 打开视频输出IO写入mp4视频文件头
5-9 写入视频帧和视频索引并修正视频帧的pts
5-10 音频编码器参数设置并打开
5-11 音频重采样上下文参数设置和初始化
5-12 读取音频文件中pcm进行重采样并清理和关闭音频相关资
5-13 音频编码和MP4文件写入
5-14 音频pts计算并完成音视频写入同步计算
5-15 课后练习[练习]

第6章 录制屏幕 (1小时15分钟 7节)

6-1 directx截屏接口讲解
6-2 完成directx3d对象创建和显卡device对象
6-3 创建离屏表面并截取屏幕编码为mp4视频
6-4 QT5开发环境准备QtScreen项目创建
6-5 完成qt屏幕截图并在QWidget中显示
6-6 使用qt显示directx截屏并比较两种截屏时间消耗
6-7 课后练习[练习]

第7章 使用qt录制音频 (18分钟 3节)

7-1 QT音频录制类方法讲解
7-2 使用qt完成音频录入并将录入音频转为aac
7-3 课后练习[练习]

第8章 实战屏幕录像机 (2小时44分钟 14节)

8-1 屏幕录像机项目简介和用到的qt技术说明创建vs201
8-2 设置圆角无锯齿窗口并添加关闭和最小化按钮和操作
8-3 完成按钮的三种样式图片设置,使用qss完成界面设计
8-4 完成录制和停止录制按钮事件响应和录制时间响应
8-5 项目类图类设计
8-6 XCaptureThred类启动关闭和线程入口函数编
8-7 XCaptureThread截屏线程和队列rgb数据
8-8 XAudioThread音频录制类编码完成.
8-9 XScreenRecord屏幕录制控制类完成开发和测
8-10 完成XScreenRecord音视频的录制接口和测试
8-11 完成了屏幕录像机qt界面与XSCreenRecord
8-12 视频录制程序发布dll库准备
8-13 课后练习[练习]
8-14 课后练习[练习]