课程介绍

适合人群:

有一定C或者C++基础,想要提高自己是实战能力学员 或者想要学习ffmpeg和qt的同学

你将会学到:

基于当前流行FFMpeg视频处理框架和流行的QT跨平台库。开发的一个完整的视频播放器,不是基于视频播放控件开发,而是从底层全部实现

课程目录

第1章 XPlay2.0版本- 音视频基础知识(1小时8分钟5节)

1-1 音视频基础知识mpeg4封装格式音视频编码格式讲解
1-2 音视频解封装和解码原理分析
1-3 图形像素格式RGB和YUV格式分析
1-4 PCM音频采样率_通道_planar等格式参数分析
1-5 MP4标准和h264格式的NAL的GOP分析

第2章 XPlay2-Qt5开发环境准备Windows和Linux(1小时12分钟7节)

2-1 QT开发环境下载和安装
2-2 QtSDK路径目录文件说明
2-3 创建第一个qtcreator项目_并确定文件和目录的作用
2-4 在linux中安装qt及其依赖并编写测试项目
2-5 windows下qtcreator调试环境安装配置使用
2-6 vs创建QT项目并详细介绍vs项目设置
2-7 VS设置qt库版本导出为qtcreator项目

第3章 XPlay2.0 – FFmpeg编译和开发环境准备(59分钟5节)

3-1 windows下ffmpeg库下载安装方法和库文件说明
3-2 VS2015配置开发显示ffmpeg配置信息测试项目
3-3 VS2015配置32位和64位通用的ffmpeg测试程序
3-4 QtCreator配置32位和64位windows通用
3-5 项目移植到ubuntu中并配置跨平台的pro文件

第4章 XPlay2.0-FFmpeg解封装(2小时28分钟14节)

4-1 ffmpeg SDK软硬解码流程说明
4-2 ffmpeg音视频解封装用到的函数和结构体详解
4-3 avformat_open_input函数详解
4-4 初始化解封装使用avformat_open_inpu
4-5 AVFormatContext结构分析
4-6 avformat_close_input清理封装上下
4-7 avformat_find_stream_info探
4-8 AVStream和AVCodecParameters
4-9 通过遍历获取AVStream音频流信息并打印参数
4-10 通过遍历和av_find_best_stream方法
4-11 av_read_frame读取帧数据函数分析和产生的
4-12 AVPacket结构解析空间申请-初始化-复制-引用
4-13 av_seek_frame改变播放进度函数详解
4-14 av_read_frame和av_seek_fram

第5章 XPlay2.0 -FFmepg解码和像素格式、音频采样转换 (1小时42分钟 10节)

5-1 AVCodecContext解码上下文初始化讲解
5-2 音视频解码上下文创建配置和打开avcodec_ope
5-3 AVFrame格式解析和空间处理函数
5-4 avcodec_send_packet解码函数
5-5 avcodec_receive_frame完成音视频
5-6 sws_getContext和sws_scale像素
5-7 sws_getContext像素格式上下文初始化代码
5-8 sws_scale像素格式转换代码演示
5-9 音频重采样SwrContext格式和swr_conv
5-10 swr_init音频重采样上下文初始化和swr_co

第6章 XPlay2 Qt音频及OpenGLShader显示YUV (2小时12分钟 10节)

6-1 Qt音频播放接口QAudioOutput详解
6-2 Qt播放音频代码演示(源码)
6-3 Qt的opengl编程分析及QOpenGLWidge
6-4 顶点和片元作色器原理讲解和yuv转rgb的glsl代
6-5 创建和显示材质glTexImage2D
6-6 建QtOpengl项目窗口控件重载QOpenGLWi
6-7 shader代码并用QGLShaderProgram
6-8 写入顶点和材质坐标glVertexAttribPoi
6-9 完成材质的初始化和显存和内存空间分配glTexIma
6-10 完成对yuv文件使用OpenGLShader播放(源

第7章 XPlay2.0 播放器项目实战开发一 (2小时17分钟 10节)

7-1 面向对象的五大原则
7-2 XPlay2.0项目类图分析
7-3 XDemu类Open接口开发并测试打开本地文件
7-4 XDemu类Read接口开发测试并分析内存泄露(源码
7-5 AVCodecParameters音视频参数获取和复
7-6 av_seek_frameXDemu类Seek接口和
7-7 XDecode音视频解码器开关清理avcodec_o
7-8 XDecode的音视频解码Send和Recv接口开发
7-9 XVideoWidget初始化接口完成并测试调用(源
7-10 XVideoWidget显示完成并添加测试线程完成视

第8章 XPlay2.0 播放器项目实战开发二 (1小时57分钟 10节)

8-1 XResample音频重采样Open和Close接口
8-2 XResample接口完成并添加测试代码(源码)
8-3 XAudioPlay音频播放接口Open和Close
8-4 XAudioPlay音频接口完成并测试音频播放成功(
8-5 XAudioThread打开音频解码、重采样、播放成
8-6 XAudioThread缓冲队列Push完成
8-7 XAudioThread完成功能并编写测试代码(源码
8-8 XVideoThread视频解码线程和显示接口完成并
8-9 XDemuxThread的Open接口完成
8-10 XDemuxThread音视频播放测试完成(源码)

第9章 XPlay2.0 播放器项目实战开发三 (3小时25分钟 15节)

9-1 音视频同步策略分析并计算出当前音频播放的pts
9-2 测试播放rtmp香港卫视直播解决视频显示的行对齐问题
9-3 通过界面选择打开视频文件(源码)
9-4 抽象出XDecodeThread类添加Push和Po
9-5 XDecodeThread添加Clear清理音视频缓
9-6 模块添加Close关闭线程和清理资源解决程序退出会宕
9-7 使用VS的诊断工具查看内存泄漏问题并修正音频播放线程
9-8 使用QSlider进度条显示播放的进度
9-9 窗口尺寸变化和双击全屏播放视频(源码)
9-10 各个模块添加暂停功能SetPause完成音视频播放暂
9-11 完成了Seek视频进度跳转到关键帧位置(源码)
9-12 完成了音视频Seek封装功能
9-13 重构XDemuxThread和XDecode ff解
9-14 重载XSlider解决滑动条拖动bug支持点击滑动条
9-15 系统移植到ubuntu的linux64位环境(课程全

第10章 XPlay1.0 课程介绍和环境准备 (55分钟 5节)

10-1 课程介绍
10-2 QT开发环境准备
10-3 ffmpeg介绍和开发环境准备
10-4 学习方法说明和课程代码下载演示
10-5 ubuntu下安装qt5.8并编译安装ffmpeg

第11章 XPlay1.0 ffmpeg视频处理 (2小时13分钟 10节)

11-1 2.1ffmpeg打开视频文件
11-2 2.2ffmpeg读取视频帧
11-3 2.3打开ffmpeg的视频解码器
11-4 2.4ffmpeg视频解码并分析H264压缩算法
11-5 2.5打开ffmpeg格式转换和缩放器
11-6 2.6使用ffmpeg转换为RGB数据并缩放视频
11-7 2.7重构封装FFmpeg类完成打开和关闭视频接口
11-8 2.8重构FFmpeg读取视频帧接口
11-9 2.9重构ffmpeg解码接口
11-10 2.10重构封装FFmpeg缩放接口

第12章 XPlay1.0 通过QT显示视频播放 (55分钟 4节)

12-1 3.1基于QT的播放器界面绘制
12-2 3.2通过QT显示转码后的RGB数据
12-3 3.3创建解码线程控制播放速度
12-4 3.4通过QT打开外部视频

第13章 XPlay1.0 视频播放控制 (1小时14分钟 7节)

13-1 4.1视频总时间显示
13-2 4.2视频播放的当前时间显示
13-3 4.3进度条显示播放进度
13-4 4.4进度条拖动控制播放位置
13-5 4.5控制视频的播放和暂停
13-6 4.6视频显示和窗口大小同步变化
13-7 4.7重载QT滑动条点击控制播放进度

第14章 XPlay1.0 音视频播放控制 (1小时43分钟 10节)

14-1 5.1QT音频库介绍和示例
14-2 5.2QT音频播放类封装
14-3 5.3QT音频播放的启动和停止接口实现
14-4 5.4QT音频播放暂停和缓冲写入接口实现
14-5 5.5ffmpeg音频解码器打开
14-6 5.6ffmpeg音频解码
14-7 5.7ffmpeg音频重采样标准化音频的输出格式
14-8 5.8完成音视频的播放
14-9 5.9通过多线程和缓冲队列实现音视频同步
14-10 将XPLay播放器项目移植到ubuntu下并修正出现

第15章 XPlay1.0 课程总结和代码下载 (7分钟 2节)

15-1 6.1代码下载说明
15-2 6.2课程总结