前言PREFACE
近年来,随着5G网络技术的迅猛发展,音视频的应用越来越普及,音视频流媒体方面的开发岗位也非常多;然而,市面上很难找到一本通俗易懂、系统完整地讲解音视频的入门书。网络上的知识虽然不少,但是太散乱,不适合读者入门。
众所周知,音视频知识非常复杂,入门很难。很多程序员想从事音视频开发,但始终糊里糊涂,不得入门。笔者刚毕业时,在这方面也是零基础,经过多年的艰苦努力,才终于有了一些收获。借此机会,整理成专业书籍,希望给读者带来帮助,少走弯路。
FFmpeg发展迅猛,功能强大,命令行也很简单、很实用,但是有一个现象:即便使用命令行做出了一些特效,但依然不容易理解原理,不知道具体的参数代表什么含义。音视频与流媒体是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学习基础理论,而是直接做项目、看源码,但往往在看到C/C++的代码时一头雾水,不知道代码到底是什么意思。这是为什么呢?因为没有学习音视频和流媒体的基础理论,就像学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂,所以一定要认真学习基础理论,然后学习播放器、转码器、流媒体直播、视频监控等。
本书的主要内容
第1章介绍编程之美与内功修为,根据笔者20年来的心得体会,给出学习路径和方法。
第2章介绍音视频基础知识,讲解音视频、多媒体、数字电视和短视频等概念。
第3章介绍音视频开发常用工具,包括VLC、MediaInfo、Elecard、FFmpeg等。
第4章讲解音频基础知识,包括音频基础概念和音频编解码等。
第5章讲解视频基础知识,包括视频基础概念、封装原理和编解码原理等。
第6章介绍音视频压缩编码概念,讲解压缩编码基础知识、帧内与帧间编码等。
第7章介绍音视频编解码原理与标准,包括音视频编码技术、原理、标准等。
第8章介绍音视频编解码技术与流程,包括编解码技术的实现方法,如运动估计和运动补偿等。
第9章介绍H.264编解码知识,包括入门知识、编解码基础和码流结构分析等。
第10章介绍AAC编解码知识,包括基本概念、编码特点和码流结构等。
第11章介绍H.265编解码知识,包括基础知识、码流结构以及与H.264的区别等。
阅读建议
本书是一本适合读者入门的音视频和编解码读物,既有通俗易懂的基本概念,又有丰富的案例和原理分析,图文并茂,知识体系非常完善。对音视频和编解码的基本概念和原理进行了详细分析,对重要的概念进行了具体阐述,非常适合初学者。即使读者没有任何相关背景知识,在学习本书的过程中也不会感觉吃力。
本书内容分3部分。
第一部分(第1~5章),介绍音视频的基本概念和音视频常用的开发工具。
第二部分(第6~8章),介绍音视频编解码的基本概念和原理。
第三部分(第9~11章),介绍几个常用的编解码,包括H.264、H.265、AAC。
建议读者在学习的过程中,循序渐进,不要跳跃选择书中内容阅读。本书的知识体系是笔者精心设计的,由浅入深,层层深入,对于抽象且复杂的概念和原理,笔者尽量通过图文并茂的方式进行讲解。
致谢
首先感谢清华大学出版社责任编辑赵佳霓老师给笔者提出了许多宝贵的建议,以及推动了本书的出版。
感谢笔者的家人,特别感谢笔者的宝贝女儿和妻子,在笔者写作的过程中大宝贝很乖,妻子承担了所有的家务,非常辛苦。
感谢笔者的学员,在笔者悲观无助时,群里的学员经常给笔者很大的鼓励,并提出很多宝贵意见。他们是一帮充满活力的年轻人,有想法,非常勤奋,很有担当。
由于时间仓促,书中难免存在不妥之处,请读者见谅并希望提出宝贵意见。
梅会东
2022年4月
视频讲解