商品详情
书名:FFmpeg 音视频开发基础与实战
定价:108.0
ISBN:9787121425554
作者:无
版次:第1版
出版时间:2022-01
内容提要:
全书内容分为三部分,共15 章。第1~6 章为**部分,主要讲解音视频开发的基础知识,简要介绍音视频技术的发展背景,以及主流的音视频压缩编码算法、音视频容器格式和网络流媒体协议等。第7~9章为第二部分,主要讲解命令行工具ffmpeg、ffprobe 和ffplay 的使用方法,包括如何使用这些工具进行视频播放、格式检测、编转码、格式转换和流媒体推拉流等操作;第10~15 章为第三部分,主要讲解基于FFmpeg SDK 的开发实战,主要介绍如何在工程中调用libavcodec 和libavformat 等库提供的接口实现音视频处理的相关功能。本书适合从事音视频编解码、多媒体应用开发和流媒体技术的初、中级开发者,以及各大院校学生阅读,也适合有一定经验的开发人员参考使用。
作者简介:
殷汶杰,2013年毕业于上海大学信息与通信工程学院,主要研究方向为视频压缩编码、流媒体技术,其间发表了多篇高水平学术论文。具有多家一线互联网上市公司、世界五百强企业与行业独角兽公司的核心开发工作经验,成功申请了多项专利(其中一项国际专利)。发表了数百篇技术博客,并发布了多个线上教学课程,在行业内具有较强的技术影响力。
目录:
**部分 基础知识
第1 章 音视频技术概述 ................................................................................................. 2
1.1 音视频信息与多媒体系统 .................................................................................... 2
1.1.1 信息传输系统的发展 ................................................................................. 2
1.1.2 信息时代的音视频技术 ............................................................................. 4
1.1.3 音视频技术的未来展望 ............................................................................. 5
1.2 典型的音视频与多媒体系统结构 ........................................................................ 6
1.2.1 视频点播 ..................................................................................................... 7
1.2.2 视频直播 ..................................................................................................... 8
1.2.3 安防监控 ..................................................................................................... 9
1.2.4 视频会议 ..................................................................................................... 9
第2 章 图像、像素与颜色空间 ..................................................................................... 11
2.1 图像与像素 .......................................................................................................... 11
2.2 图像的位深与颜色空间 ...................................................................................... 12
2.2.1 图像的位深 ............................................................................................... 12
2.2.2 图像的颜色空间 ....................................................................................... 14
2.3 图像压缩编码 ...................................................................................................... 15
2.3.1 图像压缩算法分类 ................................................................................... 16
2.3.2 图像压缩基本算法 ................................................................................... 16
2.3.3 常见的图像压缩编码格式 ....................................................................... 20
第3 章 视频压缩编码 .................................................................................................. 22
3.1 视频压缩编码的基础知识 .................................................................................. 22
3.1.1 视频信息的数字化表示 ........................................................................... 22
3.1.2 常用的视频格式与分辨率 ....................................................................... 24
3.1.3 对视频数据压缩编码的原因.................................................................... 24
3.2 视频压缩编码标准的发展历程 .......................................................................... 24
3.3 视频压缩编码的基本原理 .................................................................................. 25
3.3.1 视频数据中的冗余信息 ........................................................................... 25
3.3.2 预测编码 ................................................................................................... 26
3.3.3 变换编码 ................................................................................................... 27
3.3.4 熵编码 ....................................................................................................... 28
3.4 视频编码标准H.264 ........................................................................................... 28
3.4.1 H.264 简介 ................................................................................................ 28
3.4.2 H.264 的框架 ............................................................................................ 28
3.4.3 H.264 的基本算法 ..................................................................................... 30
3.5 高效视频编码标准H.265.................................................................................... 33
3.5.1 H.265 简介 ................................................................................................ 33
3.5.2 H.265 的框架 ............................................................................................ 33
3.5.3 H.265 的基本算法 ..................................................................................... 35
第4 章 音频压缩编码 .................................................................................................. 42
4.1 音频压缩编码的基础知识 .................................................................................. 42
4.1.1 声音信息的概念 ....................................................................................... 42
4.1.2 声音信息的基本要素 ............................................................................... 42
4.2 音频信息采样与数字化 ...................................................................................... 43
4.2.1 模拟音频 ................................................................................................... 43
4.2.2 数字音频 ................................................................................................... 44
4.2.3 采样和量化 ............................................................................................... 44
4.3 脉冲编码调制 ...................................................................................................... 46
4.3.1 PCM 量化区间分割 .................................................................................. 46
4.3.2 PCM 量化编码规则 .................................................................................. 49
4.4 MP3 格式与MP3 编码标准 ................................................................................ 51
4.4.1 MP3 格式 ................................................................................................... 52
4.4.2 MP3 编码标准 ........................................................................................... 62
4.5 AAC 格式与AAC 编码标准 ............................................................................... 67
4.5.1 AAC 格式 .................................................................................................. 67
4.5.2 AAC 编码标准 .......................................................................................... 72
第5 章 音视频文件容器和封装格式 ............................................................................. 74
5.1 概述 ...................................................................................................................... 74
5.2 FLV 格式 .............................................................................................................. 75
5.2.1 FLV 文件结构 ........................................................................................... 75
5.2.2 FLV 文件头 ............................................................................................... 76
5.2.3 FLV 标签 ................................................................................................... 77
5.3 MPEG-TS 格式 .................................................................................................... 84
5.3.1 信息包头 ................................................................................................... 84
5.3.2 PES 包结构 ............................................................................................... 85
5.3.3 PSI 结构 ..................................................................................................... 87
5.4 MP4 格式 ............................................................................................................. 88
5.4.1 MP4 格式简介 ........................................................................................... 88
5.4.2 ISO 协议族 ................................................................................................ 89
5.4.3 MP4 封装格式 ........................................................................................... 89
5.4.4 Box 类型 .................................................................................................... 90
5.4.5 MP4 文件结构 ........................................................................................... 92
5.4.6 构建视频流的播放时间轴 ....................................................................... 98
第6 章 音视频流媒体协议 ......................................................................................... 104
6.1 网络协议模型 .................................................................................................... 105
6.1.1 ISO/OSI 模型结构 .................................................................................. 105
6.1.2 TCP/IP 模型结构 .................................................................................... 106
6.2 网络流媒体协议——RTMP .............................................................................. 120
6.2.1 RTMP 的概念 .......................................................................................... 120
6.2.2 RTMP 分块与块流 .................................................................................. 121
6.2.3 RTMP 信息格式 ...................................................................................... 126
6.2.4 RTMP 信息与命令 .................................................................................. 129
6.3 网络流媒体协议——HLS 协议 ........................................................................ 136
6.3.1 HLS 协议的概念 ..................................................................................... 136
6.3.2 HLS 直播流媒体系统结构 ..................................................................... 136
6.3.3 HLS 索引文件格式 ................................................................................. 138
第二部分 命令行工具
第7 章 FFmpeg 的基本操作 ...................................................................................... 144
7.1 FFmpeg 概述 ...................................................................................................... 144
7.1.1 各个编译类型的区别 ............................................................................. 145
7.1.2 编译FFmpeg 源代码 .............................................................................. 148
7.2 ffplay 的基本使用方法 ...................................................................................... 155
7.2.1 显示ffplay 版本 ...................................................................................... 155
7.2.2 显示编译选项 ......................................................................................... 156
7.2.3 设置日志级别 ......................................................................................... 156
7.2.4 全屏播放 ................................................................................................. 158
7.2.5 指定输入视频的宽、高和帧率 .............................................................. 158
7.2.6 禁用音频流、视频流和字幕流 .............................................................. 158
7.2.7 指定播放的起始时间和时长.................................................................. 159
7.2.8 指定播放音量 ......................................................................................... 159
7.2.9 设置播放窗口 ......................................................................................... 159
7.3 ffprobe 的基本使用方法 .................................................................................... 159
7.3.1 显示详细的封装格式信息 ..................................................................... 160
7.3.2 显示每一路媒体流信息 ......................................................................... 161
7.3.3 显示每一个码流包的信息 ..................................................................... 164
7.3.4 显示媒体流和码流包的负载信息 .......................................................... 165
7.3.5 显示每一帧图像的信息 ......................................................................... 167
7.3.6 指定检测信息的输出格式 ..................................................................... 169
7.4 ffmpeg 的基本使用方法 .................................................................................... 175
7.4.1 显示版本和编译配置信息 ..................................................................... 176
7.4.2 显示支持的解复用器格式 ..................................................................... 177
7.4.3 显示支持的复用器格式 ......................................................................... 179
7.4.4 显示支持的所有输入格式和输出格式 .................................................. 181
7.4.5 显示支持的解码器 ................................................................................. 183
7.4.6 显示支持的编码器 ................................................................................. 184
7.4.7 显示支持的媒体协议 ............................................................................. 186
7.4.8 显示支持的硬件加速框架 ..................................................................... 188
7.4.9 ffmpeg 封装格式转换 ............................................................................. 188
7.4.10 视频的解码和编码 ............................................................................... 193
7.4.11 从视频中截取图像 ................................................................................ 206
7.4.12 ffmpeg 视频转码 ................................................................................... 207
第8 章 滤镜图 ........................................................................................................... 209
8.1 ffmpeg 音视频滤镜 ............................................................................................ 209
8.1.1 简单滤镜图 ............................................................................................. 209
8.1.2 复合滤镜图 ............................................................................................. 210
8.1.3 ffmpeg 支持的滤镜列表 ......................................................................... 211
8.2 简单滤镜图的应用 ............................................................................................ 212
8.2.1 常用的视频编辑简单滤镜图.................................................................. 212
8.2.2 常用的音频编辑简单滤镜图.................................................................. 227
8.3 复合滤镜图的应用 ............................................................................................ 230
8.3.1 常用的视频编辑复合滤镜图.................................................................. 230
8.3.2 常用的音频编辑复合滤镜图.................................................................. 234
第9 章 流媒体应用 .................................................................................................... 236
9.1 构建SRS 流媒体服务 ....................................................................................... 236
9.1.1 部署RTMP 流媒体服务 ......................................................................... 238
9.1.2 部署HLS 流媒体服务 ............................................................................ 240
9.1.3 部署HTTP-FLV 流媒体服务 ................................................................. 241
9.2 构建Nginx RTMP 流媒体服务 ......................................................................... 241
9.2.1 Nginx 的编译和部署 .............................................................................. 242
9.2.2 Nginx 的流媒体模块nginx-rtmp-module .............................................. 246
第三部分 开发实战
第10 章 FFmpeg SDK 的使用................................................................................... 254
10.1 使用CMake 构建工程 ..................................................................................... 255
10.1.1 使用CMake 构建Hello World 工程 .................................................... 255
10.1.2 在工程中编译并输出多个文件 ............................................................ 257
10.1.3 在工程中添加头文件和源文件目录 .................................................... 259
10.1.4 在工程中引入动态库 ........................................................................... 262
10.2 FFmpeg SDK 基本使用方法示例:获取目录下的文件信息 ....................... 264
10.2.1 显示指定目录信息 ............................................................................... 264
10.2.2 解析API 和结构体 ............................................................................... 266
第11 章 使用FFmpeg SDK 进行视频编解码 ............................................................ 269
11.1 libavcodec 视频编码 ........................................................................................ 269
11.1.1 主函数与数据I/O 实现 ........................................................................ 269
11.1.2 视频编码器初始化 ................................................................................ 272
11.1.3 编码循环体............................................................................................ 284
11.1.4 关闭编码器............................................................................................ 289
11.1.5 FFmpeg 视频编码延迟分析 ................................................................. 290
11.2 libavcodec 视频解码 ........................................................................................ 294
11.2.1 主函数实现............................................................................................ 294
11.2.2 视频解码器初始化 ................................................................................ 295
11.2.3 解码循环体............................................................................................ 297
11.2.4 关闭解码器............................................................................................ 304
第12 章 使用FFmpeg SDK 进行音频编解码 ............................................................ 306
12.1 libavcodec 音频编码 ........................................................................................ 306
目录 ∣ XIII
12.1.1 主函数实现 ........................................................................................... 306
12.1.2 音频编码器初始化 ............................................................................... 307
12.1.3 编码循环体 ........................................................................................... 310
12.1.4 关闭编码器 ........................................................................................... 313
12.2 libavcodec 音频解码 ........................................................................................ 315
12.2.1 主函数实现 ........................................................................................... 315
12.2.2 音频解码器初始化 ............................................................................... 316
12.2.3 解码循环体 ........................................................................................... 318
12.2.4 关闭解码器 ........................................................................................... 324
第13 章 使用FFmpeg SDK 进行音视频文件的解封装与封装 ................................... 326
13.1 音视频文件的解封装 ...................................................................................... 326
13.1.1 主函数实现 ........................................................................................... 326
13.1.2 解复用器初始化 ................................................................................... 327
13.1.3 循环读取码流包数据 ........................................................................... 335
13.1.4 释放解复用器和解码器 ....................................................................... 338
13.1.5 主函数的整体实现 ............................................................................... 339
13.2 音频流与视频流文件的封装 .......................................................................... 340
13.2.1 主函数实现 ........................................................................................... 340
13.2.2 音视频流复用器的初始化.................................................................... 341
13.2.3 复用音频流和视频流 ........................................................................... 348
13.2.4 释放复用器实例 ................................................................................... 353
第14 章 使用FFmpeg SDK 添加视频滤镜和音频滤镜 .............................................. 355
14.1 视频滤镜 .......................................................................................................... 355
14.1.1 主函数实现 ........................................................................................... 355
14.1.2 视频滤镜初始化 ................................................................................... 356
14.1.3 循环编辑视频帧 ................................................................................... 365
14.1.4 销毁视频滤镜 ....................................................................................... 368
14.2 音频滤镜 .......................................................................................................... 370
14.2.1 主函数框架 ........................................................................................... 370
14.2.2 音频滤镜初始化 ................................................................................... 371
14.2.3 循环编辑音频帧 ................................................................................... 380
14.2.4 销毁音频滤镜 ....................................................................................... 381
第15 章 使用FFmpeg SDK 进行视频图像转换与音频重采样 ................................... 383
15.1 视频图像转换 .................................................................................................. 383
15.1.1 主函数实现 ........................................................................................... 383
15.1.2 视频格式转换初始化 ........................................................................... 384
15.1.3 视频的图像帧循环转换 ....................................................................... 388
15.1.4 视频格式转换结构的销毁和释放 ........................................................ 390
15.2 音频重采样 ...................................................................................................... 391
15.2.1 主函数实现 ........................................................................................... 392
15.2.2 音频重采样初始化 ............................................................................... 392
15.2.3 对音频帧循环重采样 ........................................................................... 397
15.2.4 音频重采样结构的销毁和释放 ............................................................ 400
定价:108.0
ISBN:9787121425554
作者:无
版次:第1版
出版时间:2022-01
内容提要:
全书内容分为三部分,共15 章。第1~6 章为**部分,主要讲解音视频开发的基础知识,简要介绍音视频技术的发展背景,以及主流的音视频压缩编码算法、音视频容器格式和网络流媒体协议等。第7~9章为第二部分,主要讲解命令行工具ffmpeg、ffprobe 和ffplay 的使用方法,包括如何使用这些工具进行视频播放、格式检测、编转码、格式转换和流媒体推拉流等操作;第10~15 章为第三部分,主要讲解基于FFmpeg SDK 的开发实战,主要介绍如何在工程中调用libavcodec 和libavformat 等库提供的接口实现音视频处理的相关功能。本书适合从事音视频编解码、多媒体应用开发和流媒体技术的初、中级开发者,以及各大院校学生阅读,也适合有一定经验的开发人员参考使用。
作者简介:
殷汶杰,2013年毕业于上海大学信息与通信工程学院,主要研究方向为视频压缩编码、流媒体技术,其间发表了多篇高水平学术论文。具有多家一线互联网上市公司、世界五百强企业与行业独角兽公司的核心开发工作经验,成功申请了多项专利(其中一项国际专利)。发表了数百篇技术博客,并发布了多个线上教学课程,在行业内具有较强的技术影响力。
目录:
**部分 基础知识
第1 章 音视频技术概述 ................................................................................................. 2
1.1 音视频信息与多媒体系统 .................................................................................... 2
1.1.1 信息传输系统的发展 ................................................................................. 2
1.1.2 信息时代的音视频技术 ............................................................................. 4
1.1.3 音视频技术的未来展望 ............................................................................. 5
1.2 典型的音视频与多媒体系统结构 ........................................................................ 6
1.2.1 视频点播 ..................................................................................................... 7
1.2.2 视频直播 ..................................................................................................... 8
1.2.3 安防监控 ..................................................................................................... 9
1.2.4 视频会议 ..................................................................................................... 9
第2 章 图像、像素与颜色空间 ..................................................................................... 11
2.1 图像与像素 .......................................................................................................... 11
2.2 图像的位深与颜色空间 ...................................................................................... 12
2.2.1 图像的位深 ............................................................................................... 12
2.2.2 图像的颜色空间 ....................................................................................... 14
2.3 图像压缩编码 ...................................................................................................... 15
2.3.1 图像压缩算法分类 ................................................................................... 16
2.3.2 图像压缩基本算法 ................................................................................... 16
2.3.3 常见的图像压缩编码格式 ....................................................................... 20
第3 章 视频压缩编码 .................................................................................................. 22
3.1 视频压缩编码的基础知识 .................................................................................. 22
3.1.1 视频信息的数字化表示 ........................................................................... 22
3.1.2 常用的视频格式与分辨率 ....................................................................... 24
3.1.3 对视频数据压缩编码的原因.................................................................... 24
3.2 视频压缩编码标准的发展历程 .......................................................................... 24
3.3 视频压缩编码的基本原理 .................................................................................. 25
3.3.1 视频数据中的冗余信息 ........................................................................... 25
3.3.2 预测编码 ................................................................................................... 26
3.3.3 变换编码 ................................................................................................... 27
3.3.4 熵编码 ....................................................................................................... 28
3.4 视频编码标准H.264 ........................................................................................... 28
3.4.1 H.264 简介 ................................................................................................ 28
3.4.2 H.264 的框架 ............................................................................................ 28
3.4.3 H.264 的基本算法 ..................................................................................... 30
3.5 高效视频编码标准H.265.................................................................................... 33
3.5.1 H.265 简介 ................................................................................................ 33
3.5.2 H.265 的框架 ............................................................................................ 33
3.5.3 H.265 的基本算法 ..................................................................................... 35
第4 章 音频压缩编码 .................................................................................................. 42
4.1 音频压缩编码的基础知识 .................................................................................. 42
4.1.1 声音信息的概念 ....................................................................................... 42
4.1.2 声音信息的基本要素 ............................................................................... 42
4.2 音频信息采样与数字化 ...................................................................................... 43
4.2.1 模拟音频 ................................................................................................... 43
4.2.2 数字音频 ................................................................................................... 44
4.2.3 采样和量化 ............................................................................................... 44
4.3 脉冲编码调制 ...................................................................................................... 46
4.3.1 PCM 量化区间分割 .................................................................................. 46
4.3.2 PCM 量化编码规则 .................................................................................. 49
4.4 MP3 格式与MP3 编码标准 ................................................................................ 51
4.4.1 MP3 格式 ................................................................................................... 52
4.4.2 MP3 编码标准 ........................................................................................... 62
4.5 AAC 格式与AAC 编码标准 ............................................................................... 67
4.5.1 AAC 格式 .................................................................................................. 67
4.5.2 AAC 编码标准 .......................................................................................... 72
第5 章 音视频文件容器和封装格式 ............................................................................. 74
5.1 概述 ...................................................................................................................... 74
5.2 FLV 格式 .............................................................................................................. 75
5.2.1 FLV 文件结构 ........................................................................................... 75
5.2.2 FLV 文件头 ............................................................................................... 76
5.2.3 FLV 标签 ................................................................................................... 77
5.3 MPEG-TS 格式 .................................................................................................... 84
5.3.1 信息包头 ................................................................................................... 84
5.3.2 PES 包结构 ............................................................................................... 85
5.3.3 PSI 结构 ..................................................................................................... 87
5.4 MP4 格式 ............................................................................................................. 88
5.4.1 MP4 格式简介 ........................................................................................... 88
5.4.2 ISO 协议族 ................................................................................................ 89
5.4.3 MP4 封装格式 ........................................................................................... 89
5.4.4 Box 类型 .................................................................................................... 90
5.4.5 MP4 文件结构 ........................................................................................... 92
5.4.6 构建视频流的播放时间轴 ....................................................................... 98
第6 章 音视频流媒体协议 ......................................................................................... 104
6.1 网络协议模型 .................................................................................................... 105
6.1.1 ISO/OSI 模型结构 .................................................................................. 105
6.1.2 TCP/IP 模型结构 .................................................................................... 106
6.2 网络流媒体协议——RTMP .............................................................................. 120
6.2.1 RTMP 的概念 .......................................................................................... 120
6.2.2 RTMP 分块与块流 .................................................................................. 121
6.2.3 RTMP 信息格式 ...................................................................................... 126
6.2.4 RTMP 信息与命令 .................................................................................. 129
6.3 网络流媒体协议——HLS 协议 ........................................................................ 136
6.3.1 HLS 协议的概念 ..................................................................................... 136
6.3.2 HLS 直播流媒体系统结构 ..................................................................... 136
6.3.3 HLS 索引文件格式 ................................................................................. 138
第二部分 命令行工具
第7 章 FFmpeg 的基本操作 ...................................................................................... 144
7.1 FFmpeg 概述 ...................................................................................................... 144
7.1.1 各个编译类型的区别 ............................................................................. 145
7.1.2 编译FFmpeg 源代码 .............................................................................. 148
7.2 ffplay 的基本使用方法 ...................................................................................... 155
7.2.1 显示ffplay 版本 ...................................................................................... 155
7.2.2 显示编译选项 ......................................................................................... 156
7.2.3 设置日志级别 ......................................................................................... 156
7.2.4 全屏播放 ................................................................................................. 158
7.2.5 指定输入视频的宽、高和帧率 .............................................................. 158
7.2.6 禁用音频流、视频流和字幕流 .............................................................. 158
7.2.7 指定播放的起始时间和时长.................................................................. 159
7.2.8 指定播放音量 ......................................................................................... 159
7.2.9 设置播放窗口 ......................................................................................... 159
7.3 ffprobe 的基本使用方法 .................................................................................... 159
7.3.1 显示详细的封装格式信息 ..................................................................... 160
7.3.2 显示每一路媒体流信息 ......................................................................... 161
7.3.3 显示每一个码流包的信息 ..................................................................... 164
7.3.4 显示媒体流和码流包的负载信息 .......................................................... 165
7.3.5 显示每一帧图像的信息 ......................................................................... 167
7.3.6 指定检测信息的输出格式 ..................................................................... 169
7.4 ffmpeg 的基本使用方法 .................................................................................... 175
7.4.1 显示版本和编译配置信息 ..................................................................... 176
7.4.2 显示支持的解复用器格式 ..................................................................... 177
7.4.3 显示支持的复用器格式 ......................................................................... 179
7.4.4 显示支持的所有输入格式和输出格式 .................................................. 181
7.4.5 显示支持的解码器 ................................................................................. 183
7.4.6 显示支持的编码器 ................................................................................. 184
7.4.7 显示支持的媒体协议 ............................................................................. 186
7.4.8 显示支持的硬件加速框架 ..................................................................... 188
7.4.9 ffmpeg 封装格式转换 ............................................................................. 188
7.4.10 视频的解码和编码 ............................................................................... 193
7.4.11 从视频中截取图像 ................................................................................ 206
7.4.12 ffmpeg 视频转码 ................................................................................... 207
第8 章 滤镜图 ........................................................................................................... 209
8.1 ffmpeg 音视频滤镜 ............................................................................................ 209
8.1.1 简单滤镜图 ............................................................................................. 209
8.1.2 复合滤镜图 ............................................................................................. 210
8.1.3 ffmpeg 支持的滤镜列表 ......................................................................... 211
8.2 简单滤镜图的应用 ............................................................................................ 212
8.2.1 常用的视频编辑简单滤镜图.................................................................. 212
8.2.2 常用的音频编辑简单滤镜图.................................................................. 227
8.3 复合滤镜图的应用 ............................................................................................ 230
8.3.1 常用的视频编辑复合滤镜图.................................................................. 230
8.3.2 常用的音频编辑复合滤镜图.................................................................. 234
第9 章 流媒体应用 .................................................................................................... 236
9.1 构建SRS 流媒体服务 ....................................................................................... 236
9.1.1 部署RTMP 流媒体服务 ......................................................................... 238
9.1.2 部署HLS 流媒体服务 ............................................................................ 240
9.1.3 部署HTTP-FLV 流媒体服务 ................................................................. 241
9.2 构建Nginx RTMP 流媒体服务 ......................................................................... 241
9.2.1 Nginx 的编译和部署 .............................................................................. 242
9.2.2 Nginx 的流媒体模块nginx-rtmp-module .............................................. 246
第三部分 开发实战
第10 章 FFmpeg SDK 的使用................................................................................... 254
10.1 使用CMake 构建工程 ..................................................................................... 255
10.1.1 使用CMake 构建Hello World 工程 .................................................... 255
10.1.2 在工程中编译并输出多个文件 ............................................................ 257
10.1.3 在工程中添加头文件和源文件目录 .................................................... 259
10.1.4 在工程中引入动态库 ........................................................................... 262
10.2 FFmpeg SDK 基本使用方法示例:获取目录下的文件信息 ....................... 264
10.2.1 显示指定目录信息 ............................................................................... 264
10.2.2 解析API 和结构体 ............................................................................... 266
第11 章 使用FFmpeg SDK 进行视频编解码 ............................................................ 269
11.1 libavcodec 视频编码 ........................................................................................ 269
11.1.1 主函数与数据I/O 实现 ........................................................................ 269
11.1.2 视频编码器初始化 ................................................................................ 272
11.1.3 编码循环体............................................................................................ 284
11.1.4 关闭编码器............................................................................................ 289
11.1.5 FFmpeg 视频编码延迟分析 ................................................................. 290
11.2 libavcodec 视频解码 ........................................................................................ 294
11.2.1 主函数实现............................................................................................ 294
11.2.2 视频解码器初始化 ................................................................................ 295
11.2.3 解码循环体............................................................................................ 297
11.2.4 关闭解码器............................................................................................ 304
第12 章 使用FFmpeg SDK 进行音频编解码 ............................................................ 306
12.1 libavcodec 音频编码 ........................................................................................ 306
目录 ∣ XIII
12.1.1 主函数实现 ........................................................................................... 306
12.1.2 音频编码器初始化 ............................................................................... 307
12.1.3 编码循环体 ........................................................................................... 310
12.1.4 关闭编码器 ........................................................................................... 313
12.2 libavcodec 音频解码 ........................................................................................ 315
12.2.1 主函数实现 ........................................................................................... 315
12.2.2 音频解码器初始化 ............................................................................... 316
12.2.3 解码循环体 ........................................................................................... 318
12.2.4 关闭解码器 ........................................................................................... 324
第13 章 使用FFmpeg SDK 进行音视频文件的解封装与封装 ................................... 326
13.1 音视频文件的解封装 ...................................................................................... 326
13.1.1 主函数实现 ........................................................................................... 326
13.1.2 解复用器初始化 ................................................................................... 327
13.1.3 循环读取码流包数据 ........................................................................... 335
13.1.4 释放解复用器和解码器 ....................................................................... 338
13.1.5 主函数的整体实现 ............................................................................... 339
13.2 音频流与视频流文件的封装 .......................................................................... 340
13.2.1 主函数实现 ........................................................................................... 340
13.2.2 音视频流复用器的初始化.................................................................... 341
13.2.3 复用音频流和视频流 ........................................................................... 348
13.2.4 释放复用器实例 ................................................................................... 353
第14 章 使用FFmpeg SDK 添加视频滤镜和音频滤镜 .............................................. 355
14.1 视频滤镜 .......................................................................................................... 355
14.1.1 主函数实现 ........................................................................................... 355
14.1.2 视频滤镜初始化 ................................................................................... 356
14.1.3 循环编辑视频帧 ................................................................................... 365
14.1.4 销毁视频滤镜 ....................................................................................... 368
14.2 音频滤镜 .......................................................................................................... 370
14.2.1 主函数框架 ........................................................................................... 370
14.2.2 音频滤镜初始化 ................................................................................... 371
14.2.3 循环编辑音频帧 ................................................................................... 380
14.2.4 销毁音频滤镜 ....................................................................................... 381
第15 章 使用FFmpeg SDK 进行视频图像转换与音频重采样 ................................... 383
15.1 视频图像转换 .................................................................................................. 383
15.1.1 主函数实现 ........................................................................................... 383
15.1.2 视频格式转换初始化 ........................................................................... 384
15.1.3 视频的图像帧循环转换 ....................................................................... 388
15.1.4 视频格式转换结构的销毁和释放 ........................................................ 390
15.2 音频重采样 ...................................................................................................... 391
15.2.1 主函数实现 ........................................................................................... 392
15.2.2 音频重采样初始化 ............................................................................... 392
15.2.3 对音频帧循环重采样 ........................................................................... 397
15.2.4 音频重采样结构的销毁和释放 ............................................................ 400
- 电子工业出版社有限公司
- 电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
- 扫描二维码,访问我们的微信店铺