FFmpeg音视频开发基础与实战

FFmpeg音视频开发基础与实战

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

    关注微信公众号

因版权原因待上架

编辑推荐

音视频开发基础知识、命令行工具使用方法、FFmpeg SDK实战应用。

内容简介

全书内容分为三部分,共15 章。第1~6 章为第一部分,主要讲解音视频开发的基础知识,简要介绍音视频技术的发展背景,以及主流的音视频压缩编码算法、音视频容器格式和网络流媒体协议等。第7~9 章为第二部分,主要讲解命令行工具ffmpeg、ffprobe 和ffplay 的使用方法,包括如何使用这些工具进行视频播放、格式检测、编转码、格式转换和流媒体推拉流等操作;第10~15 章为第三部分,主要讲解基于FFmpeg SDK 的开发实战,主要介绍如何在工程中调用libavcodec 和libavformat 等库提供的接口实现音视频处理的相关功能。

章节目录

封面

前折页

版权信息

内容简介

前言

第一部分 基础知识

第1章 音视频技术概述

1.1 音视频信息与多媒体系统

1.1.1 信息传输系统的发展

1.1.2 信息时代的音视频技术

1.1.3 音视频技术的未来展望

1.2 典型的音视频与多媒体系统结构

1.2.1 视频点播

1.2.2 视频直播

1.2.3 安防监控

1.2.4 视频会议

第2章 图像、像素与颜色空间

2.1 图像与像素

2.2 图像的位深与颜色空间

2.2.1 图像的位深

2.2.2 图像的颜色空间

2.3 图像压缩编码

2.3.1 图像压缩算法分类

2.3.2 图像压缩基本算法

2.3.3 常见的图像压缩编码格式

第3章 视频压缩编码

3.1 视频压缩编码的基础知识

3.1.1 视频信息的数字化表示

3.1.2 常用的视频格式与分辨率

3.1.3 对视频数据压缩编码的原因

3.2 视频压缩编码标准的发展历程

3.3 视频压缩编码的基本原理

3.3.1 视频数据中的冗余信息

3.3.2 预测编码

3.3.3 变换编码

3.3.4 熵编码

3.4 视频编码标准H.264

3.4.1 H.264简介

3.4.2 H.264的框架

3.4.3 H.264的基本算法

3.5 高效视频编码标准H.265

3.5.1 H.265简介

3.5.2 H.265的框架

3.5.3 H.265的基本算法

第4章 音频压缩编码

4.1 音频压缩编码的基础知识

4.1.1 声音信息的概念

4.1.2 声音信息的基本要素

4.2 音频信息采样与数字化

4.2.1 模拟音频

4.2.2 数字音频

4.2.3 采样和量化

4.3 脉冲编码调制

4.3.1 PCM量化区间分割

4.3.2 PCM量化编码规则

4.4 MP3格式与MP3编码标准

4.4.1 MP3格式

4.4.2 MP3编码标准

4.5 AAC格式与AAC编码标准

4.5.1 AAC格式

4.5.2 AAC编码标准

第5章 音视频文件容器和封装格式

5.1 概述

5.2 FLV格式

5.2.1 FLV文件结构

5.2.2 FLV文件头

5.2.3 FLV标签

5.3 MPEG-TS格式

5.3.1 信息包头

5.3.2 PES包结构

5.3.3 PSI结构

5.4 MP4格式

5.4.1 MP4格式简介

5.4.2 ISO协议族

5.4.3 MP4封装格式

5.4.4 Box类型

5.4.5 MP4文件结构

5.4.6 构建视频流的播放时间轴

第6章 音视频流媒体协议

6.1 网络协议模型

6.1.1 ISO/OSI模型结构

6.1.2 TCP/IP模型结构

6.2 网络流媒体协议——RTMP

6.2.1 RTMP的概念

6.2.2 RTMP分块与块流

6.2.3 RTMP信息格式

6.2.4 RTMP信息与命令

6.3 网络流媒体协议——HLS协议

6.3.1 HLS协议的概念

6.3.2 HLS直播流媒体系统结构

6.3.3 HLS索引文件格式

第二部分 命令行工具

第7章 FFmpeg的基本操作

7.1 FFmpeg概述

7.1.1 各个编译类型的区别

7.1.2 编译FFmpeg源代码

7.2 ffplay的基本使用方法

7.2.1 显示ffplay版本

7.2.2 显示编译选项

7.2.3 设置日志级别

7.2.4 全屏播放

7.2.5 指定输入视频的宽、高和帧率

7.2.6 禁用音频流、视频流和字幕流

7.2.7 指定播放的起始时间和时长

7.2.8 指定播放音量

7.2.9 设置播放窗口

7.3 ffprobe的基本使用方法

7.3.1 显示详细的封装格式信息

7.3.2 显示每一路媒体流信息

7.3.3 显示每一个码流包的信息

7.3.4 显示媒体流和码流包的负载信息

7.3.5 显示每一帧图像的信息

7.3.6 指定检测信息的输出格式

7.4 ffmpeg的基本使用方法

7.4.1 显示版本和编译配置信息

7.4.2 显示支持的解复用器格式

7.4.3 显示支持的复用器格式

7.4.4 显示支持的所有输入格式和输出格式

7.4.5 显示支持的解码器

7.4.6 显示支持的编码器

7.4.7 显示支持的媒体协议

7.4.8 显示支持的硬件加速框架

7.4.9 ffmpeg封装格式转换

7.4.10 视频的解码和编码

7.4.11 从视频中截取图像

7.4.12 ffmpeg视频转码

第8章 滤镜图

8.1 ffmpeg音视频滤镜

8.1.1 简单滤镜图

8.1.2 复合滤镜图

8.1.3 ffmpeg支持的滤镜列表

8.2 简单滤镜图的应用

8.2.1 常用的视频编辑简单滤镜图

8.2.2 常用的音频编辑简单滤镜图

8.3 复合滤镜图的应用

8.3.1 常用的视频编辑复合滤镜图

8.3.2 常用的音频编辑复合滤镜图

第9章 流媒体应用

9.1 构建SRS流媒体服务

9.1.1 部署RTMP流媒体服务

9.1.2 部署HLS流媒体服务

9.1.3 部署HTTP-FLV流媒体服务

9.2 构建Nginx RTMP流媒体服务

9.2.1 Nginx的编译和部署

9.2.2 Nginx的流媒体模块nginx-rtmp-module

第三部分 开发实战

第10章 FFmpeg SDK的使用

10.1 使用CMake构建工程

10.1.1 使用CMake构建Hello World工程

10.1.2 在工程中编译并输出多个文件

10.1.3 在工程中添加头文件和源文件目录

10.1.4 在工程中引入动态库

10.2 FFmpeg SDK基本使用方法示例:获取目录下的文件信息

10.2.1 显示指定目录信息

10.2.2 解析API和结构体

第11章 使用FFmpeg SDK进行视频编解码

11.1 libavcodec视频编码

11.1.1 主函数与数据I/O实现

11.1.2 视频编码器初始化

11.1.3 编码循环体

11.1.4 关闭编码器

11.1.5 FFmpeg视频编码延迟分析

11.2 libavcodec视频解码

11.2.1 主函数实现

11.2.2 视频解码器初始化

11.2.3 解码循环体

11.2.4 关闭解码器

第12章 使用FFmpeg SDK进行音频编解码

12.1 libavcodec音频编码

12.1.1 主函数实现

12.1.2 音频编码器初始化

12.1.3 编码循环体

12.1.4 关闭编码器

12.2 libavcodec音频解码

12.2.1 主函数实现

12.2.2 音频解码器初始化

12.2.3 解码循环体

12.2.4 关闭解码器

第13章 使用FFmpeg SDK进行音视频文件的解封装与封装

13.1 音视频文件的解封装

13.1.1 主函数实现

13.1.2 解复用器初始化

13.1.3 循环读取码流包数据

13.1.4 释放解复用器和解码器

13.1.5 主函数的整体实现

13.2 音频流与视频流文件的封装

13.2.1 主函数实现

13.2.2 音视频流复用器的初始化

13.2.3 复用音频流和视频流

13.2.4 释放复用器实例

第14章 使用FFmpeg SDK添加视频滤镜和音频滤镜

14.1 视频滤镜

14.1.1 主函数实现

14.1.2 视频滤镜初始化

14.1.3 循环编辑视频帧

14.1.4 销毁视频滤镜

14.2 音频滤镜

14.2.1 主函数框架

14.2.2 音频滤镜初始化

14.2.3 循环编辑音频帧

14.2.4 销毁音频滤镜

第15章 使用FFmpeg SDK进行视频图像转换与音频重采样

15.1 视频图像转换

15.1.1 主函数实现

15.1.2 视频格式转换初始化

15.1.3 视频的图像帧循环转换

15.1.4 视频格式转换结构的销毁和释放

15.2 音频重采样

15.2.1 主函数实现

15.2.2 音频重采样初始化

15.2.3 对音频帧循环重采样

15.2.4 音频重采样结构的销毁和释放

后折页

FFmpeg音视频开发基础与实战是2022年由电子工业出版社出版,作者殷汶杰。

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

购买这本书

你可能喜欢
HTML5移动前端开发基础与实战(微课版) 电子书
本书较为全面地介绍了HTML5前端开发的核心知识,并简要介绍了使用HBuilder开发移动App的流程。全书共8章,从企业用人需求的角度出发,本着够用、实用的原则,介绍了JavaScript、HTML、CSS、移动前端实战、Swiper插件、JSON数据、jQuery框架、移动App开发等相关知识。通过学习本书,读者可以掌握HTML5核心要点,能够运用CSS进行布局。通过学习Swiper插件,读者
小程序开发原理与实战 电子书
腾讯一线专家联合著作,通过云开发具体案例+完整项目实战,详解小程序开发原理、运行机制、避坑指南。
FlaskWeb开发入门、进阶与实战 电子书
本书使用Python语言开发FlaskWeb程序的知识,并通过具体实例讲解了使用Flask框架的方法和流程。
Redis6开发与实战 电子书
本书不仅介绍Redis特性,还展示它们的实际用法,真正帮助你学会如何使用Redis。
AppInventor开发实战 电子书
App Inventor是MIT开发的流行的可视化编程工具,编程爱好者可以在短时间学会创建炫目的安卓手机应用。