课程介绍和环境准备
FFmpeg编译和开发环境准备
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
XPlay2.0 播放器项目实战开发一
- 面向对象的五大原则
- XPlay2.0项目类图分析
- XDemu类Open接口开发并测试打开本地文件和香港卫视直播流(源码)
- XDemu类Read接口开发测试并分析内存泄露(源码)
- AVCodecParameters音视频参数获取和复制(源码)
- av_seek_frameXDemu类Seek接口和清理关闭接口完成(源码)
- XDecode音视频解码器打开关闭和清理avcodec_open2(源码)
- XDecode的音视频解码Send和Recv接口开发并测试(源码)
- XVideoWidget初始化接口完成并测试调用(源码)
- 不完整,已重新上传,等审核XVideoWidget显示完成并添加测试线程完成视频图像播放(源码)
- (不用看,错误)XVideoWidget初始化接口完成并测试调用
- XVideoWidget显示完成并添加测试线程完成视频图像播放
XPlay2.0 播放器项目实战开发二
XPlay2.0 播放器项目实战开发三
- 音视频同步策略分析并计算出当前音频播放的pts
- 测试播放rtmp香港卫视直播解决视频显示的行对齐问题(源码)
- 通过界面选择打开视频文件(源码)
- 抽象出XDecodeThread类添加Push和Pop函数
- XDecodeThread添加Clear清理接口清理音视频线程的缓冲队列(源码)
- 所有模块添加Close关闭线程和清理资源接口解决程序退出会宕掉的bug(源码)
- 使用VS的诊断工具查看内存泄漏问题并修正音频播放线程内存泄漏(源码)
- 使用QSlider进度条显示播放的进度
- 窗口尺寸变化和双击全屏播放视频(源码)
- 各个模块添加暂停功能SetPause完成音视频播放暂停
- 完成了Seek视频进度跳转到关键帧位置(源码)
- 完成了音视频Seek封装功能
- 重构XDemuxThread和XDecode和ffmpeg解耦合
- 重载XSlider解决滑动条拖动bug并支持点击滑动条转到指定播放位置(源码)
- 系统移植到ubuntu的linux64位环境编译运行(源码)
XPlay1.0 课程
- 本章都是XPlay1.0课程 qt开发环境准备
- ffmpeg开发环境准备
- 第一个例子,打开视频获取视频信息
- 读取视频并分析视频包
- 打开视频解码器
- 视频解码并分析H264解码
- 打开格式转换和缩放
- 视频转RGB并缩放
- 重构封装FFmpeg类完成打开和关闭视频接口
- 重构读取视频帧接口
- 重构解码接口
- 重构ToRGB接口
- 基于QT的播放器界面绘制
- 通过QT显示转码后的RGB数据
- 创建解码线程控制播放速度
- 通过QT打开外部视频
- 视频总时间显示
- 视频播放的当前时间显示
- 进度条显示播放进度
- 进度条拖动控制播放位置
- 控制视频的播放和暂停
- 视频显示和窗口大小变化同步
- 重载QT滑动条类鼠标点击移动滑动条并跳转到相应的视频位置
- QT音频库介绍和示例
- QT音频播放类封装
- QT音频播放的启动和停止接口实现
- QT音频播放暂停和缓冲写入接口实现
- ffmpeg音频解码器打开
- ffmpeg音频解码
- ffmpeg音频重采样标准化音频的输出格式
- 完成音视频的播放
- 通过多线程和缓冲队列实现音视频同步播放
- 本课程代码下载和目录结构说明
- 课程总结和学习建议和老师联系方式
- ubuntu下安装qt5.8并编译安装ffmpeg
- 将XPLay播放器项目移植到ubuntu下并修正出现的声音问题
提交答案