学习有效期:永久观看
学习时长:1499分钟
学习计划:25天
难度:高
CEO/董事长/总经理
讲师介绍:夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算机视觉,嵌入式图像处理,云安全审计项目,比赛鹰眼系统,主编出版过《C++实训教程》,并同时熟悉php,c#,java,安卓项目研发。
ffmpeg是世界上应用广的开源视频处理框架,在各个平台(windows,linux,嵌入式、Android、IOS)被广泛应用,可以说是做视频相关项目技能 qt是目前跨平台项目界面开发的第一选择,本课程基于这两种框架在加上VC++,给大家讲解延时如何开发出一个视频播放器,各个模块如何结合,如何考虑性能问题,如何设计封装类,如何处理各种异常情况。
第1章:课程介绍和环境准备 |
1.课程介绍 |
2.学习方法说明和课程代码下载演示 |
3.音视频基础知识mpeg4封装格式音视频编码格式讲解 |
4.音视频解封装和解码原理分析 |
5.图形像素格式RGB和YUV格式分析 |
6.PCM音频采样率_通道_planar等格式参数分析 |
7.MP4标准和h264格式的NAL的GOP分析 |
8.QT开发环境下载和安装 |
9.QtSDK路径目录文件说明 |
10.创建第一个qtcreator项目_并确定文件和目录的作用 |
11.在linux中安装qt及其依赖并编写测试项目 |
12.windows下qtcreator调试环境安装配置使用 |
13.vs创建QT项目并详细介绍vs项目设置 |
14.VS设置qt库版本导出为qtcreator项目 |
第2章:ffmpeg视频处理 |
第3章:通过QT显示视频播放 |
第4章:视频播放控制 |
第5章:音视频播放控制 |
第6章:代码重构和总结 |
第7章:FFmpeg编译和开发环境准备 |
1.windows下ffmpeg库下载安装方法和库文件说明 |
2.VS2015配置开发显示ffmpeg配置信息测试项目 |
3.VS2015配置32位和64位通用的ffmpeg测试程序 |
4.QtCreator配置32位和64位windows通用的ffmpeg测试程序 |
5.项目移植到ubuntu中并配置跨平台的pro文件 |
第8章:FFmpeg解封装 |
1.ffmpeg SDK软硬解码流程说明 |
2.ffmpeg音视频解封装用到的函数和结构体详解 |
3.avformat_open_input函数详解 |
4.初始化解封装使用avformat_open_input打开MP4文件,并设置延时等属性 |
5.AVFormatContext结构分析 |
6.avformat_close_input清理封装上下文 |
7.avformat_find_stream_info探测获取封装上下文的格式信息并打印 |
8.AVStream和AVCodecParameters分析 |
9.通过遍历获取AVStream音频流信息并打印参数 |
10.通过遍历和av_find_best_stream方法获取视频流信息并打印参数. |
11.av_read_frame读取帧数据函数分析和产生的空间问题分析 |
12.AVPacket结构解析空间申请-初始化-复制-引用计数函数讲解 |
13.av_seek_frame改变播放进度函数详解 |
14.av_read_frame和av_seek_frame代码示例并分析内存占用和清理情况 |
第9章:FFmepg解码和像素格式、音频采样转换 |
1.AVCodecContext解码上下文初始化讲解 |
2.音视频解码上下文创建配置和打开avcodec_open2打开演示 |
3.AVFrame格式解析和空间处理函数 |
4.avcodec_send_packet和avcodec_receive_frame函数讲解 |
5.avcodec_send_packet和avcodec_receive_frame完成音视频解码代码 |
6.sws_getContext和sws_scale像素格式和尺寸转换函数讲解 |
7.sws_getContext像素格式上下文初始化代码演示 |
8.sws_scale像素格式转换代码演示 |
9.音频重采样SwrContext格式和swr_convert相关函数详解 |
10.swr_init音频重采样上下文初始化和swr_convert音频重采样代码示例 |
第10章:XPlay2 Qt音频及OpenGLShader显示YUV |
1.Qt音频播放接口QAudioOutput详解 |
2.Qt播放音频代码演示(源码) |
3.Qt的opengl编程分析及QOpenGLWidget使用方法 |
4.顶点和片元作色器原理讲解和yuv转rgb的glsl代码讲解 |
5.创建和显示材质glTexImage2D |
6.创建QtOpengl项目提升窗口控件并重载QOpenGLWidget函数(源码) |
7.shader代码并用QGLShaderProgram载入(源码) |
8.写入顶点和材质坐标glVertexAttribPointer(源码) |
9.完成材质的初始化和显存和内存空间分配glTexImage2D(源码) |
10.完成对yuv文件使用OpenGLShader播放(源码) |
第11章:XPlay2.0 播放器项目实战开发一 |
1.面向对象的五大原则 |
2.XPlay2.0项目类图分析 |
3.XDemu类Open接口开发并测试打开本地文件和香港卫视直播流(源码) |
4.XDemu类Read接口开发测试并分析内存泄露(源码) |
5.AVCodecParameters音视频参数获取和复制(源码) |
6.av_seek_frameXDemu类Seek接口和清理关闭接口完成(源码) |
7.XDecode音视频解码器打开关闭和清理avcodec_open2(源码) |
8.XDecode的音视频解码Send和Recv接口开发并测试(源码) |
9.XVideoWidget初始化接口完成并测试调用(源码) |
10.不完整,已重新上传,等审核XVideoWidget显示完成并添加测试线程完成视频图像播放(源码) |
11.(不用看,错误)XVideoWidget初始化接口完成并测试调用 |
12.XVideoWidget显示完成并添加测试线程完成视频图像播放 |
第12章:XPlay2.0 播放器项目实战开发二 |
1.XResample音频重采样Open和Close接口完成(源码) |
2.XResample接口完成并添加测试代码(源码) |
3.XAudioPlay音频播放接口Open和Close接口完成并添加测试代码(源码) |
4.XAudioPlay音频接口完成并测试音频播放成功(源码) |
5.XAudioThread打开音频解码、重采样、播放成功(源码) |
6.XAudioThread缓冲队列Push完成 |
7.XAudioThread完成功能并编写测试代码(源码) |
8.XVideoThread视频解码线程和显示接口完成并测试(源码) |
9.XDemuxThread的Open接口完成 |
10.XDemuxThread音视频播放测试完成(源码) |
第13章:XPlay2.0 播放器项目实战开发三 |
1.音视频同步策略分析并计算出当前音频播放的pts |
2.测试播放rtmp香港卫视直播解决视频显示的行对齐问题(源码) |
3.通过界面选择打开视频文件(源码) |
4.抽象出XDecodeThread类添加Push和Pop函数 |
5.XDecodeThread添加Clear清理接口清理音视频线程的缓冲队列(源码) |
6.所有模块添加Close关闭线程和清理资源接口解决程序退出会宕掉的bug(源码) |
7.使用VS的诊断工具查看内存泄漏问题并修正音频播放线程内存泄漏(源码) |
8.使用QSlider进度条显示播放的进度 |
9.窗口尺寸变化和双击全屏播放视频(源码) |
10.各个模块添加暂停功能SetPause完成音视频播放暂停 |
11.完成了Seek视频进度跳转到关键帧位置(源码) |
12.完成了音视频Seek封装功能 |
13.重构XDemuxThread和XDecode和ffmpeg解耦合 |
14.重载XSlider解决滑动条拖动bug并支持点击滑动条转到指定播放位置(源码) |
15.系统移植到ubuntu的linux64位环境编译运行(源码) |
第14章:XPlay1.0 课程 |
1.本章都是XPlay1.0课程 qt开发环境准备 |
2.ffmpeg开发环境准备 |
3.第一个例子,打开视频获取视频信息 |
4.读取视频并分析视频包 |
5.打开视频解码器 |
6.视频解码并分析H264解码 |
7.打开格式转换和缩放 |
8.视频转RGB并缩放 |
9.重构封装FFmpeg类完成打开和关闭视频接口 |
10.重构读取视频帧接口 |
11.重构解码接口 |
12.重构ToRGB接口 |
13.基于QT的播放器界面绘制 |
14.通过QT显示转码后的RGB数据 |
15.创建解码线程控制播放速度 |
16.通过QT打开外部视频 |
17.视频总时间显示 |
18.视频播放的当前时间显示 |
19.进度条显示播放进度 |
20.进度条拖动控制播放位置 |
21.控制视频的播放和暂停 |
22.视频显示和窗口大小变化同步 |
23.重载QT滑动条类鼠标点击移动滑动条并跳转到相应的视频位置 |
24.QT音频库介绍和示例 |
25.QT音频播放类封装 |
26.QT音频播放的启动和停止接口实现 |
27.QT音频播放暂停和缓冲写入接口实现 |
28.ffmpeg音频解码器打开 |
29.ffmpeg音频解码 |
30.ffmpeg音频重采样标准化音频的输出格式 |
31.完成音视频的播放 |
32.通过多线程和缓冲队列实现音视频同步播放 |
33.本课程代码下载和目录结构说明 |
34.课程总结和学习建议和老师联系方式 |
35.ubuntu下安装qt5.8并编译安装ffmpeg |
36.将XPLay播放器项目移植到ubuntu下并修正出现的声音问题 |
技术专家系统讲解传授编程思路与实战。
专属社群随时沟通与讲师答疑,扫清学习障碍,自学编程不再难。
超实用资料,覆盖核心知识,关键编程技能,方便练习巩固。(部分讲师考虑到版权问题,暂未上传附件,敬请谅解)
企业常见开发实战案例,带你掌握Python在工作中的不同运用场景。
2019Python开发者大会视频免费观看,送你一个近距离感受互联网大佬的机会。
满足不同场景,开发编程语言系统学习需求,不受空间、地域限制。
【完善的技术体系】
技术成长循序渐进,帮助用户轻松掌握
掌握C/C++知识,扎实编码能力
【清晰的课程脉络】
浓缩大牛多年经验,全方位构建出系统化的技术知识脉络,同时注重实战操作。
【仿佛在大厂实习般的课程设计】
课程内容全面提升技术能力,系统学习大厂技术方法论,可复用在日后工作中。
通过本课程的学习,使得同学能够熟练应用ffmpeg和qt开发,有了实战解决问题的能力并强化了学员c++的能力。