FFMS2 官方说明译文 [原创]

原文:https://github.com/FFMS/ffms2
译文:http://www.cnblogs.com/popapa/p/ffms2.html
采集日期:2018-3-18

FFmpegSource 常被称为 FFMSFFMS2,是一种跨平台的 FFmpeg 封装库。有了它,你就可以简单地实现:“打开并解压多媒体文件就是了,实现细节不用我操心”。大多数情况下,你还能用它精确访问到每一帧数据,再也不必经常受困于苍白无力的 FFmpeg API 文档了。

虽然 FFMS2 库是用 C++ 编写的,但暴露出来的 API 却是纯 C 格式的。这样你只要能链接 C 库,就能使用 FFMS2 了。其源代码的版权遵守 MIT 协议,但二进制库的版权得根据 FFmpeg 部分的编译方式而定。你可以选用 FFmpeg 部分是遵守 GPL 协议的库,这样 FFMS2 就同样得遵守 GPL 协议了。正是由此,官方的 Windows 版本才须遵守 GPLv3 协议。

关于如何使用 FFMS2 库的详细信息,请参阅 API 文档我的译文) 和 更新日志

Avisynth 和 VapourSynth 插件

对于最终的使用者而言,FFMS 的最常见用途是作为 AvisynthVapourSynth 的多媒体源插件(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 插件吧。

posted on 2018-03-17 13:15  呆呆大虾  阅读(2246)  评论(0编辑  收藏  举报

导航