如果你在招聘网站上搜"音视频开发",会发现一个尴尬现象:岗位不少,但真正能投的候选人不多。原因很简单——这个方向的门槛不在语言,而在对媒体数据流的理解。C++ 语法可以突击,但音视频不行,你得知道一帧 H265 数据从摄像头出来到屏幕上显示,中间经过了哪些环节、每步可能出什么错。这门课就是冲这个环节去的。
它到底解决什么工作场景
最典型的落地场景是:公司要做一套监控系统,摄像头是网络摄像机,走 RTSP 拉流,编码是 H265,要求同时看多路画面、能存盘、能回放,最好还能对接 ONVIF 协议去发现和配置设备。这类需求在安防、工业视觉、智慧园区里非常密集,而且是实打实的后端 C++ 岗位。
课程围绕的正是这条链路:用 FFmpeg 完成解封装、拿到 H265 码流、解码成图像、做像素格式转换、多路渲染上屏,再加上 RTSP 录制和 ONVIF 设备交互。它不是泛泛讲 API,而是把"多路监控录放"当作最终目标来组织内容,所以学的过程本身就是在做一个能跑起来的项目。
学完之后你能独立做什么
- 用 C++ 和 FFmpeg 写一个能拉取 RTSP 流并解码播放的小程序,而不是只会调命令行工具。
- 理解封装与解封装的关系,能处理 MP4、TS 等常见容器,知道为什么有的流能播有的不能。
- 做像素格式转换(比如解码出来的 YUV 转成渲染需要的格式),解决花屏、偏色、性能瓶颈这类问题。
- 实现多路画面同时渲染,理解多线程下解码与渲染怎么配合、怎么避免卡顿和资源竞争。
- 完成 RTSP 流录制存盘,并借助 ONVIF 协议做设备发现与基本配置。
换句话说,面试时被问到"你做过音视频吗",你手里是有东西可以讲的。
资料适合什么基础的人
先说不适合的:完全没写过 C++、连指针和线程都没碰过的人,直接上这门课会很吃力,建议先补语言基础。课程里会出现回调、多线程、内存管理这些内容,不是零基础能顺畅消化的。
比较合适的画像是有一定 C++ 工程经验的后端或客户端开发者,想转音视频方向;或者已经在做相关业务,但一直靠改别人代码、说不清原理,需要系统梳理一遍。对 FFmpeg 零基础也可以,但前提是语言关已经过了。
怎么用这套资料效率更高
封装解封装这一部分时长占比不小,别急着跳。很多人学音视频卡住,就是因为只盯着解码,忽略了容器层,结果遇到音视频不同步、时间戳错乱就束手无策。建议边看边动手,把每一节的代码自己敲一遍,尤其是涉及内存和线程的地方,光看是看不出坑的。
学到多路渲染和录制阶段,可以尝试脱离课程代码,自己设计一个简化版监控客户端,哪怕只支持两路,这个过程比反复看视频有用得多。ONVIF 部分偏协议对接,实际工作中查文档的能力比背细节更重要,理解思路即可。
整体来说,这是一门目标明确、偏工程实战的课程,价值在于帮你把零散的 FFmpeg 知识串成一条完整链路。如果你的工作或求职方向确实和音视频沾边,值得投入时间;如果只是好奇,成本会偏高。
课程目录
📁 第7章 FFmpeg封装和解封装 (5小时13分钟 14节) 第7章 FFmpeg封装和解封装 (5小时13分钟 14节)说明.zip [1.8 MB] 7-7 av_seek_frame控制播放进度函数详解.mp4 [29.1 MB] 7-9 重封装剪切中间10秒视频并重新计算pts_dts.mp4 [145.2 MB] 7-14 总结和代码说明.mp4 [12.5 MB] 7-2 封装分析和MP4封装格式详解.mp4 [52.8 MB] 7-8 完成重封装mp4文件测试基本代码.mp4 [142.9 MB] 7-5 完成解封装后对视频进行解码和渲染代码.mp4 [114.2 MB] 7-12 根据输入的文件名和时间参数完成截断视频功能.mp4 [221.4 MB] 7-11 完成封装代码重构XMux并测试重新封装音视频文件(8.15).mp4 [211.5 MB] 7-10 完成XFormat和XDemux重构解封装.mp4 [250.1 MB] 7-1 学习引导和章节介绍必看.mp4 [27.1 MB] 7-13 完成视频重编码为h265并写重新封装MP4.mp4 [208.6 MB] 7-4 FFmpeg解封装代码示例并区分音频视频包.mp4 [146.6 MB] 7-6 封装流程分析ffmpeg封装文件接口详解.mp4 [71.6 MB] 7-3 FFmpeg解封装流程和接口详解.mp4 [57.6 MB] 📁 第10章 音频原理_ffmpeg&SDL播放音视频同步 (4小时4分钟 12节) 第10章 音频原理_ffmpeg&SDL播放音视频同步 (4小时4分钟 12节)文档.zip [1.8 MB] 10-8 mp4中音频解码解封装手动转换平面格式.mp4 [307.2 MB] 10-4 完成SDL播放PCM音频文件项目.mp4 [135.8 MB] 10-6 完成XAudioPlay播放音频通过缓冲队.mp4 [128.0 MB] 10-12 章总结和代码说明.mp4 [8.4 MB] 10-7 音频播放音量和播放速度_慢放.mp4 [75.6 MB] 10-2 音频核心基础声波频率_采样频率_采样大小.mp4 [38.5 MB] 10-9 音视频同步_初始化_渲染播放和时间.mp4 [45.5 MB] 10-1 学习引导和章节介绍必看.mp4 [30.0 MB] 10-3 PCM格式_音频编码分析_SDL音频.mp4 [32.3 MB] 10-10 音视频播放XPlayer视频打开和线程初始化.mp4 [125.1 MB] 10-5 完成了XAudioPlay类的单件模式初始化.mp4 [103.3 MB] 10-11 完成音视频文件多线程同步播放.mp4 [279.3 MB] 📁 第4章 FFmpeg像素格式转换和多路YUV、RGB渲染 (2小时37分钟 11节) 第4章 FFmpeg像素格式转换和多路YUV、RGB渲染 (2小时37分钟 11节)文档.zip [1.8 MB] 4-6 YUV_RGB播放器QT界面设计和打开文件处理.mp4 [103.2 MB] 4-1 学习引导和章节介绍必看.mp4 [23.1 MB] 4-7 完成多路XVideoView窗口初始化并生成测试.mp4 [109.2 MB] 4-5 多路YUV_RGB文件播放器需求和设计说明.mp4 [25.3 MB] 4-9 完成了支持YUV和RGB格式两路视频同时播放.mp4 [67.3 MB] 4-8 XVideoView_Read接口读取像素数据.mp4 [118.4 MB] 4-2 FFMpeg的像素格式转换接口解.mp4 [36.2 MB] 4-4 sws_scale像素格式转换RGBA转.mp4 [74.1 MB] 4-3 像素格式转换YUV420P转换为RGBA.mp4 [143.5 MB] 4-10 完成了两路视频帧率显示并能设置不同的播放帧率.mp4 [65.8 MB] 4-11 总结_代码下载编译说明和作业.mp4 [72.5 MB] 📁 第8章 FFmpeg解封装rtsp并录制视频 (4小时31分钟 16节) 8-14 封装音视频处理线程代码初始化传递音视频参数.mp4 [182.5 MB] 8-12 完成通过责任链接收解封装AVPacket数据.mp4 [65.0 MB] 8-16 总结和代码测试本地模拟rtsp.mp4 [20.6 MB] 8-6 完成XThread线程类的启动和安全退出.mp4 [142.3 MB] 8-15 完成相机录制重新封装处理pts计算问题.mp4 [137.0 MB] 8-3 RTSP协议详细分析包括鉴权协议分析.mp4 [74.2 MB] 8-9 解封装解码线程责任链设计模式明.mp4 [40.0 MB] 8-8 解封装rtsp断网或摄像机重启后自动重连处理.mp4 [83.8 MB] 8-10 完成责任链代码和返回智能指针类型的解封装视频参数.mp4 [120.6 MB] 8-13 完成rtsp的多线程责任链解封装解码和渲染.mp4 [133.1 MB] 8-2 使用VLC模拟一个rtsp服务器.mp4 [14.4 MB] 8-4 大华和海康相机设置和rtsp协议抓包分析.mp4 [119.0 MB] 8-1 学习引导和章节介绍必看.mp4 [33.1 MB] 8-7 开发XDemuTask线程类使用上下文的回调函数.mp4 [188.8 MB] 8-11 完成解码线程初始化和并实现线程t.mp4 [146.4 MB] 8-5 ffmpeg的rtsp相关接口分析和多线程处理.mp4 [24.3 MB] 📁 第12章 ffmpeg_gsoap_onvif探测和预览onvif协议 (3小时33分钟 13节) 12-13 基于gsoap的ffmpeg预览onvif.mp4 [69.1 MB] 12-6 创建第一个test_onvif项目.mp4 [68.1 MB] 12-3 Onvif协议分析和测试工具使用.mp4 [115.8 MB] 12-11 完成onvif鉴权和获取媒体信息.mp4 [88.8 MB] 12-7 初始化和清理相机探测probe的soap消息头.mp4 [164.3 MB] 12-9 封装gsoap代码使用c++调用重构设备探测.mp4 [115.9 MB] 12-8 完成gsoap的onvif_discovery.mp4 [110.5 MB] 12-5 生成支持鉴权的onvif代码gsoap.mp4 [81.4 MB] 12-12 完成onvif的rtsp地址获取.mp4 [107.8 MB] 12-2 修正无法删除摄像机和修改线程退出函数后录制.mp4 [57.5 MB] 12-4 gsoap的wsdl2h_vs2019.mp4 [123.0 MB] 12-10 完成鉴权并获取onvif设备能力.mp4 [144.0 MB] 12-1 第十二章学习引导和章节介绍必看.mp4 [18.1 MB] 📁 第6章 FFmpeg视频软解码和硬解码 (3小时5分钟 12节) 6-2 FFmpeg视频解码接口详细分析.mp4 [40.1 MB] 6-10 DXVA硬解码到GPU不复制到内存.mp4 [50.3 MB] 6-3 av_parser_parse2从h264文件.mp4 [90.5 MB] 6-6 完成硬件GPU加速解码DXVA2.mp4 [117.3 MB] 6-9 完成XDecode解码支持硬解并做.mp4 [64.6 MB] 6-7 修改XVideoView支持渲.mp4 [151.5 MB] 6-5 完成解码视频渲染并测试多线解码帧率.mp4 [59.1 MB] 6-8 重构XEncode添加基类XCodec.mp4 [144.1 MB] 6-12 总结和作业要求.mp4 [12.8 MB] 6-11 DXVA硬解到GPU不复制内存渲染代码实现.mp4 [132.9 MB] 6-4 基于ffmpeg接口完成视频解码.mp4 [46.3 MB] 6-1 学习引导和章节介绍必看.mp4 [41.9 MB] 📁 第2章 图像格式_基于QT和SDL渲染(3小时57分钟16节) 第2章 图像格式_基于QT和SDL渲染(3小时57分钟16节)文档.png [493.5 KB] 2-1 学习引导和章节介绍必看.mp4 [32.9 MB] 2-8 YUV格式详解并使用ffmpeg生成yuv文件.mp4 [34.2 MB] 2-11 XSDL封装完成窗口渲染器和材质的初始化.mp4 [161.4 MB] 2-13 渲染画面随着窗口大小自动缩放并解决锯齿问题.mp4 [65.0 MB] 2-9 使用SDL_QT直接播放渲染YUV格式文件.mp4 [69.5 MB] 2-6 SDL渲染RGB数据到QT的控件中通过定时器刷新.mp4 [147.4 MB] 2-4 SDL2源码编译安装和渲染视频接口详解.mp4 [37.2 MB] 2-5 SDL2渲染RGB数据画面定时变化.mp4 [140.4 MB] 2-10 XVideoView工厂模式封装SDL接口设计.mp4 [115.9 MB] 2-15 总结_代码下载编译说明和作业.mp4 [51.6 MB] 2-3 合并两幅图像并使用SDL_QT渲染和保持.mp4 [15.3 MB] 2-2 RGB像素格式原理讲解并使用QT渲染RGB数据.mp4 [108.2 MB] 2-14 完成XSDL资源清理接口接收窗口退出事件放.mp4 [100.9 MB] 2-12 完成XSDL渲染Draw接口并测试渲染.mp4 [56.5 MB] 2-7 合并两幅图像法使用SDL渲染并用QT保存文件.mp4 [115.5 MB] 📁 第3章 FFmpeg AVFrame视频渲染 (2小时28分钟 9节) 第3章 FFmpeg AVFrame视频渲染 (2小时28分钟 9节)资料.zip [1.8 MB] 3-7 多线程控制帧率渲染AVFrame的YUV数据.mp4 [223.9 MB] 3-9 总结_代码下载编译说明和作业.mp4 [22.2 MB] 3-2 AVFrame结构体和相关ffmpeg接口详解.mp4 [43.9 MB] 3-5 视频帧率详解帧率控制策略分析和sleep时间.mp4 [26.0 MB] 3-6 测试sleep和wait的精确度并实现精确控制.mp4 [94.8 MB] 3-1 学习引导和章节介绍必看.mp4 [35.1 MB] 3-3 测试AVFrame的空间分配引用计数接口齐.mp4 [94.2 MB] 3-8 渲染界面中添加显示fps和设置fps的控件.mp4 [43.8 MB] 3-4 读取YUV数据到AVFrame并添加渲染e.mp4 [172.8 MB] 📁 第5章 FFmpeg视频编码原理和实战 (4小时26分钟 19节) 第5章 FFmpeg视频编码原理和实战 (4小时26分钟 19节)必看.png [493.5 KB] 5-15 XEncode编码封装完成上下文创建码.mp4 [71.0 MB] 5-3 FFMpeg编码接口和AVPacket结构体详解.mp4 [50.0 MB] 5-9 x264预设编码器preset_tune设置编码.mp4 [38.1 MB] 5-17 XEncode完成编码和AVFrame创.mp4 [119.9 MB] 5-6 完成h264和h265编码并使用VLC测试播放.mp4 [49.3 MB] 5-19 总结_代码下载编译说明.mp4 [18.4 MB] 5-14 代码测试解析出AVPacket中的.mp4 [67.5 MB] 5-8 变换_量化和熵编码_变长和算数.mp4 [46.3 MB] 5-1 学习引导和章节介绍必看.mp4 [45.1 MB] 5-5 完成了视频帧创建和编码.mp4 [119.0 MB] 5-16 XEncode添加线程安全锁并添加支持.mp4 [82.8 MB] 5-11 ABR平均比特率CQP恒定质量X264.mp4 [71.4 MB] 5-4 FFmpeg编码器获取和上下文打开.mp4 [114.5 MB] 5-18 XEncode解决丢帧添加获取编码.mp4 [49.7 MB] 5-10 代码试验ultrafast最快编码.mp4 [71.4 MB] 5-12 CBR恒定比特率_CRF恒定速率因子.mp4 [69.0 MB] 5-7 H264原理分析宏块划分_帧间预测I帧_.mp4 [96.1 MB] 5-13 H264码流中NALU_SPS_PPS_I.mp4 [36.9 MB] 5-2 视频编码原理概述.mp4 [34.4 MB] 📁 第13章 CMake自动构建FFmpeg6.0 (4小时41分钟 20节) 第13章 CMake自动构建FFmpeg6.0 (4小时41分钟 20节)资料.png [493.5 KB] 13-9 使用cmake自动化构建x265.mp4 [56.7 MB] 13-14 使用build_and_install构建x265_opus_fdk-acc.mp4 [33.4 MB] 13-16 使用cmake完成ffmpeg6.0的自动化构建.mp4 [111.0 MB] 13-8 使用cmake自动化构建opus.mp4 [40.4 MB] 13-4 使用cmake分步骤手动构建SDL源码.mp4 [104.8 MB] 13-7 使用cmake自动化构建fdk-aac.mp4 [59.3 MB] 13-18 使用cmake构建xviewer支持QT.mp4 [75.5 MB] 13-11 手动构建ffmpeg6.0.mp4 [164.0 MB] 13-15 实现cmake的config_and_build函数构建x264.mp4 [72.5 MB] 13-19 使用cmake自动部署xviewer包含自动复制QT动态库.mp4 [109.1 MB] 13-17 使用cmake构建xcodec.mp4 [156.1 MB] 13-5 使用cmake自动解压SDL源码.mp4 [56.9 MB] 13-13 实现cmake的build_and_install函数构建SDL.mp4 [46.3 MB] 13-6 使用cmake自动化构建和安装SDL.mp4 [84.2 MB] 13-20 一次性自动构建和安装ffmpeg和xviewer.mp4 [68.6 MB] 13-2 cmake_msys2_vs2022环境准备.mp4 [92.4 MB] 13-1 cmake构建ffmpeg6.0和课程项目说明.mp4 [89.9 MB] 13-10 使用cmake构建x264生成并执行shell.mp4 [90.1 MB] 13-12 准备好自动化构建的目录和文件.mp4 [98.9 MB] 13-3 创建批处理自动运行vs控制台和msys2.mp4 [103.6 MB] 📁 第1章 开发环境准备和ffmpeg跨平台源码编译(2小时33分钟13节) 1-1 音视频实训课程介绍.mp4 [100.4 MB] 1-12 QT5.14安装和项目创建并切换不同的QT版本.mp4 [71.4 MB] 1-6 完成音频编码fdk-aac源码编译和安装.mp4 [34.2 MB] 1-13 章节总结和ffmpeg代码调试设置.mp4 [47.5 MB] 1-9 第一个vs2019ffmpeg项目创建和源码.mp4 [105.6 MB] 1-8 ffmpeg4.3在vs2019完成源码编译.mp4 [74.8 MB] 1-10 Linux编译x264_x265_aac.mp4 [36.5 MB] 1-2 学习引导和章节介绍必看.mp4 [54.6 MB] 1-7 完成x265源码编译和安装.mp4 [26.5 MB] 1-3 环境准备步骤说明VS2019控制台和msys2运行.mp4 [50.8 MB] 1-4 msys2使用pacman安装编译依赖工具.mp4 [68.6 MB] 1-11Linux编译ffmpeg4.3并编写测试程序.mp4 [27.9 MB] 1-5 完成x264源码编译和安装.mp4 [34.6 MB] 📁 第9章 XViewer多路H265监控录放系统0.1版本开发 (7小时43分钟 24节) 9-8 完成摄像机管理的数据的增删改模型层代码.mp4 [185.3 MB] 9-1 学习引导和章节介绍必看.mp4 [32.4 MB] 9-11 代码生成新增摄像机配置界面.mp4 [115.4 MB] 9-13 通过QListWidget拖拽实现指定播放.mp4 [100.5 MB] 9-3 XCodec封装音视频编解码和渲染的动态链接库编.mp4 [121.8 MB] 9-7 右键菜单调整预览窗口数量1_4_9_16通过t.mp4 [164.4 MB] 9-4 预览界面设计说明XViewer项目创建标.mp4 [64.9 MB] 9-24 总结和XViewer0.1编码和准备发布版本.mp4 [85.4 MB] 9-6 XViewer窗口布局设计和窗口最大化和恢复处理.mp4 [157.2 MB] 9-22 添加回放日历中的视频播放器.mp4 [117.3 MB] 9-16 定时创建新的视频文件并解决录制文件开发花屏问题.mp4 [139.4 MB] 9-10 完成相机配置读取和列表显示列表显示.mp4 [97.1 MB] 9-19 自定义日历控件显示有视频日期继承.mp4 [107.6 MB] 9-23 完成回放视频播放器的播放速度控制.mp4 [84.8 MB] 9-21 点击视频时间列表获取视频绝对路径.mp4 [62.3 MB] 9-14 通过拖拽配置完成多窗口rtsp相机的渲染.mp4 [134.8 MB] 9-17 多路相机录制界面交互功能完成.mp4 [128.6 MB] 9-2 XViewer多路H265监控录放开发项目.mp4 [91.3 MB] 9-15 多路音视频录制模块设计说明.mp4 [149.5 MB] 9-20 点击摄像机刷新日历改变有视频文件日期的背景.mp4 [149.3 MB] 9-18 回放界面设计并实现与预览界面的切换按钮.mp4 [114.4 MB] 9-12 完成摄像机管理的修改和删除功能.mp4 [103.6 MB] 9-5 XViewer窗口自定义标题_关闭_最小化按钮.mp4 [141.2 MB] 9-9 XCameraConfig持久化写入和读取文件.mp4 [66.9 MB] 📁 第11章 XViewer 0.2版本 (2小时9分钟 6节) 11-1 学习引导和章节介绍必看.mp4 [10.2 MB] 11-4 完成QT进度条显示视频播放进度.mp4 [129.4 MB] 11-2 xviewer0.2监控工具支持音视频同步播放.mp4 [221.3 MB] 11-5 完成音视频的暂停和播放.mp4 [162.1 MB] 11-3 完成QT界面设置音视频播放速度.mp4 [100.3 MB] 11-6 完成SEEK进度条控制播放进度.mp4 [149.3 MB] 适合人群 音视频开发工程师 有音视频处理需求的技术人员 学习收获 掌握FFmpeg音视频处理技术 实现音视频封装解封装 多路渲染与RTSP录制 祝您学习愉快! 学有所成,前程似锦!



![大疆维修,无人机维修教程[66.30GB]](/_next/image?url=%2Fapi%2Fuploads%2Fb6a69810-862f-479c-a529-d66880073ebc.jpg&w=1920&q=75)


