本节介绍FFmpeg开源平台的简单背景,包括FFmpeg名称的来源及其开发环境、FFmpeg的主要用途与支持的格式、FFmpeg的发展历程和许可说明等。
FFmpeg的意思是快速掌握MPEG。其中MPEG全称为Moving Picture Expert Group,中文直译过来叫运动图像专家组格式。MPEG是一种流行的视频格式系列,目前常见的是第4版MPEG,即MPEG−4,采用MPEG−4格式的视频文件扩展名为.mp4。
缩写之后的FFmpeg拼读有点麻烦,前面三个字母依次按字母逐个念,后面三个字母连起来按照单词peg读。连起来的FFmpeg读音便是[ ef ef em peg ]。
FFmpeg是一个基于C语言的开源框架,它虽然在Linux环境下开发,但兼容其他操作系统,包括Windows、Mac OS X等。也就是说,把FFmpeg源码移植到Windows环境,也能正常编译和运行。
FFmpeg是一个音视频处理平台,不仅能够处理音频、视频文件,还能够处理图像、字幕等文件。这里的处理动作包括查看参数、读取数据、保存数据、格式转换、加工编辑、渲染播放等交互操作,可谓是功能强悍。
基于FFmpeg的开源特性,它支持越来越多的媒体格式,无论来自哪个厂商或者哪个国家,总能找到对应的支持库。单就视频格式而言,从古老的ASF、RM、FLV,到后续的H264、H265、VP8、VP9,甚至中国的音视频标准编码AVS2,FFmpeg均可集成它们的编解码库。图像方面支持JPG、PNG、GIF等常见的图片格式,音频方面支持MP3、WMA、AAC等常见的音频格式,甚至字幕格式SRT、ASS等都纳入了FFmpeg的支持范围。
FFmpeg的音视频处理功能非常强大,因此它已成为全球音视频开发者的首选框架。无论是国外的Adobe Premiere,还是国产的剪映,它们的音视频编辑功能都是基于FFmpeg实现的。可以说,学好FFmpeg编程是从事音视频开发行业的必备技能之一。
FFmpeg最早由法国的天才程序员Fabrice Bellard发起,并在2004年由Michael Niedermayer主持维护,一直到2015年Michael Niedermayer宣布辞职。FFmpeg项目的官方网站地址为https://www.ffmpeg.org/,最新源码的下载页面为https://www.ffmpeg.org/download.html,也可访问https://github.com/FFmpeg/FFmpeg/tags获取各版本FFmpeg的源码下载。
2000年,FFmpeg的第一个版本发布。
2013年7月,FFmpeg 2.0发布。
2016年2月,FFmpeg 3.0发布,增加内置AAC编解码器。
2018年4月,FFmpeg 4.0发布,不再支持Windows XP,最低支持到Windows Vista。
2018年11月,FFmpeg 4.1发布,增加支持AVS2国标的编解码器。
2019年8月,FFmpeg 4.2发布,增加支持AV1视频和VP4视频的解码。
2020年6月,FFmpeg 4.3发布,增加支持转场滤镜xfade,全面支持Vulkan。
2021年4月,FFmpeg 4.4发布,增加支持AVS3国标的解码器。
2022年1月,FFmpeg 5.0发布,增加支持国产的龙芯架构。
2022年7月,FFmpeg 5.1发布,增加支持IPFS/IPNS协议。
2023年2月,FFmpeg 6.0发布,增加支持RGBE和WBMP两种图像格式。
FFmpeg采用LGPL或GPL许可证,其中GPL 2.0禁止商用。而LGPL允许开发闭源的商用软件,不过只能使用FFmpeg的动态库,并且需要标明用到了FFmpeg动态库;不允许把FFmpeg的静态库链接到商用软件中,除非这个软件也开放源码。