尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

从FFMS1到FFMS2 5.1:FFmpegSource2版本演进史与关键特性路线图

从FFMS1到FFMS2 5.1:FFmpegSource2版本演进史与关键特性路线图 从FFMS1到FFMS2 5.1FFmpegSource2版本演进史与关键特性路线图【免费下载链接】ffms2An FFmpeg based source library and Avisynth/VapourSynth plugin for easy frame accurate access项目地址: https://gitcode.com/gh_mirrors/ff/ffms2FFMS2FFmpegSource2是一个基于 FFmpeg 的跨平台解封装源库同时提供 Avisynth 与 VapourSynth 插件让你以帧级/采样级精确的方式打开媒体文件而无需直面 FFmpeg 繁杂的底层 API。这篇文章带你用 5 分钟回顾 FFMS2 从 FFMS1 插件到 5.1 版本的完整演进史并梳理每一代版本的关键特性路线图。先认识 FFMS2它到底解决了什么问题FFMS2 的核心理念一句话就能概括帮我打开并解压这个媒体文件怎么做到你说了算我只想要精确到帧的数据。它的主要能力包括帧精确与采样精确访问先索引、再取帧/取样本seek 快且准不依赖外部解码器唯一不靠外部 decoder 的通用源插件VFR 可变帧率支持唯一原生支持 VFR 的通用源Unicode 文件名支持系统代码页无法表示的文件名纯 C 公开 API库本身用 C 编写但 include/ffms.h 定义的 API 是纯 C 风格任何能链接 C 库的语言都能用源码按职责分成了几个清晰的模块模块路径职责src/core/核心库索引、音/视频源、文件句柄src/avisynth/Avisynth / Avisynth 插件src/vapoursynth/VapourSynth 插件src/index/命令行索引工具 ffmsindex第一阶段FFMS1 与 2.00 beta 时代 —— 从插件到独立库早期的FFMS1FFmpegSource只是一个 Avisynth 文件读取插件名字沿袭了 Avisynth FooSource 的传统命名。它没有独立的库形态索引与解码逻辑都绑死在插件里。2.00 beta 1是整个项目的分水岭重写大部分代码可以作为独立库创建索引、取帧不再只是插件beta 2 加入命令行索引工具ffmsindexbeta 3 引入 VFR→CFR 转换模式正式定名FFMS2.dllbeta 6 起集成 Haali splitter 解析 MPEG-TS / PS / OGMbeta 10 引入 CMake 构建系统、输出分辨率/色彩空间指定、UTF-8 路径编译期选项 一句话总结这个阶段FFMS2 完成了从Avisynth 插件到通用媒体源库 插件的基因改造。第二阶段2.1x 系列 —— 稳定性与体验大升级版本关键特性2.11宣告 100% 脱离 beta支持写时间码文件FFVideoSource/FFAudioSource自动重索引导出色彩度信息2.13构建系统从 CMake 换成autotoolszlib 压缩索引文件体积大幅减小移除 boost 依赖2.15音频解码大重写线性解码基本总是正确seek 对多数格式实现采样精确UTF-8 文件名变为运行时选项2.16输出色彩空间选择重写修复 yuv420p10/yuv444 等场景新增FFMS_SetOutputFormatV2支持高像素格式号2.17新增FFMS_GetVersion运行时版本查询弃用 API 开始触发编译警告2.18⭐新增 VapourSynth 支持支持 VP8、vc1image移除 postproc索引时可导出关键帧编号2.20HEVC-in-MKV、MKV 中的 Opus索引文件不再依赖架构跨 32/64 位可用修复大量 open-gop H.264 seek 损坏问题2.21支持32 条以上音轨索引移除内置 Matroska/Haali 解封装器统一交给 libavformat2.22FFMS2成为FFmpegSource2的短别名支持音频包之间的间隙文件2.23Avisynth 高比特深度输出新增内存缓冲区读写索引的 API第三阶段2.40 / 2.3000 时代 —— 拥抱现代格式与元数据这是社区贡献最活跃的一段时期FFMS2 从能播进化到信息完整VapourSynth API4 支持取代旧 API3 成为主力Avisynth Linux 支持、浮点格式输出VapourSynth 与 AvisynthVP9 支持正式加入使用 FFmpeg新的解码 API导出旋转Rotation、立体Stereoscopic元数据不连续时间戳CTTS支持——变帧率 MKV/MP4 的帧时长从此精确中途流参数变更画面分辨率/编码切换修复LastEndTime轨道属性让最后一帧的时长可被脚本感知第四阶段5.0 与 5.1 —— 现代 FFmpeg 时代 版本号从 2.x 直接跳到 5.0意味着一次彻底的地基升级FFMS2 5.0FFmpeg 6.1 成为最低要求并修复了所有兼容问题修复 AV1 解码新增HDR10 与 DolbyVision 元数据导出移除无法修复的rffmode丢弃 VapourSynth API3 支持ffmsindex 支持配置进度更新间隔完整解封装器选项可通过 FFMS2 API 传递FFMS2 5.1当前版本FFmpeg 7.1 成为最低要求configure.ac 中明确要求libavformat 61.7.0新增分层解码支持例如 spatial MV-HEVC 这类分层编码内容当前版本号可在 include/ffms.h 的FFMS_VERSION宏中确认5.1.0。关键特性路线图速查表版本里程碑特性最低 FFmpeg2.00 beta 1独立库化可脱离插件使用—2.11正式发布脱离 beta—2.13zlib 压缩索引、autotools 构建0.62.15音频解码重写采样精确 seek—2.18VapourSynth 支持、VP8—2.20HEVC-in-MKV、架构无关索引—2.23Avisynth 高比特深度、内存索引—2.40VS API4、VP9、浮点输出、CTTS 支持—5.0HDR10/DolbyVision 元数据、AV1 修复6.15.1分层解码spatial MV-HEVC7.1快速上手获取与构建 FFMS2如果你已经了解仓库地址https://gitcode.com/gh_mirrors/ff/ffms2按 autotools 的常规流程即可构建./autogen.sh ./configure --enable-avisynth # 按需启用 Avisynth 插件 make构建依赖只有FFmpeg和zlib非常轻量。更多选项说明见 INSTALL。延伸阅读核心文档完整版本记录doc/ffms2-changelog.mdC API 文档doc/ffms2-api.mdAvisynth 用户手册doc/ffms2-avisynth.mdVapourSynth 用户手册doc/ffms2-vapoursynth.mdAvisynth 脚本辅助etc/FFMS2.avsi从 FFMS1 的单一插件到 5.1 的分层解码与 HDR 元数据FFMS2 二十年的演进路线很清晰让打开任意媒体文件并精确取帧这件事尽可能简单、可靠、跨平台。无论你是 Avisynth 老用户还是 VapourSynth 新玩家这条演进史都值得花两分钟了解一遍。【免费下载链接】ffms2An FFmpeg based source library and Avisynth/VapourSynth plugin for easy frame accurate access项目地址: https://gitcode.com/gh_mirrors/ff/ffms2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表