基于qt和ffmpeg视频播放器开发实战—24527人已学习
课程介绍
ffmpeg是世界上应用广的开源视频处理框架,在各个平台(windows,linux,嵌入式、Android、IOS)被广泛应用,可以说是做视频相关项目技能 qt是目前跨平台项目界面开发的第一选择,本课程基于这两种框架在加上VC++,给大家讲解延时如何开发出一个视频播放器,各个模块如何结合,如何考虑性能问题,如何设计封装类,如何处理各种异常情况。
课程收益
通过本课程的学习,使得同学能够熟练应用ffmpeg和qt开发,有了实战解决问题的能力并强化了学员c++的能力。
讲师介绍
夏曹俊 更多讲师课程
夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算机视觉,嵌入式图像处理,云安全审计项目,比赛鹰眼系统,主编出版过《C++实训教程》,并同时熟悉php,c#,java,安卓项目研发。
课程大纲
第1章:课程介绍和环境准备
1. 课程介绍_加qq群462249121下载源码 5:55
2. 学习方法说明和课程代码下载演示 2:16
3. 音视频基础知识mpeg4封装格式音视频编码格式讲解 10:15
4. 音视频解封装和解码原理分析 18:02
5. 图形像素格式RGB和YUV格式分析 15:36
6. PCM音频采样率_通道_planar等格式参数分析 8:37
7. MP4标准和h264格式的NAL的GOP分析 15:53
8. QT开发环境下载和安装 12:22
9. QtSDK路径目录文件说明 8:28
10. 创建第一个qtcreator项目_并确定文件和目录的作用 12:43
11. 在linux中安装qt及其依赖并编写测试项目 6:17
12. windows下qtcreator调试环境安装配置使用 9:44
13. vs创建QT项目并详细介绍vs项目设置 13:17
14. VS设置qt库版本导出为qtcreator项目 9:29
第2章:FFmpeg编译和开发环境准备
1. windows下ffmpeg库下载安装方法和库文件说明 6:13
2. VS2015配置开发显示ffmpeg配置信息测试项目 12:52
3. VS2015配置32位和64位通用的ffmpeg测试程序 9:33
4. QtCreator配置32位和64位windows通用的ffmpeg测试程序 14:14
5. 项目移植到ubuntu中并配置跨平台的pro文件 16:31
第3章:FFmpeg解封装
1. ffmpeg SDK软硬解码流程说明 5:08
2. ffmpeg音视频解封装用到的函数和结构体详解 10:11
3. avformat_open_input函数详解 6:20
4. 初始化解封装使用avformat_open_input打开MP4文件,并设置延时等属性 17:10
5. AVFormatContext结构分析 6:04
6. avformat_close_input清理封装上下文 6:30
7. avformat_find_stream_info探测获取封装上下文的格式信息并打印 8:08
8. AVStream和AVCodecParameters分析 13:16
9. 通过遍历获取AVStream音频流信息并打印参数 10:06
10. 通过遍历和av_find_best_stream方法获取视频流信息并打印参数. 18:31
11. av_read_frame读取帧数据函数分析和产生的空间问题分析 7:07
12. AVPacket结构解析空间申请-初始化-复制-引用计数函数讲解 10:27
13. av_seek_frame改变播放进度函数详解 8:37
14. av_read_frame和av_seek_frame代码示例并分析内存占用和清理情况 21:24
第4章:FFmepg解码和像素格式、音频采样转换
1. AVCodecContext解码上下文初始化讲解 9:18
2. 音视频解码上下文创建配置和打开avcodec_open2打开演示 14:13
3. AVFrame格式解析和空间处理函数 9:37
4. avcodec_send_packet和avcodec_receive_frame函数讲解 7:22
5. avcodec_send_packet和avcodec_receive_frame完成音视频解码代码 12:30
6. sws_getContext和sws_scale像素格式和尺寸转换函数讲解 12:43
7. sws_getContext像素格式上下文初始化代码演示 11:42
8. sws_scale像素格式转换代码演示 6:29
9. 音频重采样SwrContext格式和swr_convert相关函数详解 5:17
10. swr_init音频重采样上下文初始化和swr_convert音频重采样代码示例 13:22
第5章:XPlay2 Qt音频及OpenGLShader显示YUV
1. Qt音频播放接口QAudioOutput详解 11:49
2. Qt播放音频代码演示(源码) 11:11
3. Qt的opengl编程分析及QOpenGLWidget使用方法 8:41
4. 顶点和片元作色器原理讲解和yuv转rgb的glsl代码讲解 27:59
5. 创建和显示材质glTexImage2D 8:04
6. 创建QtOpengl项目提升窗口控件并重载QOpenGLWidget函数(源码) 12:01
7. shader代码并用QGLShaderProgram载入(源码) 16:50
8. 写入顶点和材质坐标glVertexAttribPointer(源码) 8:48
9. 完成材质的初始化和显存和内存空间分配glTexImage2D(源码) 11:52
10. 完成对yuv文件使用OpenGLShader播放(源码) 15:02
第6章:XPlay2.0 播放器项目实战开发一
1. 面向对象的五大原则 12:14
2. XPlay2.0项目类图分析 12:23
3. XDemu类Open接口开发并测试打开本地文件和香港卫视直播流(源码) 20:44
4. XDemu类Read接口开发测试并分析内存泄露(源码) 11:26
5. AVCodecParameters音视频参数获取和复制(源码) 9:48
6. av_seek_frameXDemu类Seek接口和清理关闭接口完成(源码) 12:10
7. XDecode音视频解码器打开关闭和清理avcodec_open2(源码) 15:46
8. XDecode的音视频解码Send和Recv接口开发并测试(源码) 15:53
9. XVideoWidget初始化接口完成并测试调用(源码) 14:45
10. 不完整,已重新上传,等审核XVideoWidget显示完成并添加测试线程完成视频图像播放(源码) 8:50
11. (不用看,错误)XVideoWidget初始化接口完成并测试调用 14:45
12. XVideoWidget显示完成并添加测试线程完成视频图像播放 12:32
第7章:XPlay2.0 播放器项目实战开发二
1. XResample音频重采样Open和Close接口完成(源码) 9:05
2. XResample接口完成并添加测试代码(源码) 12:44
3. XAudioPlay音频播放接口Open和Close接口完成并添加测试代码(源码) 14:57
4. XAudioPlay音频接口完成并测试音频播放成功(源码) 8:14
5. XAudioThread打开音频解码、重采样、播放成功(源码) 15:28
6. XAudioThread缓冲队列Push完成 8:06
7. XAudioThread完成功能并编写测试代码(源码) 10:21
8. XVideoThread视频解码线程和显示接口完成并测试(源码) 19:14
9. XDemuxThread的Open接口完成 11:19
10. XDemuxThread音视频播放测试完成(源码) 8:30
第8章:XPlay2.0 播放器项目实战开发三
1. 音视频同步策略分析并计算出当前音频播放的pts 17:28
2. 测试播放rtmp香港卫视直播解决视频显示的行对齐问题(源码) 9:47
3. 通过界面选择打开视频文件(源码) 14:45
4. 抽象出XDecodeThread类添加Push和Pop函数 19:45
5. XDecodeThread添加Clear清理接口清理音视频线程的缓冲队列(源码) 6:30
6. 所有模块添加Close关闭线程和清理资源接口解决程序退出会宕掉的bug(源码) 11:05
7. 使用VS的诊断工具查看内存泄漏问题并修正音频播放线程内存泄漏(源码) 6:27
8. 使用QSlider进度条显示播放的进度 11:01
9. 窗口尺寸变化和双击全屏播放视频(源码) 7:30
10. 各个模块添加暂停功能SetPause完成音视频播放暂停 23:13
11. 完成了Seek视频进度跳转到关键帧位置(源码) 14:59
12. 完成了音视频Seek封装功能 14:13
13. 重构XDemuxThread和XDecode和ffmpeg解耦合 17:39
14. 重载XSlider解决滑动条拖动bug并支持点击滑动条转到指定播放位置(源码) 9:08
15. 系统移植到ubuntu的linux64位环境编译运行(源码) 22:01
第9章:XPlay1.0 课程
1. 本章都是XPlay1.0课程 qt开发环境准备 14:47
2. ffmpeg开发环境准备 17:34
3. 第一个例子,打开视频获取视频信息 16:03
4. 读取视频并分析视频包 21:54
5. 打开视频解码器 8:28
6. 视频解码并分析H264解码 14:13
7. 打开格式转换和缩放 15:07
8. 视频转RGB并缩放 6:18
9. 重构封装FFmpeg类完成打开和关闭视频接口 19:45
10. 重构读取视频帧接口 9:24
11. 重构解码接口 11:53
12. 重构ToRGB接口 10:05
13. 基于QT的播放器界面绘制 10:06
14. 通过QT显示转码后的RGB数据 19:28
15. 创建解码线程控制播放速度 17:40
16. 通过QT打开外部视频 8:32
17. 视频总时间显示 7:32
18. 视频播放的当前时间显示 9:08
19. 进度条显示播放进度 4:58
20. 进度条拖动控制播放位置 16:57
21. 控制视频的播放和暂停 14:24
22. 视频显示和窗口大小变化同步 14:39
23. 重载QT滑动条类鼠标点击移动滑动条并跳转到相应的视频位置 6:57
24. QT音频库介绍和示例 8:10
25. QT音频播放类封装 6:24
26. QT音频播放的启动和停止接口实现 5:12
27. QT音频播放暂停和缓冲写入接口实现 4:04
28. ffmpeg音频解码器打开 9:50
29. ffmpeg音频解码 6:34
30. ffmpeg音频重采样标准化音频的输出格式 21:02
31. 完成音视频的播放 14:50
32. 通过多线程和缓冲队列实现音视频同步播放 10:56
33. 本课程代码下载和目录结构说明 2:11
34. 课程总结和学习建议和老师联系方式 5:16
35. ubuntu下安装qt5.8并编译安装ffmpeg 15:37
36. 将XPLay播放器项目移植到ubuntu下并修正出现的声音问题 16:02
大家可以点击【 查看详情】查看我的课程