FFmpeg5.0核心技术精讲,打造自己的音视频播放器资源概述:

封面
封面

FFmpeg在音视频领域算是个绕不开的东西,基本搞这行的都得会。这门课就是想让你从不太懂或者只会一点,变成能真正用FFmpeg干活的人。课程不光是讲命令怎么敲,还会带你一步步把背后的原理搞清楚,最后自己做个能用的播放器出来。

课程分成几个阶段,从简单到复杂:

常用命令实战:

一开始先教你用FFmpeg的命令干活,比如查视频信息、录制、转格式、加滤镜、裁剪合并、图片和视频互转、直播相关的命令等等。这些命令平时工作里经常用。

C语言基础回顾:

因为FFmpeg是用C写的,如果你C不太熟,课程专门有一章帮你捡起来,讲常量变量、结构体、指针、函数、文件操作这些,还有怎么调试。还顺带讲了vim编辑器的基本用法。

多媒体文件处理:

教你用代码处理视频文件,比如怎么用Log系统、怎么删文件重命名、怎么操作目录。实战部分包括从视频里抽音频、把mp4转成flv、裁剪视频片段。最后还会留个讨论题,让你想想怎么实现类似小咖秀那种功能。

编解码和格式处理:

讲音频视频怎么编码解码,比如视频编成H264,音频编成AAC,反过来怎么解码。还有怎么把视频转成图片,怎么把图片转回视频,怎么把音频和视频合成一个文件。

播放器开发:

这部分比较关键,教你写代码让视频真正播放出来。包括用SDL(一个多媒体库)做视频渲染和音频播放,处理YUV这种视频数据,做倍速播放,处理键盘鼠标事件。然后一步步做个最简单的视频播放器,加上声音,最后实现音视频同步——就是画面和声音对得上。

滤镜特效:

讲FFmpeg的滤镜机制,怎么给视频加水印、去水印、调整速度、做各种特效。还会教你写自己的滤镜。

移动端播放器:

最后还会涉及在移动端(比如安卓)实现播放器,讲C语言和Java怎么互相调用。

适合人群:

需要有点编程基础,最好会C或C++,起码懂一门语言。如果你完全没碰过音视频,可以先去看看入门课。课程会从基础的命令开始讲,慢慢深入到代码,只要跟着一步步来,应该是能跟上的。

目录结构:

.
├── 第1章学习指南【课程提供200+问题与答案库】/
│   ├── [1.4M] 1-1课前必读(不看会错过一个亿).pdf
│   ├── [ 64M] 1-2FFmpeg5.0-课程导学.mp4
│   ├── [ 15M] 1-3音视频的应用范围与播放器架构讲解(选看).mp4
│   ├── [ 17M] 1-4什么是FFmpeg?它能做什么?(选看).mp4
│   ├── [101M] 1-5FFmpeg下载,编译与安装.mp4
│   ├── [ 41K] 1-6Windows下安装FFmpeg.pdf
│   └── [257K] 1-7FFmpeg命令大全文档.pdf
├── 第2章FFmpeg常用命令实战/
│   ├── [114M] 2-10FFmpeg直播相关的命令实战.mp4
│   ├── [ 39M] 2-1FFmpeg常用命令分类讲解.mp4
│   ├── [ 49M] 2-2FFmpeg音视频处理流程讲解.mp4
│   ├── [ 55M] 2-3FFmpeg基本信息查询命令实战.mp4
│   ├── [ 96M] 2-4FFmpeg录制命令实战.mp4
│   ├── [108M] 2-5FFmpeg分解与复用命令实战.mp4
│   ├── [ 97M] 2-6FFmpeg处理原始数据命令实战.mp4
│   ├── [ 92M] 2-7FFmpeg滤镜命令实战.mp4
│   ├── [ 91M] 2-8FFmpeg音视频的裁剪与合并命令实战.mp4
│   └── [ 86M] 2-9FFmpeg图片与视频互转实战.mp4
├── 第3章FFmpeg开发必备C语言回顾-vim讲解/
│   ├── [ 17M] 3-1FFmpeg基础开发概述.mp4
│   ├── [ 36M] 3-2vim模式及创建文件.mp4
│   └── [ 47M] 3-3vim的基本操作与光标移动.mp4
├── 第4章FFmpeg开发必备C语言回顾/
│   ├── [127M] 4-10再论C语言指针.mp4
│   ├── [172M] 4-11C语言编译器.mp4
│   ├── [121M] 4-12C语言调试器.mp4
│   ├── [ 85M] 4-1C语言Helloworld.mp4
│   ├── [100M] 4-2C语言中的常量与变量.mp4
│   ├── [ 54M] 4-3C语言中的指针-1.mp4
│   ├── [129M] 4-4C语言中的指针-2.mp4
│   ├── [ 83M] 4-5C语言结构体.mp4
│   ├── [ 66M] 4-6C语言中的if_else.mp4
│   ├── [110M] 4-7C语言中的for_while.mp4
│   ├── [ 44M] 4-8C语言中的函数.mp4
│   └── [ 65M] 4-9C语言中的文件操作.mp4
├── 第5章FFmpeg多媒体文件处理/
│   ├── [ 80M] 5-10抽取音频数据(一).mp4
│   ├── [ 96M] 5-11抽取音频数据(二).mp4
│   ├── [ 81M] 5-12抽取音频数据(三).mp4
│   ├── [ 88M] 5-13调试extra_audio程序.mp4
│   ├── [ 74M] 5-14抽取视频数据.mp4
│   ├── [124M] 5-15多媒体格式转封装(一).mp4
│   ├── [ 46M] 5-16多媒体格式转封装(二).mp4
│   ├── [ 12M] 5-17多媒体格式转封装(三).mp4
│   ├── [ 73M] 5-18视频裁剪(一).mp4
│   ├── [ 69M] 5-19视频裁剪(二).mp4
│   ├── [ 54M] 5-1FFmpeg初级开发介绍.mp4
│   ├── [ 38M] 5-20作业:ffmpeg实现小咖秀.mp4
│   ├── [ 76M] 5-2FFmpeg开发入门Log系统.mp4
│   ├── [134M] 5-3FFmpeg日志系统.mp4
│   ├── [110M] 5-4FFmpeg文件的删除与重命名.mp4
│   ├── [106M] 5-5FFmpeg操作目录及list的实现(一).mp4
│   ├── [ 46M] 5-6FFmpeg操作目录及list的实现(二).mp4
│   ├── [ 57M] 5-7FFmpeg处理流数据的基本概念.mp4
│   ├── [ 93M] 5-8搭建FFmpeg5.0开发环境.mp4
│   └── [ 56M] 5-9配置VSCode调试环境.mp4
├── 第6章FFmpeg编解码实战/
│   ├── [ 62M] 6-10生成图片(二).mp4
│   ├── [ 82M] 6-11生成带色彩的BMP图片(一).mp4
│   ├── [ 80M] 6-12生成带色彩的BMP图片(二).mp4
│   ├── [ 56M] 6-1FFmpeg中级开发介绍.mp4
│   ├── [ 66M] 6-2视频编码(一).mp4
│   ├── [ 46M] 6-3视频编码(二).mp4
│   ├── [ 62M] 6-4视频编码(三).mp4
│   ├── [102M] 6-5视频编码(四).mp4
│   ├── [ 43M] 6-6调试encode_video.mp4
│   ├── [101M] 6-7音频编码(一).mp4
│   ├── [ 87M] 6-8音频编码(二).mp4
│   └── [ 73M] 6-9生成图片(一).mp4
├── 第7章FFmpegSDL音视频渲染实战/
│   ├── [ 75M] 7-10实现PCM播放器-2.mp4
│   ├── [ 80M] 7-11实现PCM播放器-3.mp4
│   ├── [107M] 7-1SDL编译与安装.mp4
│   ├── [116M] 7-2使用SDL的基本步骤.mp4
│   ├── [145M] 7-3SDL窗口渲染.mp4
│   ├── [169M] 7-4SDL处理事件.mp4
│   ├── [ 81M] 7-5SDL彻底理解纹理渲染-1.mp4
│   ├── [ 91M] 7-6SDL彻底理解纹理渲染-2.mp4
│   ├── [185M] 7-7实现YUV播放器.mp4
│   ├── [ 39M] 7-8SDL音频处理.mp4
│   └── [ 78M] 7-9实现PCM播放器-1.mp4
├── 第8章FFmpeg播放器核心功能开发/
│   ├── [ 84M] 8-10获取音频并解码(一).mp4
│   ├── [ 73M] 8-11获取音频并解码(二).mp4
│   ├── [ 67M] 8-12获取音频并解码(三).mp4
│   ├── [ 64M] 8-13调试SimplePlayer2.0.mp4
│   ├── [ 36M] 8-14你必须清楚的多线程与锁.mp4
│   ├── [ 62M] 8-15锁与条件变量的实际应用.mp4
│   ├── [ 40M] 8-16播放器内核线程模型讲解.mp4
│   ├── [ 73M] 8-17播放器核心结构体讲解.mp4
│   ├── [ 72M] 8-18播放器线程退出机制讲解.mp4
│   ├── [ 57M] 8-19音视频同步的基本概念及原理讲解.mp4
│   ├── [ 94M] 8-20一个真正的播放器(一).mp4
│   ├── [109M] 8-21一个真正的播放器(二).mp4
│   ├── [ 76M] 8-22一个真正的播放器(三).mp4
│   ├── [ 77M] 8-2最简单的视频播放器(二).mp4
│   ├── [ 78M] 8-3最简单的视频播放器(三).mp4
│   ├── [ 80M] 8-4最简单的视频播放器(四).mp4
│   ├── [ 38M] 8-5最简单的视频播放器(五).mp4
│   ├── [118M] 8-6解复用音视频数据.mp4
│   ├── [ 39M] 8-7为音频设备设置参数.mp4
│   ├── [ 83M] 8-8AVPacket队列实现(一).mp4
│   └── [ 89M] 8-9AVPacket队列实现(二).mp4
└── 第9章如何在Android下使用FFmpeg/
├── [152M] 9-1第一个JNI程序.mp4
├── [142M] 9-2Java调用C接口-1.mp4
├── [172M] 9-3Java调用C方法-2.mp4
├── [ 39M] 9-4JNI中的Signature.mp4
├── [114M] 9-5C调Java的方法.mp4
├── [125M] 9-6编译android下可以使用的ffmpeg「通过生成工具链.mp4
├── [158M] 9-7编译Android下可使用的ffmpeg「不生成工具链方式.mp4
└── [108M] 9-8实战-Android下的播放器.mp4
├── 第10章如何在IOS下使用FFmpeg/
│   ├── [101M] 10-1编译iOS下可使用的FFmpeg.mp4
│   └── [ 87M] 10-2iOS中使用FFmpeg.mp4
├── 第11章滤镜Filter的核心原理及实现/
│   ├── [ 78M] 11-10如何使用filter-读取数据.mp4
│   ├── [ 68M] 11-11如何使用filter-获取原始数据.mp4
│   ├── [ 88M] 11-12如何使用filter-滤镜处理.mp4
│   ├── [ 92M] 11-13如何使用filter-输出数据.mp4
│   ├── [136M] 11-14如何使用filter-代码优化.mp4
│   ├── [178M] 11-15如何实现自己的filter.mp4
│   ├── [114M] 11-16实现filter需要知道的几个重要结构体.mp4
│   ├── [112M] 11-17drawboxfilter的实现分析-1.mp4
│   ├── [ 68M] 11-18drawboxfilter的实现分析-2.mp4
│   ├── [ 47M] 11-1filter的核心原理.mp4
│   ├── [159M] 11-2通过命令行使用filter.mp4
│   ├── [ 96M] 11-3在项目中引入avfilter库.mp4
│   ├── [153M] 11-4使用filter的具体步骤-1.mp4
│   ├── [ 70M] 11-5使用filter的具体步骤-2.mp4
│   ├── [ 43M] 11-6初始化filter的原理.mp4
│   ├── [128M] 11-8初始化filter实战-2.mp4
│   └── [ 99M] 11-9优化init_filter函数.mp4
├── 第12章课程总结/
│   ├── [ 35M] 12-1课程总结.mp4
│   └── [ 33M] 12-2音视频进阶学习建议与行业痛点分析.mp4
└── 资料代码/

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。