FFMS2 官方说明译文 [原创]
原文:https://github.com/FFMS/ffms2
采集日期:2018-3-18
FFmpegSource 常被称为 FFMS 或 FFMS2,是一种跨平台的 FFmpeg 封装库。有了它,你就可以简单地实现:“打开并解压多媒体文件就是了,实现细节不用我操心”。大多数情况下,你还能用它精确访问到每一帧数据,再也不必经常受困于苍白无力的 FFmpeg API 文档了。
虽然 FFMS2 库是用 C++ 编写的,但暴露出来的 API 却是纯 C 格式的。这样你只要能链接 C 库,就能使用 FFMS2 了。其源代码的版权遵守 MIT 协议,但二进制库的版权得根据 FFmpeg 部分的编译方式而定。你可以选用 FFmpeg 部分是遵守 GPL 协议的库,这样 FFMS2 就同样得遵守 GPL 协议了。正是由此,官方的 Windows 版本才须遵守 GPLv3 协议。
关于如何使用 FFMS2 库的详细信息,请参阅 API 文档 和 更新日志。
Avisynth 和 VapourSynth 插件
对于最终的使用者而言,FFMS 的最常见用途是作为 Avisynth 和 VapourSynth 的多媒体源插件(plugin ),用来打开多媒体文件。本 FFMS2 项目包含了插件功能,可以直接下载,相关文档请参阅 Avisynth 用户手册。
功能特性
除了能打开几乎所有常见的视频、音频格式外,在所有 Avisynth 多媒体源滤镜(filter)中,本插件的以下特性也算得上是独一无二了:
- 唯一支持 Unicode 文件名,即便系统的地区代码页(codepage)没能标明;
- 唯一支持可变帧率(VFR);
- 唯一可在 Wine 下稳定运行的 Avisynth 通用源滤镜(不局限于某些格式);
- 唯一不依赖其他外部解码器的通用源滤镜;
- 或许是唯一支持播放过程中(mid-stream)切换视频分辨率的源滤镜。
版本代号
为了避免您对多种版本代号感到困惑,以下稍作解释:
- Vanilla(不带后缀):标准的 32 位版。如果你不知道该怎么选,那就用这个版本。
- -x64:64位版;最适用于 64 位版的 Avisynth。
- -avs-cplugin:用 C 写的 Avisynth 插件。主要是为了能读取 Avisynth 2.6 新定义的色彩空间数据。
- SDK:开发包,用于开发 Windows 程序,适用于 Visual Studio 2008 以上版本。
标有 rXXX 的版本是在正式发布版之间的测试版本。如果需要用到最新的特性,或者只是想尝尝鲜,那你尽可以下载试用。请注意测试版本的稳定性,可能不如官方发布版本。
取名 FFmpegSource 其实没什么理由
FFMS 最初是作为 Avisynth 读取文件的插件存在的,一度被称为 FooSource,这里的 Foo 通常表示是用于打开文件的功能。由于历史原因,整个项目仍被称为 FFmpegSource。当然最近几年,FFmpegSource 确实会让人产生误会,可能会被认为是 FFmpeg 的源代码之类的。为了避免混淆,最好还是用 FFMS2 来表示(因为第 1 版还只是 Avisynth 的插件),就让 FFmpegSource 专用于表示 Avisynth 插件吧。