FFmpeg开发实战:从零基础到短视频上线

FFmpeg开发实战:从零基础到短视频上线

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

一本FFmpeg开发的实战教程。

内容简介

全书共分为12章。其中,第1~5章是基础部分,主要讲解FFmpeg的环境搭建、FFmpeg的开发基础、FFmpeg的编解码、FFmpeg处理图像和FFmpeg处理音频;第6~10章是进阶部分,主要讲解FFmpeg加工视频、FFmpeg添加图文、FFmpeg自定义滤镜、FFmpeg混合音视频和FFmpeg播放音视频;第11和12章是平台应用部分,主要讲解FFmpeg的桌面开发和FFmpeg的移动开发。

本书在讲解FFmpeg知识点的同时给出了大量实战范例,方便读者迅速将所学的知识运用到音视频开发中。通过本书的学习,读者能够掌握音视频开发的基本技术,包括音视频查看、音视频转换、音视频播放、音视频剪辑、视频推拉流等。

作者简介

编著者欧阳燊,硕士,资深开发专家,拥有18年以上软件开发经验,对C/C、Java、Android相关领域的开发、架构驾轻就熟,职业生涯开发过大量企业级项目,实战经验极为丰富。

章节目录

版权信息

内容简介

前言

第1章 FFmpeg环境搭建

1.1 FFmpeg简介

1.1.1 FFmpeg是什么

1.1.2 FFmpeg的用途

1.1.3 FFmpeg的发展历程

1.2 Linux系统安装FFmpeg

1.2.1 Linux开发机配置要求

1.2.2 安装已编译的FFmpeg及其SO库

1.2.3 自行编译与安装FFmpeg

1.3 在Windows系统下安装FFmpeg

1.3.1 Windows开发机配置要求

1.3.2 安装依赖的Windows软件

1.3.3 安装已编译的FFmpeg及其DLL库

1.4 FFmpeg的开发框架

1.4.1 可执行程序

1.4.2 动态链接库

1.4.3 第一个FFmpeg程序

1.5 小结

第2章 FFmpeg开发基础

2.1 音视频的编码标准

2.1.1 音视频编码的发展历程

2.1.2 音视频文件的封装格式

2.1.3 国家数字音视频标准AVS

2.2 FFmpeg的主要数据结构

2.2.1 FFmpeg的编码与封装

2.2.2 FFmpeg的数据包样式

2.2.3 FFmpeg的过滤器类型

2.3 FFmpeg查看音视频信息

2.3.1 打开与关闭音视频文件

2.3.2 查看音视频的信息

2.3.3 查看编解码器的参数

2.4 FFmpeg常见的处理流程

2.4.1 复制编解码器的参数

2.4.2 创建并写入音视频文件

2.4.3 使用滤镜加工音视频

2.5 小结

第3章 FFmpeg的编解码

3.1 音视频时间

3.1.1 帧率和采样率

3.1.2 时间基准的设定

3.1.3 时间戳的计算

3.2 分离音视频

3.2.1 原样复制视频文件

3.2.2 从视频文件剥离音频流

3.2.3 切割视频文件

3.3 合并音视频

3.3.1 合并视频流和音频流

3.3.2 对视频流重新编码

3.3.3 合并两个视频文件

3.4 视频浏览与格式分析

3.4.1 通用音视频播放器

3.4.2 视频格式分析工具

3.4.3 把原始的H264文件封装为MP4格式

3.5 小结

第4章 FFmpeg处理图像

4.1 YUV图像

4.1.1 为什么要用YUV格式

4.1.2 把视频帧保存为YUV文件

4.1.3 YUV图像浏览工具

4.2 JPEG图像

4.2.1 为什么要用JPEG格式

4.2.2 把视频帧保存为JPEG图片

4.2.3 图像转换器

4.3 其他图像格式

4.3.1 把视频帧保存为PNG图片

4.3.2 把视频帧保存为BMP图片

4.3.3 把视频保存为GIF动画

4.4 实战项目:图片转视频

4.5 小结

第5章 FFmpeg处理音频

5.1 PCM音频

5.1.1 为什么要用PCM格式

5.1.2 把音频流保存为PCM文件

5.1.3 PCM波形查看工具

5.2 MP3音频

5.2.1 为什么要用MP3格式

5.2.2 Linux环境集成mp3lame

5.2.3 把音频流保存为MP3文件

5.3 其他音频格式

5.3.1 把音频流保存为WAV文件

5.3.2 把音频流保存为AAC文件

5.3.3 音频重采样

5.4 实战项目:拼接两段音频

5.5 小结

第6章 FFmpeg加工视频

6.1 滤波加工

6.1.1 简单的视频滤镜

6.1.2 简单的音频滤镜

6.1.3 利用滤镜切割视频

6.1.4 给视频添加方格

6.2 添加特效

6.2.1 转换图像色度坐标

6.2.2 添加色彩转换特效

6.2.3 调整明暗对比效果

6.2.4 添加淡入淡出特效

6.3 变换方位

6.3.1 翻转视频的方向

6.3.2 缩放和旋转视频

6.3.3 裁剪和填充视频

6.4 实战项目:老电影怀旧风

6.5 小结

第7章 FFmpeg添加图文

7.1 添加图标

7.1.1 添加图片标志

7.1.2 清除图标区域

7.1.3 利用调色板生成GIF动画

7.2 添加文本

7.2.1 Linux环境安装FreeType

7.2.2 添加英文文本

7.2.3 添加中文文本

7.3 添加字幕

7.3.1 Linux环境安装libass

7.3.2 Linux安装中文字体

7.3.3 添加中文字幕

7.4 实战项目:卡拉OK音乐短片

7.4.1 视频字幕制作工具

7.4.2 制作卡拉OK字幕

7.5 小结

第8章 FFmpeg自定义滤镜

8.1 Windows环境编译FFmpeg

8.1.1 给FFmpeg集成x264

8.1.2 给FFmpeg集成avs2

8.1.3 给FFmpeg集成mp3lame

8.1.4 给FFmpeg集成FreeType

8.1.5 给FFmpeg集成x265

8.2 优化FFmpeg源码

8.2.1 读写音视频文件的元数据

8.2.2 元数据的中文乱码问题处理

8.2.3 修改FFmpeg源码解决乱码

8.3 自定义视频滤镜

8.3.1 添加模糊和锐化特效

8.3.2 视频滤镜的代码分析

8.3.3 自定义视频翻转滤镜

8.4 实战项目:侧边模糊滤镜

8.4.1 实现两侧模糊逻辑

8.4.2 集成侧边模糊滤镜

8.5 小结

第9章 FFmpeg混合音视频

9.1 多路音频

9.1.1 同时过滤视频和音频

9.1.2 利用多通道实现混音

9.1.3 给视频添加背景音乐

9.2 多路视频

9.2.1 通过叠加视频实现画中画

9.2.2 多路视频实现四宫格效果

9.2.3 透视两路视频的混合画面

9.3 转场动画

9.3.1 给视频添加转场动画

9.3.2 转场动画的代码分析

9.3.3 自定义斜边转场动画

9.4 实战项目:翻书转场动画

9.4.1 贝塞尔曲线实现翻页特效

9.4.2 集成翻书转场动画效果

9.5 小结

第10章 FFmpeg播放音视频

10.1 通过SDL播放音视频

10.1.1 FFmpeg集成SDL

10.1.2 利用SDL播放视频

10.1.3 利用SDL播放音频

10.2 FFmpeg推流和拉流

10.2.1 什么是推拉流

10.2.2 FFmpeg向网络推流

10.2.3 FFmpeg从网络拉流

10.3 SDL处理线程间同步

10.3.1 SDL的线程

10.3.2 SDL的互斥锁

10.3.3 SDL的信号量

10.4 实战项目:同步播放音视频

10.4.1 同步音视频的播放时钟

10.4.2 优化音视频的同步播放

10.5 小结

第11章 FFmpeg的桌面开发

11.1 搭建Qt开发环境

11.1.1 安装桌面开发工具Qt

11.1.2 创建一个基于C++的Qt项目

11.1.3 把Qt项目打包成可执行文件

11.2 桌面程序播放音频

11.2.1 给Qt工程集成FFmpeg

11.2.2 Qt工程使用SDL播放音频

11.2.3 通过QAudioSink播放音频

11.3 桌面程序播放视频

11.3.1 通过QImage播放视频

11.3.2 OpenGL的着色器小程序

11.3.3 使用OpenGL播放视频

11.4 实战项目:桌面影音播放器

11.5 小结

第12章 FFmpeg的移动开发

12.1 搭建Android开发环境

12.1.1 搭建Android的NDK开发环境

12.1.2 交叉编译Android需要的SO库

12.1.3 App工程调用FFmpeg的SO库

12.2 App通过FFmpeg播放音频

12.2.1 交叉编译时集成mp3lame

12.2.2 通过AudioTrack播放音频

12.2.3 使用OpenSL ES播放音频

12.3 App通过FFmpeg播放视频

12.3.1 交叉编译时集成x264和FreeType

12.3.2 通过ANativeWindow播放视频

12.3.3 使用OpenGL ES播放视频

12.4 实战项目:仿剪映的视频剪辑

12.5 小结

附录A 音视频专业术语索引

FFmpeg开发实战:从零基础到短视频上线是2024年由清华大学出版社出版,作者欧阳燊 编著。

得书感谢您对《FFmpeg开发实战:从零基础到短视频上线》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Python爬虫开发 从入门到实战(微课版) 电子书
基于Python 3.X讲解,从入门到实战,全面讲解Python爬虫技术。全书重点难点附带微课讲解,书网融合互动学习。
30天App开发从0到1:APICloud移动开发实战 电子书
本书围绕APICloud平台,全面、系统、细致地讲述了App开发的相关内容,涉及平台工作原理、内部实现机制和应用开发技巧。本书涵盖了APICloud应用开发的知识,包括基础知识、关键技术、开发技巧和行业方案,并从实践角度出发,通过大量的实例代码、详细的操作步骤和丰富的开发截图,帮助开发人员迅速掌握APICloud应用开发,有能力制作出好的App。本书是APICloud开发人员的入门指南,并配有免费
Python Django开发实战(视频讲解版) 电子书
本书基于Django2.0,较为全面地介绍了Django应用的开发过程、Django核心模块的实现原理以及部署应用的相关技巧。全书共14章,第1章到第3章对Django框架以及开发环境配置、项目框架搭建进行了介绍;第4章到第13章使用Django内置的核心模块完成了应用的开发,并对各个模块的实现原理进行了分析,包括ORM实现原理、模板系统实现原理、路由系统实现原理、信号工作原理等;第14章介绍了部
Java 开发从入门到精通 电子书
本书由浅入深地详细讲解了Java的开发技术,并通过具体实例的实现过程演练了各个知识点的具体使用流程。本书共20章,第1~2章讲解了Java技术的基础知识,包括Java印象和首段Java程序;第3~9章分别讲解了Java语法、条件语句、循环语句、数组、面向对象等知识,这些内容都是Java开发技术的核心知识;第10~14章分别讲解了集合、类库、泛型、异常处理、I/O和文件处理的基本知识,这些内容是Ja
从零开始——PHP网页开发基础 电子书
本书侧重于PHP基础知识和应用方法的讲解,涵盖PHP基本语法、流程控制、PHP函数、PHP数组、PHP字符串、PHP正则表达式、日期与时间开发方法、错误日志处理等日常工作中必备的开发知识。