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

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

书籍作者:欧阳燊 ISBN:9787302651765
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:1292
创建日期:2024-06-26 发布日期:2024-06-26
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

《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开发有兴趣的业余爱好者,也可作为大中专院校和培训机构音视频课程的教材。


作者简介

欧阳燊,硕士,资深开发专家,拥有18年以上软件开发经验,对C/C++、Java、Android相关领域的开发、架构驾轻就熟,职业生涯开发过大量企业级项目,实战经验极为丰富。出版畅销书《Android Studio开发实战:从零基础到App上线》。

编辑推荐

由从业十余年一线资深音视频开发专家、畅销书作者倾力编撰,通俗、易学、实用,贴近开发实践。

深入浅出地介绍FFmpeg的基本概念、基础知识和高级特性,从入门到精通,适合不同层次的读者学习。

案例丰富,基本上每章都提供项目案例,全书共9个项目案例,所有项目全流程完整呈现,并给出详尽的代码实现和注解说明,直接套用即可开发出自己的应用。

涵盖内容广泛,涉及从桌面开发到移动开发,如音视频查看、播放、转换、剪辑、推拉流等内容。


前言

音视频开发是近年来的新兴软件开发行业,广泛运用于在线视频、网络直播、安防监控、远程办公、线上课堂等业务场景。特别是随着5G技术的深入应用和短视频自媒体的广泛传播,音视频领域的技术支持显得愈发重要。

在众多音视频开发技术框架中,FFmpeg是最基础的音视频处理平台。不论是音视频的编码、加工,还是传输,都离不开FFmpeg的支撑。可以说,入门音视频开发的第一个门槛就是FFmpeg,掌握FFmpeg是进军音视频开发的必经之路。

尽管FFmpeg在音视频领域拥有举足轻重的地位,但长期以来入门FFmpeg开发并非易事。一方面,音视频涉及的专业概念种类繁多,初学者容易困惑;另一方面,FFmpeg基于Linux环境的C语言开发,个人开发由于环境限制,难以深入FFmpeg编程。此外,FFmpeg作为底层框架本身并不提供可视化交互界面。例如,桌面程序需要Qt环境,而手机App需要Android环境,因此,在真正运用FFmpeg时,需要结合FFmpeg+Qt,或者FFmpeg+Android,这无疑增加了学习FFmpeg编程的难度。

基于以上考虑,本书按照下列章节结构来介绍FFmpeg开发实战。

第一,在解释音视频概念时,首先阐述相关术语的来龙去脉,然后描述这些概念的原理和分类,并最后提供对应的FFmpeg范例代码,使读者能够逐步理解音视频的基础知识,从理论到实践。

第二,详细说明在Linux环境编译FFmpeg及其相关库的步骤,同时也详述在Windows环境编译FFmpeg及其相关库的步骤,以便读者能够在个人计算机上搭建FFmpeg的开发学习环境。

第三,对于通过FFmpeg实现的每项功能,不仅提供基于函数调用的示例代码,还提供具体的FFmpeg操作命令,是本书兼具FFmpeg的代码开发教程与FFmpeg的命令使用手册两种用途。

第四,最后两章介绍了在Qt环境中集成FFmpeg并在计算机上运行播放影音的桌面程序,以及在Android Studio环境中集成FFmpeg并在手机上运行剪辑视频的手机App。这方便读者学以致用,能够迅速将FFmpeg编程应用到桌面开发与移动开发中。

第五,在介绍FFmpeg开发的过程中,引入了一些辅助工具用于编译、浏览、分析、加工等操作,包括Visual Studio、MSYS、CMake、VLC、YUView、Audacity、Subtitle Edit、MediaMTX等。本书对这些工具都进行详细介绍,以帮助读者熟练掌握FFmpeg开发技能。

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

本书在讲解FFmpeg知识点的同时给出了大量实战范例,方便读者迅速将所学的知识运用到音视频开发中。这些实战范例包括:图片转视频、拼接两段音频、老电影怀旧风、卡拉OK音乐短片、侧边模糊滤镜、翻书转场动画、同步播放音视频、桌面影音播放器、仿剪映的视频剪辑等。通过实战项目的练习,读者能够掌握音视频的基本开发技术,包括音视频查看、音视频转换、音视频播放、音视频剪辑、视频推拉流等。

所谓零基础,指的是FFmpeg零基础,而非C语言零基础,在读者开始学习本书之前,建议先学完谭浩强的《C程序设计》,且需要掌握基本的Linux操作命令。在学习第11章之前,建议先入门Qt平台的C++桌面编程。在学习第12章之前,建议先掌握Android平台的Java移动编程,可参考笔者的App开发专著《Android Studio开发实战:从零基础到App上线(第3版)》。

本书中与FFmpeg相关的C代码都是基于FFmpeg 5.1.2编写的。前10章的C/C++代码在Linux(包括EulerOS和CentOS)和Windows(包括Windows 10和Windows 11)上编译和调试通过;第11章的程序代码采用C++编写,并在Qt 6.5.2上编译和调试通过;第12章的App代码采用Java与C++编写,并在Android Studio Dolphin(小海豚版本)上编译和调试通过。

在学习音视频开发过程中,需要用到一些开源软件,逐个下载它们颇费功夫,而且部分软件还要搭配对应的FFmpeg版本。为了方便读者使用这些软件,笔者把本书用到的软件源码和安装文件统一打包,并与随书配套的例程源码和演示课件放在一起,读者可扫描下方的二维码一起下载。

如果你在下载过程中遇到问题,请发邮件至[email protected],邮件标题为“FFmpeg开发实战:从零基础到短视频上线”获得帮助。

最后,感谢王金柱编辑的热情指导,感谢出版社其他人员的辛勤工作,感谢我的家人一直以来的支持,感谢各位师长的谆谆教导。没有他们的鼎力相助,本书就无法顺利完成。




欧阳燊

2024年1月


目录

第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章 FFrnpeg开发基础
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章 FFrnpeg的编解码
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章 FFrnpeg处理图像
4.1 YUV图像
4.1.1 为什么要用YUV格式
……
第5章 FFmpeg处理音频
第6章 FFmpeg加工视频
第7章 FFmpeg添加图文
第8章 FFmpeg自定义滤镜
第9章 FFmpeg混合音视频
第10章 FFmpeg播放音视频
第11章 FFmpeg的桌面开发
第12章 FFmpeg的移动开发
附录A 音视频专业术语索引

产品特色