FFMS2 官方说明译文 [原创]
原文:https://github.com/FFMS/ffms2
译文:http://www.cnblogs.com/popapa/p/ffms2.html
采集日期: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 插件吧。
FFMS2 官方说明译文 [原创]的更多相关文章
- FFMS2 API 译文 [原创]
FFMS2 又称 FFmpegSource2,参阅 https://github.com/FFMS/ffms2. 原文:https://github.com/FFMS/ffms2/blob/maste ...
- cocos2d-x-3.1 Text Labels(官方正式译文)
介绍 cocos2d支持(true type字体)标签,和纹理地图集标签. LabelTTF 标签的优缺点: 全部 TTF 字体的长处: 随意大小,支持调整字距. 易于使用. 不须要外部编辑器. 创建 ...
- TimelineJS JSON 数据格式 - 译文 [原创]
TimelineJS 是用于绘制时间轴的 Javascript 开源脚本,目前是 TimelineJS3 版.参阅 https://github.com/NUKnightLab/TimelineJS3 ...
- 10分钟了解 pandas - pandas官方文档译文 [原创]
10 Minutes to pandas 英文原文:https://pandas.pydata.org/pandas-docs/stable/10min.html 版本:pandas 0.23.4 采 ...
- Apache Kafka官方文档翻译(原创)
Apache Kafka是一个分布式流平台.准确的说是什么意思呢?我们认为流平台具有三种关键能力: 1.让你对数据流进行发布订阅.因此他很像一个消息队列和企业级消息系统. 2.让你以高容错的方式存储数 ...
- OWASP 关于会话管理 - 译文 [原创]
英文原文:https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Session_Management_Cheat_Shee ...
- Daphile 安装手册 -- 官方文档译文 [原创]
Daphile 安装手册(Daphile Installation) 英文原文:https://www.daphile.com/download/DaphileInstallation.pdf 采集日 ...
- Daphile FAQ -- 官方文档译文 [原创]
Daphile FAQ 英文原文:https://www.daphile.com/download/FAQ.txt 采集日期:2021-01-03 常见问题解答:(FAQ) Q1:没有声音.Daphi ...
- Python 并行计算那点事 -- 译文 [原创]
Python 并行计算的那点事1(The Python Concurrency Story) 英文原文:https://powerfulpython.com/blog/python-concurren ...
随机推荐
- mysql分页(ajax)
分页有多种方式,mysql的limit是个不错的选择,通过ajax实现异步刷新,将当前页数和每页数量传入后台即可 1. 首先后台要拿到总记录数和所需显示数据列表,所以要分别写两个sql方法 我这里是通 ...
- linux系统下安装两个或多个tomcat
编辑环境变量:vi /etc/profile 加入以下代码(tomcat路径要配置自己实际的tomcat安装目录) ##########first tomcat########### CATALINA ...
- Hive学习之路 (九)Hive的内置函数
数学函数 Return Type Name (Signature) Description DOUBLE round(DOUBLE a) Returns the rounded BIGINT valu ...
- sql排序方法
SQL Server中使用order by charindex按指定顺序排序 在使用SQL Server数据库编程中,有时需要对取出来的数据按照指定的顺序排序,例如,取出来的数据某个字段值有张三.李四 ...
- Spring4自动装配(default-autowire)
§1 什么是自动装配? Spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系.因此,如果可能的话,可以自动让Spring通过检查BeanFactory中的内容,来替我 ...
- Redis(五)主从复制
本文转载自编程迷思,原文链接 深入学习Redis(3):主从复制 前言 在前面的两篇文章中,分别介绍了Redis的内存模型和Redis的持久化. 在Redis的持久化中曾提到,Redis高可用的方案包 ...
- [NOIp2015]运输计划 (二分 $+$ 树上差分)
#\(\mathcal{\color{red}{Description}}\) \(Link\) 在一棵带有边权的树上,可以选择使一条边权为零.然后对于所有\(M\)条链,使其链长最大值最小. #\( ...
- Service 服务发现的两种方式-通过案例来理解+服务外部访问类型+selector-label
1.环境变量 在创建一个Pod时,kubelet在该Pod的所有容器中为当前所有Service添加一系列环境变量. 例如,已存在名称为“redis-master”的Service,它对外暴露6379的 ...
- relu6激活函数
relu6 = min(max(features, 0), 6) This is useful in making the networks ready for fixed-point inferen ...
- 一个考验c语言和数据结构功底的小项目
想测一下自己c语言学习水平的朋友可以做一下这个项目试试,能做出来说明c语言已经入门了 #include<stdio.h> #include<stdlib.h> #inclu ...