FFMPEG开发实战:从零基础到短视频上线
- ISBN:9787302651765
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:472
- 出版时间:2024-02-01
- 条形码:9787302651765 ; 978-7-302-65176-5
本书特色
由从业十余年一线资深音视频开发专家、畅销书作者倾力编撰,通俗、易学、实用,贴近开发实践。
深入浅出地介绍FFmpeg的基本概念、基础知识和高级特性,从入门到精通,适合不同层次的读者学习。
案例丰富,基本上每章都提供项目案例,全书共9个项目案例,所有项目全流程完整呈现,并给出详尽的代码实现和注解说明,直接套用即可开发出自己的应用。
涵盖内容广泛,涉及从桌面开发到移动开发,如音视频查看、播放、转换、剪辑、推拉流等内容。
内容简介
《FFmpeg开发实战:从零基础到短视频上线》是一本FFmpeg开发的实战教程,由浅入深,由基础到高级,带领读者一步一步走进音视频开发的神奇世界。全书共分为12章。其中,第1~5章是基础部分,主要讲解FFmpeg的环境搭建、FFmpeg的开发基础、FFmpeg的编解码、FFmpeg处理图像和FFmpeg处理音频;第6~10章是进阶部分,主要讲解FFmpeg加工视频、FFmpeg添加图文、FFmpeg自定义滤镜、FFmpeg混合音视频和FFmpeg播放音视频;第11和12章是平台应用部分,主要讲解FFmpeg的桌面开发和FFmpeg的移动开发。本书在讲解FFmpeg知识点的同时给出了大量实战范例,方便读者迅速将所学的知识运用到音视频开发中。通过本书的学习,读者能够掌握音视频开发的基本技术,包括音视频查看、音视频转换、音视频播放、音视频剪辑、视频推拉流等。 《FFmpeg开发实战:从零基础到短视频上线》适用于广大从事FFmpeg开发的专业人士、有志于转型FFmpeg开发的程序员以及对FFmpeg开发有兴趣的业余爱好者,也可作为大中专院校和培训机构音视频课程的教材。
目录
1.1 FFmpeg简介 1
1.1.1 FFmpeg是什么 1
1.1.2 FFmpeg的用途 1
1.1.3 FFmpeg的发展历程 2
1.2 Linux系统安装FFmpeg 2
1.2.1 Linux开发机配置要求 2
1.2.2 安装已编译的FFmpeg及其SO库 3
1.2.3 自行编译与安装FFmpeg 5
1.3 在Windows系统下安装FFmpeg 10
1.3.1 Windows开发机配置要求 10
1.3.2 安装依赖的Windows软件 10
1.3.3 安装已编译的FFmpeg及其DLL库 15
1.4 FFmpeg的开发框架 17
1.4.1 可执行程序 18
1.4.2 动态链接库 21
1.4.3 **个FFmpeg程序 23
1.5 小结 26
第 2 章 FFmpeg开发基础 27
2.1 音视频的编码标准 27
2.1.1 音视频编码的发展历程 27
2.1.2 音视频文件的封装格式 29
2.1.3 国家数字音视频标准AVS 31
2.2 FFmpeg的主要数据结构 34
2.2.1 FFmpeg的编码与封装 35
2.2.2 FFmpeg的数据包样式 37
2.2.3 FFmpeg的过滤器类型 39
2.3 FFmpeg查看音视频信息 41
2.3.1 打开与关闭音视频文件 41
2.3.2 查看音视频的信息 42
2.3.3 查看编解码器的参数 45
2.4 FFmpeg常见的处理流程 47
2.4.1 复制编解码器的参数 47
2.4.2 创建并写入音视频文件 51
2.4.3 使用滤镜加工音视频 54
2.5 小结 58
第 3 章 FFmpeg的编解码 59
3.1 音视频时间 59
3.1.1 帧率和采样率 59
3.1.2 时间基准的设定 62
3.1.3 时间戳的计算 64
3.2 分离音视频 67
3.2.1 原样复制视频文件 67
3.2.2 从视频文件剥离音频流 70
3.2.3 切割视频文件 72
3.3 合并音视频 74
3.3.1 合并视频流和音频流 74
3.3.2 对视频流重新编码 76
3.3.3 合并两个视频文件 82
3.4 视频浏览与格式分析 85
3.4.1 通用音视频播放器 86
3.4.2 视频格式分析工具 88
3.4.3 把原始的H264文件封装为MP4格式 90
3.5 小结 92
第 4 章 FFmpeg处理图像 93
4.1 YUV图像 93
4.1.1 为什么要用YUV格式 93
4.1.2 把视频帧保存为YUV文件 98
4.1.3 YUV图像浏览工具 100
4.2 JPEG图像 106
4.2.1 为什么要用JPEG格式 106
4.2.2 把视频帧保存为JPEG图片 107
4.2.3 图像转换器 110
4.3 其他图像格式 112
4.3.1 把视频帧保存为PNG图片 113
4.3.2 把视频帧保存为BMP图片 116
4.3.3 把视频保存为GIF动画 119
4.4 实战项目:图片转视频 124
4.5 小结 131
第 5 章 FFmpeg处理音频 132
5.1 PCM音频 132
5.1.1 为什么要用PCM格式 132
5.1.2 把音频流保存为PCM文件 135
5.1.3 PCM波形查看工具 139
5.2 MP3音频 142
5.2.1 为什么要用MP3格式 142
5.2.2 Linux环境集成mp3lame 144
5.2.3 把音频流保存为MP3文件 145
5.3 其他音频格式 148
5.3.1 把音频流保存为WAV文件 148
5.3.2 把音频流保存为AAC文件 152
5.3.3 音频重采样 158
5.4 实战项目:拼接两段音频 163
5.5 小结 168
第 6 章 FFmpeg加工视频 169
6.1 滤波加工 169
6.1.1 简单的视频滤镜 169
6.1.2 简单的音频滤镜 176
6.1.3 利用滤镜切割视频 182
6.1.4 给视频添加方格 185
6.2 添加特效 188
6.2.1 转换图像色度坐标 188
6.2.2 添加色彩转换特效 192 6.2.3 调整明暗对比效果 195
6.2.4 添加淡入淡出特效 197
6.3 变换方位 199
6.3.1 翻转视频的方向 199
6.3.2 缩放和旋转视频 200
6.3.3 裁剪和填充视频 202
6.4 实战项目:老电影怀旧风 204
6.5 小结 206
第 7 章 FFmpeg添加图文 207
7.1 添加图标 207
7.1.1 添加图片标志 207
7.1.2 清除图标区域 209
7.1.3 利用调色板生成GIF动画 211
7.2 添加文本 214
7.2.1 Linux环境安装FreeType 214
7.2.2 添加英文文本 216
7.2.3 添加中文文本 218
7.3 添加字幕 221
7.3.1 Linux环境安装libass 221
7.3.2 Linux安装中文字体 225
7.3.3 添加中文字幕 226
7.4 实战项目:卡拉OK音乐短片 229
7.4.1 视频字幕制作工具 229
7.4.2 制作卡拉OK字幕 233
7.5 小结 237
第 8 章 FFmpeg自定义滤镜 238
8.1 Windows环境编译FFmpeg 238
8.1.1 给FFmpeg集成x264 238
8.1.2 给FFmpeg集成avs2 241
8.1.3 给FFmpeg集成mp3lame 243
8.1.4 给FFmpeg集成FreeType 245
8.1.5 给FFmpeg集成x265 248
8.2 优化FFmpeg源码 255
8.2.1 读写音视频文件的元数据 255
8.2.2 元数据的中文乱码问题处理 258 8.2.3 修改FFmpeg源码解决乱码 262
8.3 自定义视频滤镜 265
8.3.1 添加模糊和锐化特效 265
8.3.2 视频滤镜的代码分析 267
8.3.3 自定义视频翻转滤镜 269
8.4 实战项目:侧边模糊滤镜 271
8.4.1 实现两侧模糊逻辑 271
8.4.2 集成侧边模糊滤镜 275
8.5 小结 277
第 9 章 FFmpeg混合音视频 278
9.1 多路音频 278
9.1.1 同时过滤视频和音频 278
9.1.2 利用多通道实现混音 281
9.1.3 给视频添加背景音乐 289
9.2 多路视频 293
9.2.1 通过叠加视频实现画中画 293
9.2.2 多路视频实现四宫格效果 302
9.2.3 透视两路视频的混合画面 307
9.3 转场动画 311
9.3.1 给视频添加转场动画 311
9.3.2 转场动画的代码分析 314
9.3.3 自定义斜边转场动画 317
9.4 实战项目:翻书转场动画 322
9.4.1 贝塞尔曲线实现翻页特效 322
9.4.2 集成翻书转场动画效果 326
9.5 小结 329
第 10 章 FFmpeg播放音视频 330
10.1 通过SDL播放音视频 330
10.1.1 FFmpeg集成SDL 330
10.1.2 利用SDL播放视频 335
10.1.3 利用SDL播放音频 342
10.2 FFmpeg推流和拉流 346
10.2.1 什么是推拉流 346
10.2.2 FFmpeg向网络推流 350
10.2.3 FFmpeg从网络拉流 353
10.3 SDL处理线程间同步 355
10.3.1 SDL的线程 355
10.3.2 SDL的互斥锁 357
10.3.3 SDL的信号量 360
10.4 实战项目:同步播放音视频 367
10.4.1 同步音视频的播放时钟 367
10.4.2 优化音视频的同步播放 371
10.5 小结 376
第 11 章 FFmpeg的桌面开发 377
11.1 搭建Qt开发环境 377
11.1.1 安装桌面开发工具Qt 377
11.1.2 创建一个基于C 的Qt项目 381
11.1.3 把Qt项目打包成可执行文件 383
11.2 桌面程序播放音频 385
11.2.1 给Qt工程集成FFmpeg 385
11.2.2 Qt工程使用SDL播放音频 387
11.2.3 通过QAudioSink播放音频 392
11.3 桌面程序播放视频 396
11.3.1 通过QImage播放视频 396
11.3.2 OpenGL的着色器小程序 404
11.3.3 使用OpenGL播放视频 407
11.4 实战项目:桌面影音播放器 411
11.5 小结 415
第 12 章 FFmpeg的移动开发 416
12.1 搭建Android开发环境 416
12.1.1 搭建Android的NDK开发环境 416
12.1.2 交叉编译Android需要的SO库 420
12.1.3 App工程调用FFmpeg的SO库 421
12.2 App通过FFmpeg播放音频 427
12.2.1 交叉编译时集成mp3lame 427
12.2.2 通过AudioTrack播放音频 429
12.2.3 使用OpenSL ES播放音频 432
12.3 App通过FFmpeg播放视频 439
12.3.1 交叉编译时集成x264和FreeType 439
12.3.2 通过ANativeWindow播放视频 443
12.3.3 使用OpenGL ES播放视频 449
12.4 实战项目:仿剪映的视频剪辑 455
12.5 小结 461
附录A 音视频专业术语索引 462
作者简介
欧阳燊,硕士,资深开发专家,拥有18年以上软件开发经验,对C/C 、Java、Android相关领域的开发、架构驾轻就熟,职业生涯开发过大量企业级项目,实战经验极为丰富。出版畅销书《Android Studio开发实战:从零基础到App上线》。
-
深度学习的数学
¥43.5¥69.0 -
全图解零基础word excel ppt 应用教程
¥19.0¥48.0 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0 -
贝叶斯推理与机器学习
¥139.3¥199.0