LAV Filters:DirectShow 音视频解码滤镜
一套基于 ffmpeg 的 DirectShow 分离器与解码器,让 Windows 播放器几乎能播放任意格式的媒体文件。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v0.83
- 平台
- Windows
详细介绍
项目简介
LAV Filters 是一组基于 ffmpeg 项目中 libavformat 与 libavcodec 库构建的 DirectShow 滤镜,包含 LAV Splitter(分离器)以及音频、视频解码器,目标是让 Windows 上的 DirectShow 播放器几乎能够播放任意格式的媒体文件。
主要功能
- 格式分离:默认情况下,分离器会为所有经过测试、至少可部分正常工作的媒体格式注册,目前包括(但不限于)MKV/WebM、AVI、MP4/MOV、TS/M2TS/MPG、FLV、OGG、BluRay(.bdmv 与 .mpls)。
- 解码优先级:音频与视频解码器以相对较高的 merit 注册,通常会被默认选中;多数播放器也提供手动指定首选解码器的选项。
- 视频流自动选择:不可配置,直接挑选质量最好的一条。
- 音频流自动选择:可配置首选语言,填写以逗号或空格分隔的 3 字母语言代码(ISO 639-2),例如
eng ger fre,会按顺序依次尝试。若同一语言有多条音轨,则按声道数、再按编码方式选择,PCM 与无损编码优先于有损编码。 - 字幕选择模式:
- No Subtitles:默认关闭字幕。
- Only Forced Subtitles:只预选带 forced 标记的字幕,同时遵循语言偏好。
- Default:按语言偏好匹配字幕;无匹配或未配置语言则不启用字幕,带 default 或 forced 标记的字幕始终启用。
- Advanced:用自定义规则组合,可按文件的音频语言选择字幕。
Advanced 字幕规则语法
基本形式是由冒号分隔的一对「音频语言:字幕语言」,例如 eng:ger 表示检测到英语音频时加载德语字幕。
*匹配任意语言:*:eng表示无论音频语言都启用英语字幕;eng:*表示音频为英语时启用任意字幕。off仅用于字幕语言,表示关闭字幕,如eng:off。- 字幕标记可用竖线
|追加:d(default)、f(forced)、h(听障)、n(普通流,既非 default、forced 也非听障)。 - 标记前加
!表示该标记不存在。 - 多条规则用逗号或空格分隔,从左到右解析,第一个匹配的规则优先。
- 可用
@在标记末尾附加流名称匹配,仅支持单个词(空格是下一个记号的分隔符)。
示例:
*:*|f
任意音频语言下,加载任意带 forced 标记的字幕。
eng:eng|f eng:ger|f eng:off *:eng *:ger
音频为英语时加载英语或德语 forced 字幕,否则关闭字幕;音频非英语时加载英语或德语字幕。
jpn:ger|d!f
日语音频下加载带 default 但不带 forced 标记的德语字幕。
jpn:ger|d!f jpn:ger|!f jpn:ger ger:ger|f ger:eng|f ger:*|f
日语音频下依次尝试完整德语字幕(default 但非 forced)、非 forced 德语字幕、任意德语字幕;德语音频下只加载 forced 字幕,顺序为德语、英语、任意。
*:eng@Forced
任意音频下,选择标题中含 “Forced” 的英语字幕流。
Blu-ray 支持
在蓝光碟的 BDMV 文件夹中打开 index.bdmv 文件即可播放,LAV Splitter 会自动检测碟上最长的一条轨道(通常是正片)并开始播放。也可以直接打开 BDMV/PLAYLIST 下的播放列表文件(*.mpls)来播放指定标题。
安装与使用
- 解压压缩包。
- 运行
install_*.bat文件完成注册。注册需要管理员权限,必须在提权的命令行(“以管理员身份运行”)中执行。
部分分离器会以「不良」方式注册并强制所有播放器使用它们,Haali Media Splitter 就是其中之一。若要让 LAV Splitter 优先,需要卸载 Haali,或至少临时重命名它的 .ax 文件。
注意事项
- 滤镜仍在开发中,并非所有功能都已完成,也并非所有格式都受支持。
- 编译使用 VS2022 及仓库内附带的工程文件;旧版 Visual Studio 不受官方支持,但可能仍可使用。需要自行构建 FFmpeg:FFmpeg 以子模块形式包含在仓库中,指向一个打了若干补丁、以提升与 LAV 和 DirectShow 兼容性的定制 fork(https://gitea.1f0.de/LAV/FFmpeg)。仓库提供了使用 MSYS2 配合 MINGW/GCC 或 MSVC 编译 FFmpeg 的脚本。
- libbluray 使用 MSVC 工程文件编译,同样使用以 Git 子模块形式链接的定制版本(https://gitea.1f0.de/LAV/libbluray)。
- 项目许可证为 GPL-2.0。
本作品整理自 GitHub 开源项目 Nevcairiel/LAVFilters,原作者 @Nevcairiel,许可证 GPL-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v0.83当前版本
改进 Dolby Vision 增强层处理的稳定性;修复 Matroska 文件只能显示前 64 条轨道的问题;修正 TrueHD Atmos 源码输出的轻微时间偏差。
评论