ffmpeg是一个非常有用的命令行程序,它可以用来转码媒体文件。它是领先的多媒体框架FFmpeg的一部分,其有很多功能,比如解码、编码、转码、混流、分离、转化为流、过滤以及播放几乎所有的由人和机器创建的媒体文件。
在这个框架中包含有各种工具,每一个用于完成特定的功能。例如:
- ffserver能够将多媒体文件转化为用于实时广播的流
- ffprobe用于分析多媒体流
- ffplay可以当作一个简易的媒体播放器
- ffmpeg则能够转换多媒体文件格式。
FFMPEG从功能上划分为几个模块分别为:
- 核心工具(libutils)
- 媒体格式(libavformat)
- 编解码(libavcodec)
- 设备(libavdevice)
- 后处理(libavfilter, libswscale, libpostproc)
分别负责提供公用的功能函数、实现多媒体文件的读包和写包、完成音视频的编解码、管理音视频设备的操作以及进行音视频后处理。
libavutil是一个包含简化编程功能的库,其中包括随机数生成器,数据结构,数学代码,核心多媒体工具等更多东西。
libavcodec是一个包含音频/视频解码器和编码器的库。
libavformat是一个包含了多媒体格式的分