原文: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 插件吧。

FFMS2 官方说明译文 [原创]的更多相关文章

  1. FFMS2 API 译文 [原创]

    FFMS2 又称 FFmpegSource2,参阅 https://github.com/FFMS/ffms2. 原文:https://github.com/FFMS/ffms2/blob/maste ...

  2. cocos2d-x-3.1 Text Labels(官方正式译文)

    介绍 cocos2d支持(true type字体)标签,和纹理地图集标签. LabelTTF 标签的优缺点: 全部 TTF 字体的长处: 随意大小,支持调整字距. 易于使用. 不须要外部编辑器. 创建 ...

  3. TimelineJS JSON 数据格式 - 译文 [原创]

    TimelineJS 是用于绘制时间轴的 Javascript 开源脚本,目前是 TimelineJS3 版.参阅 https://github.com/NUKnightLab/TimelineJS3 ...

  4. 10分钟了解 pandas - pandas官方文档译文 [原创]

    10 Minutes to pandas 英文原文:https://pandas.pydata.org/pandas-docs/stable/10min.html 版本:pandas 0.23.4 采 ...

  5. Apache Kafka官方文档翻译(原创)

    Apache Kafka是一个分布式流平台.准确的说是什么意思呢?我们认为流平台具有三种关键能力: 1.让你对数据流进行发布订阅.因此他很像一个消息队列和企业级消息系统. 2.让你以高容错的方式存储数 ...

  6. OWASP 关于会话管理 - 译文 [原创]

    英文原文:https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Session_Management_Cheat_Shee ...

  7. Daphile 安装手册 -- 官方文档译文 [原创]

    Daphile 安装手册(Daphile Installation) 英文原文:https://www.daphile.com/download/DaphileInstallation.pdf 采集日 ...

  8. Daphile FAQ -- 官方文档译文 [原创]

    Daphile FAQ 英文原文:https://www.daphile.com/download/FAQ.txt 采集日期:2021-01-03 常见问题解答:(FAQ) Q1:没有声音.Daphi ...

  9. Python 并行计算那点事 -- 译文 [原创]

    Python 并行计算的那点事1(The Python Concurrency Story) 英文原文:https://powerfulpython.com/blog/python-concurren ...

随机推荐

  1. eclipse异常关闭,无法启动tomcat解决办法

    如果eclipse异常关闭,会出现以下 此时需要关闭javaw.exe即可,重新启动tomcat了. 关闭javaw.exe需要打开任务关闭器,选择详细信息,然后结束javaw.exe即可

  2. 【[SDOI2017]数字表格】

    求 \[Ans=\prod_{i=1}^N\prod_{j=1}^MFib[(i,j)]\] 连乘的反演,其实并没有什么不一样 我们把套路柿子拿出来 \[F(n)=\sum_{i=1}^N\sum_{ ...

  3. 20155314 2016-2017-2 《Java程序设计》第2周学习总结

    20155314 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 学习目标 了解Java编程风格 认识Java的类型与变量 掌握Java流程控制的方法(分支. ...

  4. Linux禁用root账户ssh登录

    前言 今天登录服务器的时候,控制台输出如下信息 There were 48990 failed login attempts since the last successful login. Last ...

  5. kendo ui - DatePicker 日期时间系列

    kendo-ui 官网:https://www.telerik.com/documentation 初始化 grid: 引入文件: <link rel="stylesheet" ...

  6. 红米5/红米5 Plus逼出最强魅蓝Note6?降价后已成性价比神机

    从品牌到产品命名,小米旗下的红米与魅族旗下的魅蓝似乎是一对天生的对手,如今小米即将发布千元全面屏的红米5/红米5 Plus,暂时没有全面屏手机推出的魅蓝也拿出了自己的应对策略,魅蓝的办法简单粗暴:直接 ...

  7. Python学习笔记系列——读写文件以及敏感词过滤器的实现

    一.读文件 #打开文件,传入文件名和标识符,r代表读 f= open('\\Users\ZC\Desktop\zc.txt','r') #调用read方法一次性读取文件的全部内容,存入内存,用str对 ...

  8. QoS policy-map class-map

    QoS(Quality of ServiceQoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力, 是网络的一种安全机制, 是用来 ...

  9. C++程序设计--实验二

    第二次实验主要内容是函数重载,快速排序及其模板实现,简单的user类实现. 实验结论: 一.函数重载编程练习 /*编写重载函数add(),实现对int型,double型和Complex型数据的加法.在 ...

  10. AngularJS中的按需加载ocLazyLoad插件应用;

    一.前言 ocLoayLoad是AngularJS的模块按需加载器.一般在小型项目里,首次加载页面就下载好所有的资源没有什么大问题.但是当我们的网站渐渐庞大起来,这样子的加载策略让网速初始化速度变得越 ...