欢迎光临散文网 会员登陆 & 注册

FFmpeg 4.3 音视频基础到工程应用-多路H265监控录放C++开发

2022-12-13 21:36 作者:飞天小鱼饭  | 我要投稿

课程目录


*  第一章:开发环境准备


  *  *  FFmpeg 4.3 音视频课程介绍 


    *  学习引导和章节介绍必看 


    *  环境准备步骤说明VS2019控制台和msys2运行环境准备 


    *  msys2使用pacman安装编译依赖工具 


    *  完成x264源码编译和安装 


    *  完成x265源码编译和安装 


    *  完成音频编码fdk-aac源码编译和安装 


    *  ffmpeg4.3在vs2019完成源码编译 


    *  第一个vs2019ffmpeg项目创建和源码pdb调试设置 


    *  Linux编译x264\_x265\_aac 


    *  Linux编译ffmpeg4.3并编写测试程序makefile 


    *  QT5.14安装和项目创建并切换不同的QT版本 


    *  章节总结和ffmpeg代码调试设置 


*  第二章:图像格式\_基于QT和SDL渲染


  *  *  学习引导和章节介绍必看 


    *  RGB像素格式原理讲解并使用QT渲染RGB数据 


    *  合并两幅图像并使用SDL\_QT渲染和保持的案例技术分析 


    *  SDL2源码编译安装和渲染视频接口详解 


    *  SDL2渲染RGB数据画面定时变化 


    *  SDL渲染RGB数据到QT的控件中通过定时器刷新 


    *  合并两幅图像法使用SDL渲染并用QT保存文件 


    *  YUV格式详解并使用ffmpeg生成yuv文件 


    *  使用SDL\_QT直接播放渲染YUV格式文件 


    *  XVideoView工厂模式封装SDL接口设计和代码实现 


    *  XSDL封装完成窗口渲染器和材质的初始化 


    *  完成XSDL渲染Draw接口并测试渲染YUV420数据 


    *  渲染画面随着窗口大小自动缩放并解决锯齿问题 


    *  完成XSDL资源清理接口接收窗口退出事件并自动处理窗口缩放 


    *  章总结\_代码下载编译说明和作业 


*  第三章:FFmpeg AVFrame视频渲染


  *  *  学习引导和章节介绍必看 


    *  AVFrame结构体和相关ffmpeg接口详解 


    *  测试AVFrame的空间分配引用计数接口并测试字节对齐 


    *  读取YUV数据到AVFrame并添加渲染AVFrame的接口 


    *  视频帧率详解帧率控制策略分析和sleep时间不准的问题分析 


    *  测试sleep和wait的精确度并实现精确控制帧率的MSleep 


    *  多线程控制帧率渲染AVFrame的YUV数据 36:04 开始学习


    *  渲染界面中添加显示fps和设置fps的控件完成设置渲染帧率 


    *  章总结\_代码下载编译说明和作业 


*  第四章:FFmpeg像素格式转换和多路YUV、RGB渲染


  *  *  学习引导和章节介绍必看 


    *  FFMpeg的像素格式转换接口sws\_scale详解 


    *  像素格式转换YUV420P转换为RGBA并写入文件 


    *  sws\_scale像素格式转换RGBA转YUV420P 


    *  多路YUV\_RGB文件播放器需求和设计说明 


    *  YUV\_RGB播放器QT界面设计和打开文件处理 


    *  完成多路XVideoView窗口初始化并生成测试的YUV和RGB文件 


    *  XVideoView\_Read接口读取像素数据并初始化AVFrame空间 


    *  完成了支持YUV和RGB格式两路视频同时播放 


    *  完成了两路视频帧率显示并能设置不同的播放帧率 


    *  章总结\_代码下载编译说明和作业 


*  第五章:FFmpeg视频编码原理和实战


  *  *  学习引导和章节介绍必看 


    *  视频编码原理概述 


    *  FFMpeg编码接口和AVPacket结构体详解 


    *  FFmpeg编码器获取和上下文打开 


    *  完成了视频帧创建和编码 


    *  完成h264和h265编码并使用VLC测试播放 


    *  H264原理分析宏块划分\_帧间预测I帧\_帧内预测P帧和B帧\_GOP 


    *  变换\_量化和熵编码\_变长和算数编码CABAC分析 


    *  x264预设编码器preset\_tune设置编码速度和质量 


    *  代码试验ultrafast最快编码和zerolatency零延时参数设定 


    *  ABR平均比特率CQP恒定质量X264和x265QP参数选择试验 


    *  CBR恒定比特率\_CRF恒定速率因子\_VBV代码测试 


    *  H264码流中NALU\_SPS\_PPS\_IDR帧的分析 


    *  代码测试解析出AVPacket中的NALU类型SPS\_PPS和IDR 


    *  XEncode编码封装完成上下文创建和测试代码 


    *  XEncode添加线程安全锁并添加支持crf参数的设置 


    *  XEncode完成编码和AVFrame创建接口封装 


    *  XEncode解决丢帧添加获取编码缓冲区接口\_编码封装完成 


    *  章总结\_代码下载编译说明 


*  第六章:FFmpeg视频软解码和硬解码


  *  *  学习引导和章节介绍必看 


    *  FFmpeg视频解码接口详细分析 


    *  av\_parser\_parse2从h264文件中截取AVPacket 


    *  基于ffmpeg接口完成视频解码 


    *  完成解码视频渲染并测试多线解码帧率 


    *  完成硬件GPU加速解码DXVA2并测试CPU使用率和帧率 


    *  修改XVideoView支持渲染硬解码NV12格式数据 


    *  重构XEncode添加基类XCodec并完成XDecode封装 


    *  完成XDecode解码支持硬解并做了播放测试 


    *  DXVA硬解码到GPU不复制到内存直接渲染原理和接口分析 


    *  DXVA硬解到GPU不复制内存渲染代码实现 


    *  章总结和作业要求 


*  第七章:FFmpeg封装和解封装


  *  *  学习引导和章节介绍必看 


    *  封装分析和MP4封装格式详解 


    *  FFmpeg解封装流程和接口详解 


    *  FFmpeg解封装代码示例并区分音频视频包 


    *  完成解封装后对视频进行解码和渲染代码 


    *  封装流程分析ffmpeg封装文件接口详解 


    *  av\_seek\_frame控制播放进度函数详解 


    *  完成重封装mp4文件测试基本代码 


    *  重封装剪切中间10秒视频并重新计算pts\_dts 


    *  完成XFormat和XDemux重构解封装并测试接口 41:05 开始学习


    *  完成封装代码重构XMux并测试重新封装音视频文件 


    *  根据输入的文件名和时间参数完成截断视频功能 36:37 开始学习


    *  完成视频重编码为h265并写重新封装MP4 34:11 开始学习


    *  章总结和代码说明 


*  第八章: FFmpeg解封装rtsp并录制视频


  *  *  学习引导和章节介绍必看 


    *  使用VLC模拟一个rtsp服务器 


    *  RTSP协议详细分析包括鉴权协议分析 


    *  大华和海康相机设置和rtsp协议抓包分析 


    *  ffmpeg的rtsp相关接口分析和多线程处理解封装说明 


    *  完成XThread线程类的启动和安全退出\_XLOG日志宏代码 


    *  开发XDemuTask线程类使用上下文的回调函数实现超时退出AVIOInterruptCB 32:02 开始学习


    *  解封装rtsp断网或摄像机重启后自动重连处理 


    *  解封装解码线程责任链设计模式和线程安全的list类图设计说明 


    *  完成责任链代码和返回智能指针类型的解封装视频参数 


    *  完成解码线程初始化和并实现线程安全的XAVPacketList 


    *  完成通过责任链接收解封装AVPacket数据并解码视频 


    *  完成rtsp的多线程责任链解封装解码和渲染 


    *  封装音视频处理线程代码初始化传递音视频参数 


    *  完成相机录制重新封装处理pts计算问题 


    *  章总结和代码测试本地模拟rtsp 


*  第九章:XViewer多路H265监控录放0.1版本项目开发


  *  *  学习引导和章节介绍必看 


    *  XViewer多路H265监控录放开发项目需求文档详细分析 


    *  XCodec封装音视频编解码和渲染的动态链接库编译和测试 


    *  预览界面设计说明XViewer项目创建和配置并设置程序图标 


    *  XViewer窗口自定义标题\_关闭\_最小化按钮和窗口拖动的鼠标事件处理 


    *  XViewer窗口布局设计和窗口最大化和恢复处理 


    *  右键菜单调整预览窗口数量1\_4\_9\_16通过QGridLayout 


    *  完成摄像机管理的数据的增删改模型层代码 32:58 开始学习


    *  XCameraConfig持久化写入和读取文件中的摄像机配置 


    *  完成相机配置读取和列表显示列表显示 


    *  代码生成新增摄像机配置界面\_并使用qss设置按钮样式 


    *  完成摄像机管理的修改和删除功能 


    *  通过QListWidget拖拽实现指定播放rtsp和窗口 


    *  通过拖拽配置完成多窗口rtsp相机的渲染 


    *  多路音视频录制模块设计说明和XCameraRecord录制测试 


    *  定时创建新的视频文件并解决录制文件开发花屏问题 


    *  多路相机录制界面交互功能完成 


    *  回放界面设计并实现与预览界面的切换按钮 


    *  自定义日历控件显示有视频日期继承QCalendarWidget 


    *  点击摄像机刷新日历改变有视频文件日期的背景 


    *  点击视频时间列表获取视频绝对路径 


    *  添加回放日历中的视频播放器 


    *  完成回放视频播放器的播放速度控制\_项目0.1版本完成 


    *  章总结和XViewer0.1编码和准备发布版本 


*  第十章:音频原理\_ffmpeg&SDL播放音视频同步


  *  *  学习引导和章节介绍必看 


    *  音频核心基础声波频率\_采样频率\_采样大小\_信噪比\_多通道平面存储 


    *  PCM格式\_音频编码分析\_SDL音频播放接口介绍 


    *  完成SDL播放PCM音频文件项目 


    *  完成了XAudioPlay类的单件模式初始化 


    *  完成XAudioPlay播放音频通过缓冲队列传递数据 


    *  音频播放音量和播放速度\_慢放和快放音频处理 


    *  mp4中音频解码解封装手动转换平面格式并使用用SDL播放 52:05 开始学习


    *  音视频同步\_初始化\_渲染播放和时间同步协作图分析 


    *  音视频播放XPlayer视频打开和线程初始化 


    *  完成音视频文件多线程同步播放 47:39 开始学习


    *  章总结和代码说明 


*  第十一章:XViewer 0.2版本


  *  *  习引导和章节介绍必看 


    *  xviewer0.2监控工具支持音视频同步播放 36:09 开始学习


    *  完成QT界面设置音视频播放速度\_慢放和快放 


    *  完成QT进度条显示视频播放进度 


    *  完成音视频的暂停和播放 


    *  成SEEK进度条控制播放进度 


    *  修正无法删除摄像机和修改线程退出函数后录制回放出错\_日历样式和布局 


*  第十二章:ffmpeg\_gsoap\_onvif探测和预览onvif协议


  *  *  学习引导和章节介绍必看 


    *  Onvif协议分析和测试工具使用 


    *  gsoap的wsdl2h\_vs2019支持ssl编译和运行测试 


    *  生成支持鉴权的onvif代码gsoap的soapcpp2使用 


    *  创建第一个test\_onvif项目 


    *  初始化和清理相机探测probe的soap消息头 


    *  完成gsoap的onvif\_discovery探测设备 


    *  封装gsoap代码使用c++调用重构设备探测 


    *  完成鉴权并获取onvif设备能力GetCapabilities 


    *  完成onvif鉴权和获取媒体信息GetProfiles 


    *  完成onvif的rtsp地址获取GetStreamUri 


    *  基于gsoap的ffmpeg预览onvif摄像机设备代码 

FFmpeg 4.3 音视频基础到工程应用-多路H265监控录放C++开发的评论 (共 条)

分享到微博请遵守国家法律