FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用 LGPL 或 GPL 许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库 libavcodec。
官方网站:http://www.ffmpeg.org/
项目组成
- libavformat
封装模块,封装了Protocol层和Demuxer、Muxer层,使得协议和格式对于开发者来说是透明的。FFmpeg能否支持一种封装格式的视频的封装与解封装,完全取决于这个库,例如mp4、flv、mkv等容器的封装与解封装;或者RTMP、RTSP、TCP、UDP等协议的封装与解封装;
- libavcodec
编解码模块,封装了Codec层,但是有一些codec是具备自己的License的,FFmpe不会默认添加像libx264、FDK-AAC、Lame等库,但是FFmpeg像一个平台,可以将其他的第三方codec以插件的方式添加进来,为开发者提供统一接口;
- libavutil
核心工具模块,最基础模块之一,其他模块都会依赖该库做一些基本的音视频处理操作;
- libavfilter