FFMPEG是一套非常优秀的多媒体开源软件,它提供了解码,编码,转码,封装,解封转,滤镜,流化等强大的功能。FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Mac OS X, Microsoft Windows,the BSDs,Solaris等系统,具有较好的可移植性。这个项目最早由Fabrice Bellard发起,2004年至2015年间由Michael Niedermayer主要负责维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward。
FFMPEG主要包括以下几个部分:
- libavutil库 包含用于简化编程的函数的库,包括随机数生成器、数据结构、数学例程、核心多媒体实用程序等。
- libavcodec库 包含用于各种音频和视频的编码器和解码器的库;
- libavformat库 包含用于各种多媒体容器格式解封装器和封装器,也包含了各种网络协议模块;
- libavdevice库 包含输入和输出设备的库;
- libavfilter库 包含用于处理音视频的各种滤镜效果,如文字图片叠加等;
- libswscale库 包含用于处理图像缩放和、色空间/像素格式转换的功能;
- libswresample库 包含用于处理音频重采样和样本格式转换的功能;
官网简介:FFmpeg是领先的多媒体框架,能够解码、编码、转码、mux、demux、流、滤镜和播放。具有高度的可移植性:FFmpeg在各种构建环境、机器体系结构和配置下跨Linux、Mac OS X、Microsoft Windows、BSDs、Solaris等编译、运行并通过我测试。
除此之外,还能借助它的滤镜功能,实现视频的文字、图片水印、声音增益、视频去LOGO等等,总之功能十分的强大。 据观察其被多个项目引用(命令行或源码库方式),如vlc、amlogic的机顶盒播放引擎、ijkplayer、srs等等,值得注意的是有些系统也可以直接在线安装如ubuntu。
另外,其提供ffmpeg、ffplay、ffprobe三个工具来实现解码、编码、转码、mux、demux、音视频内容处理、播放和分析,ffserver是一个简单的http服务器。
参考资料
FFMPEG官网
FFMPEG百度百科