资讯动态

LAV Filters:如何在 Windows 上搭建 DirectShow 分离器与解码器

发布时间:2026/8/27 19:47:27 来源:尧图企业网站定制
LAV Filters如何在 Windows 上搭建 DirectShow 分离器与解码器【免费下载链接】LAVFiltersLAV Filters - Open-Source DirectShow Media Splitter and Decoders项目地址: https://gitcode.com/gh_mirrors/la/LAVFiltersLAV Filters 是一套基于 ffmpeglibavformat/libavcodec的 DirectShow 过滤器为 Windows 上的 DirectShow 播放器提供媒体分离、视频解码和音频解码能力。它解决的核心问题是Windows 原生播放器格式支持有限而自搭解码链时容器解析、音轨/字幕选择和硬件解码往往分散在不同组件里难以统一。整套过滤器运行在 Windows 平台的 DirectShow 框架上配合 MPC-HC、PotPlayer 这类播放器使用源码需要 Visual Studio 2019 编译依赖自行构建的 ffmpeg 和 libbluray。它能处理什么类别支持范围容器MKV/WebM、AVI、MP4/MOV、TS/M2TS/MPG、FLV、OGG、DASH/HLS 流、蓝光 BDMV视频编码H.264、HEVC、VP9、AV1、VC-1、MPEG-2、VVC、SMC 等音频编码AAC、AC-3、DTS含 TrueHD/DTS-HD 直通、FLAC、Opus8 声道以上自动降混字幕default/forced/hearing impaired 标志识别4 种选择模式支持高级规则语法硬件解码DXVA2、D3D11、NVIDIA CUDAcuvid、Intel Quick Sync三个核心组件各负责一段管线LAV Splitter负责把容器拆分成视频、音频、字幕流并按规则预选流LAV Video Decoder负责视频解码是硬解入口所在LAV Audio Decoder负责音频解码与重采样支持把 TrueHD、DTS 等无损流以 bitstream 形式直接交给音频渲染器。源码分别位于 demuxer/LAVSplitter/、decoder/LAVVideo/、decoder/LAVAudio/。装完能跑通1. 获取源码并准备依赖。编译需要自行构建的 ffmpeg 和 libbluray完整目录分别放到源码根目录的ffmpeg/和libbluray/下仓库内附build_ffmpeg_msvc.sh等构建脚本。git clone https://gitcode.com/gh_mirrors/la/LAVFilters2. 编译。用 VS2019 打开LAVFilters.sln直接构建无额外工程配置。3. 注册并验证。以管理员身份运行构建产物目录下的install_*.bat完成 COM 注册。验证方法用播放器打开任意视频在播放窗口右键选择 FiltersMPC-HC或对应滤镜列表项确认列表中存在LAV Splitter、LAV Video Decoder、LAV Audio Decoder三条条目说明注册成功且已被当前管线调用。按场景走通播放蓝光原盘场景拿到 BD 蓝光目录BDMV 结构直接播放主影片或指定章节。在播放器中打开BDMV/index.bdmv文件。LAV Splitter 会自动识别盘中时长最长的播放列表通常是正片并开始播放。若要播放特定章节改为打开BDMV/PLAYLIST下对应的*.mpls文件播放器会直接定位到该 title。多语言字幕按下一节的字幕规则自动选择无需手动切换。配置音轨与字幕的自动选择场景影片同时含英语、日语音轨和多语言字幕希望打开文件后不手动挑选。右键播放器 → 过滤器 →LAV Splitter→ Settings在 Audio 页签填入语言优先级格式为 ISO 639-2 三字母代码用逗号或空格分隔如eng ger fre按顺序逐级回退同语言多条音轨时优先声道数多、无损编码的。在 Subtitles 页签选择选择模式共四种无字幕、仅强制字幕只加载带 forced 标志的轨、默认匹配语言偏好且 default/forced 轨始终启用、高级模式。高级模式的规则语法为音频语言:字幕语言加可选管道标志如eng:ger|f表示英语音轨时加载德语强制字幕*匹配任意语言off用于关闭字幕。多条规则用逗号或空格分隔从左到右解析第一条命中即生效例如eng:off *:eng表示英语音轨关闭字幕、其他音轨用英语字幕。勾选 Re-evaluate subtitles on audio language change 后切换音轨时字幕规则会重新求值。开启硬件解码场景4K HEVC 内容软解占用过高改为 GPU 解码。右键播放器 → 过滤器 →LAV Video Decoder→ Settings。在 Hardware decoding 页签选择加速模式DXVA2兼容最广泛、D3D11现代显卡、CUVIDNVIDIA、QuickSyncIntel 核显Auto 模式按显卡能力自动挑选。下方按分辨率分组勾选启用的硬解档位SD/HD/4K可在旧 GPU 上对 4K 内容单独关闭硬解回退软解。保存后重新打开视频任务管理器中 CPU 占用下降、GPU 视频引擎有活动即说明硬解生效。进阶调优Threads默认 Auto物理核心数。对 H.264/HEVC 等受限线程数的编码可手动调低避免线程超配导致的性能回退。Audio DelayLAV Audio 设置页以 1/100 秒为单位的延迟补偿解决音画不同步正值让音频延迟。Deinterlacing隔行源老电影、电视录像在 LAV Video 设置中启用软件去隔行BobWeaverBWDIF模式兼顾运动补偿质量硬解路径可单独勾选硬件去隔行。TrueHD/DTS bitstreaming在 LAV Audio 中开启直通让 Atmos 等空间音频绕过解码直接输出给渲染器注意接收端功放/声卡需支持对应格式。D3D11 设备创建默认到 feature level 12.1若显卡驱动对 12.x 支持有缺陷可回退 DXVA2 模式。排坑播放器没有调用 LAV 过滤器。常见原因是 Haali Media Splitter 等分离器以低优先级注册并抢占全部格式导致 LAV Splitter 进不了管线。卸载 Haali 或临时重命名其 .ax 文件也可以直接在播放器内把 LAV 设置为首选分离器/解码器。音画不同步。先确认当前是软解还是硬解硬解异常时切换对比再在 LAV Audio 的 Audio Delay 中按 1/100 秒步进微调不同步随播放时间漂移的优先怀疑文件时间戳本身的问题而非延迟设置。D3D11 硬解出现绿屏或花块。多为驱动对 D3D11 视频面处理不完善切换到 DXVA2 或 CUVID 模式验证若仍复现则回退软解并更新显卡驱动。强制字幕不显示。确认字幕模式不是 No Subtitles多音轨文件中强制轨与普通轨可能分离改用高级模式规则*:*|f显式加载 forced 轨。收尾字幕自动选择规则advanced subtitle config的实现入口在 demuxer/LAVSplitter/硬解各后端DXVA2/D3D11/cuvid/QuickSync的抽象与设备选择逻辑集中在 decoder/LAVVideo/decoders/想深入管线行为可以从这两处读起。【免费下载链接】LAVFiltersLAV Filters - Open-Source DirectShow Media Splitter and Decoders项目地址: https://gitcode.com/gh_mirrors/la/LAVFilters创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价