FFmpeg + qt 音视频播放器 C++ 跨平台实战
基于opengl shader绘制yuv
4.50 (46 reviews)
282
students
17.5 hours
content
May 2018
last update
$44.99
regular price
What you will learn
学会用C++和面向对象原则做一个多线程的实际项目
理解音视频音视频解码相关知识
学会使用ffmpeg解封装MP4文件或者RTMP等流媒体
学会用ffmpeg多线程解码音视频
熟悉QT界面编程
学会用QT播放音频并控制音频缓冲
学会用QT的opengl Shader 使用GPU将YUV转为RGB
使用QT显示视频并控制视频播放进度
Description
这门课程给大家讲解的是基于当前最流行FFMpeg视频处理框架和最流行的QT跨平台库。开发的一个完整的视频播放器,不是基于视频播放控件开发,而是从底层全部实现。
本课程从功能需求分析、基本原理讲解到代码实现演示,让您经历一个实际项目的全过程。
特别适合有一定C或者C++基础,想要提高自己是实战能力学员,学完此门课,可以说你们项目经历里面就可以增加一项,开发过qt和ffmpeg的C++程序,实现了一个播放器的音视频全部功能。
本课程同时也适合与想要学习ffmpeg和qt的同学,本课程学完之后你就已经将ffmpeg可以投入实际的项目应用,对于QT的基本原理你也非常清楚了,可以实现复杂的qt界面,您就可以独立开发出音视频的各种应用,包括无人机,安防,直播视频直播,视频会议,并能够开发出跨平台的应用.
课程在XPlay1.0的基础上,添加了基础知识和使用qt的 opengl shader绘制yuv
Content
介绍
课程介绍
音视频基础知识mpeg4封装格式音视频编码格式讲解
音视频解封装和解码原理分析
图形像素格式RGB和YUV格式分析
PCM音频采样率_通道_planar等格式参数分析
MP4标准和h264格式的NAL的GOP分析
Qt开发环境准备
QT开发环境下载和安装
QtSDK路径目录文件说明
创建第一个qtcreator项目_并确定文件和目录的作用
在linux中安装qt及其依赖并编写测试项目
windows下qtcreator调试环境安装配置使用
vs创建QT项目并详细介绍vs项目设置
VS设置qt库版本导出为qtcreator项目
FFmpeg编译和开发环境准备
windows下ffmpeg库下载安装方法和库文件说明
VS2015配置开发显示ffmpeg配置信息测试项目
VS2015配置32位和64位通用的ffmpeg测试程序
QtCreator配置32位和64位windows通用的ffmpeg测试程序
项目移植到ubuntu中并配置跨平台的pro文件
FFmpeg解封装
ffmpeg SDK软硬解码流程说明
ffmpeg音视频解封装用到的函数和结构体详解
avformat_open_input函数详解
初始化解封装使用avformat_open_input打开MP4文件,并设置延时属性
AVFormatContext结构分析
avformat_close_input清理封装上下文
avformat_find_stream_info探测获取封装上下文的格式信息并打印
AVStream和AVCodecParameters分析
通过遍历获取AVStream音频流信息并打印参数
通过遍历和av_find_best_stream方法获取视频流信息并打印参数.
av_read_frame读取帧数据函数分析和产生的空间问题分析
AVPacket结构解析空间申请-初始化-复制-引用计数函数讲解
av_seek_frame改变播放进度函数详解
av_read_frame和av_seek_frame代码示例并分析内存占用和清理情况
FFmepg解码和像素格式、音频采样转换
AVCodecContext解码上下文初始化讲解
音视频解码上下文创建配置和打开avcodec_open2打开演示
AVFrame格式解析和空间处理函数
avcodec_send_packet和avcodec_receive_frame函数讲解
avcodec_send_packet和avcodec_receive_frame音视频解码代码演示
sws_getContext和sws_scale像素格式和尺寸转换函数讲解
sws_getContext像素格式上下文初始化代码演示
sws_scale像素格式转换代码演示
音频重采样SwrContext格式和swr_convert相关函数详解
swr_init音频重采样上下文初始化和swr_convert音频重采样代码示例
XPlay2 Qt音频及OpenGLShader显示YUV
Qt音频播放接口QAudioOutput详解
Qt播放音频代码演示(源码)
Qt的opengl编程分析及QOpenGLWidget使用方法
顶点和片元作色器原理讲解和yuv转rgb的glsl代码讲解
创建和显示材质glTexImage2D
创建QtOpengl项目提升窗口控件并重载QOpenGLWidget函数(源码)
shader代码并用QGLShaderProgram载入(源码)
写入顶点和材质坐标glVertexAttribPointer(源码)
完成材质的初始化和显存和内存空间分配glTexImage2D(源码)
完成对yuv文件使用OpenGLShader播放(源码)
XPlay2.0 播放器项目实战开发一
面向对象的五大原则
XPlay2.0项目类图分析
XDemu类Open接口开发并测试打开本地文件和香港卫视直播流(源码)
XDemu类Read接口开发测试并分析内存泄漏(源码)
AVCodecParameters音视频参数获取和复制(源码)
av_seek_frameXDemu类Seek接口和清理关闭接口完成(源码)
XDecode音视频解码器打开关闭和清理avcodec_open2(源码)
XDecode的音视频解码Send和Recv接口开发并测试(源码)
XVideoWidget初始化接口完成并测试调用(源码)
XVideoWidget显示完成并添加测试线程完成视频图像播放(源码)
XPlay2.0 播放器项目实战开发二
XResample音频重采样Open和Close接口完成(源码)
XResample接口完成并添加测试代码(源码)
XAudioPlay音频播放接口Open和Close接口完成并测试(源码)
XAudioPlay音频接口完成并测试音频播放成功(源码)
XAudioThread打开音频解码、重采样、播放成功(源码)
XAudioThread缓冲队列Push完成
XAudioThread完成功能并编写测试代码(源码)
XVideoThread视频解码线程和显示接口完成并测试(源码)
XDemuxThread的Open接口完成
XDemuxThread音视频播放测试完成(源码)
XPlay2.0 播放器项目实战开发三
音视频同步策略分析并计算出当前音频播放的pts
测试播放rtmp香港卫视直播解决视频显示的行对齐问题(源码)
通过QT界面选择打开视频文件(源码)
抽象出XDecodeThread类添加Push和Pop函数
XDecodeThread添加Clear清理接口清理音视频线程的缓冲队列(源码)
所有模块添加关闭线程和清理资源接口解决程序退出宕掉的bug(源码)
使用VS的诊断工具查看内存泄漏并修正音频播放线程内存泄漏(源码)
使用QSlider进度条显示播放的进度
窗口尺寸变化和双击全屏播放视频(源码)
各个模块添加暂停功能SetPause完成音视频播放暂停(源码)
完成了Seek视频进度跳转到关键帧位置(源码)
完成了音视频Seek封装功能
重构XDemuxThread和XDecode和ffmpeg解耦合
重载XSlider解决滑动条拖动bug并支持点击转到指定播放位置(源码)
系统移植到ubuntu的linux64位环境编译运行(源码)
Screenshots
Charts
Price
Rating
Enrollment distribution
Related Topics
1634932
udemy ID
4/7/2018
course created date
5/3/2021
course indexed date
Bot
course submited by