xy-VSFilter and XySubFilter are a maintained fork of the classic VSFilter subtitle renderer, now drawing SSA and ASS subtitles through libass, the engine mpv and VLC use, so styled typesetting matches wherever you play it.
Subtitles have to be drawn onto the picture by something, and on Windows that something has usually been VSFilter.
xy-VSFilter is the fork that kept going, and it now draws them through libass.
That one change is why it is worth installing over the original.
Why the libass Backend Matters
libass is the subtitle renderer mpv, VLC and FFmpeg all use. It is the closest thing the format has to a reference implementation.
Styled ASS typesetting - the karaoke, the positioned signs, the fonts that move - can look subtly different depending on which renderer draws it. Switching to libass means a DirectShow player shows you what everyone else sees.
Recent builds go further and let you switch the rendering backend, showing which one is active in the interface, so you can compare the two directly on a file that renders oddly.
Embedded fonts are handled properly too, which matters for subtitle files that carry their own typefaces rather than assuming you have them installed.
Which of the Two to Install
One download contains two different filters, and nothing on the package tells you which is which.
| Filter | What it needs | Use it when |
|---|---|---|
| xy-VSFilter - VSFilter.dll | Nothing beyond a DirectShow player | You want a faster, better-rendering replacement for the classic VSFilter |
| XySubFilter - XySubFilter.dll | A compatible subtitle consumer - madVR 0.87.5 or newer, or MPC-HC 1.7.2 or newer with EVR-CP | You run madVR and want subtitles composited at full quality |
Both x86 and x64 builds ship in the package. Match the architecture of the player you are registering against, not the one Windows happens to be.
madVR compatibility was reworked in a late-2025 build, so if XySubFilter and madVR fought each other for you in the past, it is worth another try.
The Install Step Almost Everyone Misses
Copying XySubFilter.dll over an old one is not enough. The package includes an Install batch file that registers the autoload helper, and without it XySubFilter never enters the DirectShow graph for external subtitle files at all.
This is behind most reports of installing it and seeing no change whatsoever. Nothing is broken - the filter is simply never asked to do anything.
The other prerequisite is a clean start. Any previously installed VSFilter has to go first, and replacing the DLL in place does not count as removing it.
If you are registering the DLLs by hand rather than running the installer, the guide on registering DLL and AX files covers the commands.
Why the Fork Is Faster
The original VSFilter drew subtitles in RGB. Since almost all video is stored as YUV, every frame carrying a subtitle had to be converted to RGB, drawn on, then converted back.
xy-VSFilter renders in YUV directly and skips both conversions. On a busy typeset, that is the difference between smooth playback and dropped frames.
It also caches more aggressively than the original, which accounts for most of the rest.
The AviSynth Side
VSFilter.dll doubles as an AviSynth plugin, and for a lot of people that is the whole reason to download it.
- TextSub burns an external subtitle file into the frame, working natively on 10-bit and 16-bit clips.
- MaskSub generates a subtitle mask on its own, with a selectable pixel type.
- VobSub handles the older bitmap subtitle format from DVDs.
- TextSubSwapUV fixes sources where the chroma planes arrive the wrong way round.
Plenty of encoding scripts still call TextSub by name, and VirtualDub2 will run them against an AviSynth+ chain without complaint.
Who Should Look Elsewhere
The tell is which player you use. MPC-HC and MPC-BE both render subtitles internally and need nothing added for ordinary playback.
The comparison of which of the two suits you covers the difference between them, and subtitles work either way.
Install this if you run madVR, if you write AviSynth scripts, or if a specific file renders wrongly in your player and you want a second renderer to compare against.
If you would rather not manage it yourself, the K-Lite Codec Pack and X Codec Pack both bundle it alongside decoders and a player.
Related Subtitle Work
This filter renders subtitles. It does not edit them, and it does not put them inside a file.
For fixing timing, translating or converting between subtitle formats, Subtitle Edit is the tool. For attaching a subtitle track to an MKV so it travels with the video, MKVToolNix does it without re-encoding anything.
If subtitles are missing for a reason that turns out not to be this filter, the Codec Finder will tell you what a specific file actually contains.
One old conflict worth ruling out. Haali Media Splitter claims filter-graph priority aggressively, and an orphaned registration of it can stop subtitle rendering working no matter which filter you install.
Quick questions
xy-VSFilter or XySubFilter - which do I install?
xy-VSFilter unless you run madVR. XySubFilter needs a compatible subtitle consumer to do anything at all, and madVR is the usual one.
I installed it and nothing changed. Why?
Most often because the Install batch file was not run, so the autoload helper never registered. Copying the DLL over the old one does not work on its own.
What does the libass backend actually change?
libass is the renderer mpv, VLC and FFmpeg use, so styled ASS subtitles are drawn the same way they are everywhere else. Recent builds let you switch backends and see which is active.
Do I need it for MPC-HC or MPC-BE?
Not for normal playback - both render subtitles internally. You would add it if you run madVR, or if you want to compare renderers on a file that looks wrong.
Can I keep my existing VSFilter installed too?
No. Any previous VSFilter has to be removed first, and swapping the DLL in place does not count as removing it.
Does it work as an AviSynth plugin?
Yes, and for many people that is the point. VSFilter.dll provides TextSub, MaskSub, VobSub and TextSubSwapUV, with native 10-bit and 16-bit support.
The wider video codecs catalogue covers the decoders and filters worth pairing with it, including DirectVobSub if you want the original for comparison.
Download xy-VSFilter and XySubFilter and see how it handles your subtitles, or tell us how you got on if you have used it before.
