Media Center, LAV filters, and external subtitles

By | September 5, 2013

First of all, if you’re using an external player for watching your media, like Media Player Classic Home Cinema, then this guide isn’t going to do much for you.  If your media files have embedded subtitle files, then this guide won’t be much of a revelation to you either.  However, if you’re one of those few poor souls who insist on using the Media Center internal player, are dying to use LAV filters as your only codec, and continuously kick yourself because you have a few films that have external subtitle files (like .srt), then this guide is definitely for you.

I’ve wanted to use LAV filters for a long time now.  I love ffdshow, but, even more, I love LAV’s simplicity and quality of playback.  However, LAV leaves the media player to load external subtitle files and I just couldn’t get the internal player for Media Center to do that for me.  Well, I finally figured it out.  The information may have been out there already, but I sure never found it.  Anyway, let’s move on to the good stuff.

What You Need

First of all, you need the right software for your platform – either x64 or x86.  This guide assumes x64, but should go both ways easily.  I also haven’t tried this on Windows 8 (I used Windows 7 Pro x64), but it should work about the same.  Here’s what you need:

  • Latest LAV filters – Unless you’re going absolute minimalist, just get the latest (Installer)
  • Latest xy-vsfilter – Get the appropriate one for your platform.  In my case, the 64-bit installer.
  • Latest Win7DSFilterTweaker – It’s possible this isn’t needed, but my HTPCs have been running a while and it’s possible some of my merits changed or got messed up.  I reset them, but still found I needed this.  It’s a nice tool anyway.

Great.  Once you have all this stuff in a place you can easily get to, let’s get on with the installation steps.

LAV Filters: Installation and Configuration

First, we’ll install the LAV filters.  I’m assuming you have administrative rights, so just kick off the executable, click Next a time or two, and then you’ll eventually get to something of worth – components selection.  I installed them all and you should too.

Install them all

Install them all

Awesome.  Click Next another time or two and we come to some more important stuff – splitter formats!  I left this at default settings and you should too unless you know more than me, and you just might.  However, if you come to me complaining that your stuff’s broke, I’m going to call you stupid and assume you didn’t follow my directions.  It’s a win/win for me.

Just leave at defaults.  Really!

Just leave at defaults. Really!

Click Next some more and let it finish its install thing…

The install thing

The install thing

When the install is complete, you’ll get the option to open a configuration panel for each item – the splitter, video, and audio filters.  Put a check in each of them and click Finish.

Enable configuration for all

Enable configuration for all

There should be three configuration panels pop up after clicking Finish.  If not, go find the configuration links on your system and do it the hard way.  The first we’ll take a look at is the LAV Splitter Properties panel.  Locate Enable System Tray Icon in the bottom-left hand corner and put a check in it.  Just one note here, if you have a mixture of media that includes internal and external subtitle files, then you might want to set Subtitle Selection Mode to No Subtitles.  Doing that will prevent both LAV and xy-vsfilter from duplicating subs on your screen.  Click OK.

Just enable the tray icon

Just enable the tray icon

Yep, that’s it.  Pretty much, just so we can see that the splitter is working when we launch a video.  We don’t really need anything else configured here unless you want to get into default language tracks for your audio (multiple track support).  We can’t make use of the subtitles support as we’re the poor bastards with external subs – remember?

The second panel we’ll configure is the Video Settings Properties.  We actually get to do something here.  Depending on the video card you have, you’ll want to choose an appropriate mode of hardware acceleration.  The options are fairly self-explanatory though.  For me, I have an ATI Radeon HD5450, so I actually have two choices – DXVA2 (copy-back) or DXVA2 (native).  I chose DXVA2 (native).  When you select a supported option, it will be shown by the <Active> indicator.  That’s pretty much it for this part, but tick box to enable the system tray icon here as well.

Set your DXVA mode

Set your hardware acceleration decoder

After applying video settings, we’re left with the last panel – Audio Settings Properties.  We have a few possibilities here.  If your audio goes straight out to a TV, you probably don’t need any of the bitstreaming options.  However, if you go out to an A/V receiver that is capable of decoding digital formats, you’ll want to enable all of the supported formats of your receiver in the appropriate section.  Mine supports all listed, so I checked them all off.  Also, enable the system tray icon.

To bitstream, or not to bitstream...

To bitstream, or not to bitstream…

Once you’ve applied and hit OK on that panel, you’re done with LAV.  Let’s move on to xy-vsfilter.

xy-vsfilter: Installation and Configuration

Locate your xy-vsfilter installation package and get started.  For this particular installation, it’s mostly just clicking Next a bunch of times.

xy-vsfilter installation: let's go!

xy-vsfilter installation: let’s go!

Since this installation is so boring, I figured I’d tell you a little bit about what xy-vsfilter is.  Maybe you’ve heard of VSFilter.  No?  Hmmm…DirectVobSub?  No?  Fine.  xy-vsfilter is a fork of the VSFilter.dll which is a subtitle filter, responsible for connecting to your video decoder during playback.  In short, it’s a more better subtitle displayer thingy.  Got it?  Good.

Installalala

Installalala

Yep, a bunch of Next, Next, Next…anddddddddd we’re done!  Woo!  No further configuration is necessary for xy-vsfilter.  It works right out of the box.

xy to the z

Don’t click the box.  Don’t do it!

At this point, you may actually go to Media Center and try playing a known media file that has an external subtitle file with it.  The subtitle file should be named exactly like the media file, except for the extension.  You’ll want to run Media Center in a window so that you can see your task bar icons.  If you can see subtitles in Media Center and can also confirm the LAV Splitter, LAV Audio, and LAV Video icons, along with the xy-vsfilter icon (it’s a green arrow) are all showing, then you don’t even need Win7DSFilterTweaker – you’re working!  You’ll want to make sure for any AVI, MP4, etc. files that may have subs also.  If any of those aren’t working, continue on with this guide.

Win7DSFilterTweaker: Installation and Configuration

Installing Win7DSFilterTweaker is easy because it doesn’t install.  It’s a standalone application and you can run it from anywhere.  It only needs administrative privileges to run as it modifies portions of the Windows Media Foundation.  Anyway, go ahead and launch it and you should come to the initial box.

Options box

Options box

We’re only going to mess with Preferred decoders, so go ahead and click on that button.  We’ll get a much larger configuration box open up.  If you’re on x64 platform like me, you’ll get configuration options for both 32-bit and 64-bit systems.  Otherwise, you’ll get 32-bit only.  I only need to configure the 64-bit side since Media Center’s internal player utilizes the 64-bit version of Windows Media Player.

What we’re going to do is choose USE MERIT as the preferred decoder for all VIDEO formats, with the exception of WMV files (unless you just want to).  For all AUDIO formats, select LAV Audio.  Once complete, click the Apply & Close button, which returns us to the initial options box.  Just click Exit when there to close the tweaker application.

We’re done with the software portion!  Let’s go to Media Center and test it out!

Playback Support Confirmation and Conclusion

For the final portion, we’ll be checking playback within Windows Media Center.  Before we confirm everything is working the way we want, let’s take a look at the sample file information in MediaInfo.  My file is the movie Kon-Tiki, and is encoded to around 8Mbps AVC and has a 6-channel DTS track contained in an MKV.  It has an external SubRip SRT subtitle file (not shown in MediaInfo).

MediaInfo results

MediaInfo results

Now, let’s take a look at how things appear in GraphStudioNext.  GraphStudioNext is a continuation of a continuation of the original DirectShow filter graphing tool that was included in the Microsoft DirectShow SDK years ago.  Basically, it just shows you how all this crap we installed carves up your media file and spits it out to your output devices.  As you can see below, everything looks good

Filter chain looks good

Filter chain looks good

Well, all that’s left is to fire up Media Center, locate Kon-Tiki in Media Browser Classic, and see what happens.  The first shot shows the video playing, with all expected icons in the task tray (LAV Splitter, Video Filter, Audio Filter, and xy-vsfilter).

WECANHAZICONZ?

WECANHAZICONZ?

This final shot is just the individual stream properties being handled by the LAV Splitter.

Just another screenshot of awesomeness

Just another screenshot of awesomeness

So, let’s recap.  This guide provides you with:

  1. LAV Filters as your sole codec “pack”.
  2. xy-vsfilter for external subtitle support since LAV Filters doesn’t provide it (it does internal though!).
  3. Playback of all formats using the previous two filters within Windows Media Center.
  4. Hardware accelerated playback of all capable formats, with supported hardware.
  5. Relatively easy installation and configuration process to achieve all of the above.

I hope this guide helps some of you that just can’t let go of Windows Media Center and its internal player.  LAV Filters are an excellent package for playback and that means something coming from a lifelong fanboy of ffdshow.

29 thoughts on “Media Center, LAV filters, and external subtitles

    1. Jon Post author

      I’m not sure if this is how it works, but go into xy-vsfilter Configuration > Misc. tab. Put a check in Hide subtitles. See if that works the way you want.

      Reply
  1. CBers

    Also, I have CoreAVC installed due to my nVidia graphics card, but if I use that as the preferred decoder, the xy-vsfilter doesn’t seem to work.

    Any ideas of how to use both, or is LAV Video only compatible with xy-vsfilter ??

    TIA.

    Reply
    1. Jon Post author

      In CoreAVC settings, see if Prefer CUDA ACceleration is checked. If so, uncheck and see if it works. It should still use CUDA, but it also causes a change on filter chain that allows vsfilter to work. At least, it did with ffdshow and Haali…might work here also.

      Reply
    1. Jon Post author

      I’ve never had to…only ever included forced subs or English if it’s a foreign film. There might be an option for internal player and it should be possible using MPC-HC and assigning a new remote mapping.

      Reply
      1. Bread

        grr me wishes. “work” sucks. No computer infront of me (4 hour lectures) followed by 4 hour lab where no cellphones allowed.

        Intense shit.

        Reply
  2. Charlie

    Is this an “almost” replacement for shark007? I did notice that shark007 does include the LAV filter. My only need is that WMC7 play MKV files (and avl, mpg, etc) and send DTS, DTS HD, Dolby to my A/V via my HDMI.

    Reply
    1. Jon Post author

      Shark’s includes everything, but you only need LAV, if configured correctly. If you follow this guide, it will do what you want. If it misses something, come back and I’ll figure it out for you.

      Reply
  3. chris

    The problem I had with xyvs filter vs direcvobsub was positioning the subtitles. I like mine moved all the way to the bottom, and it didn’t work in xyvs.

    Reply
    1. Jon Post author

      Hopefully xy can get that fixed so everyone can benefit from performance and placement. Wasn’t aware it couldn’t do positioning as I have always just left it at default. Thanks.

      Reply
  4. DougDude

    Hello,
    Awesome tutorial. I just have one problem. When trying to use the tweak application and selecting merit for video and LAV for audio, I get an error when I click apply saying it couldn’t write to the registry. I have UAC off, I’m an admin, and I disabled M$ Essentials antivirus. I also right clicked the app and ran as admin. Not sure why it won’t work :(

    Reply
    1. Jon Post author

      Is this on Win7 or Win8? I’ve never encountered this, or seen it happen anywhere else either.

      Reply
      1. DougDude

        Jon,
        I found out the issue. I did some research and found I have to place the file in the c:\windows\syswow64 folder. Once I put it in there, it works fine.

        Thanks!

        Reply
  5. Rob

    I used your guide above to get LAV filters working in windows 8. This was a huge improvement over what I was previously doing. I have an HTPC with a intel core i3 3225 cpu and no graphics card. I am using the on board HD4000 graphics. I previously was using a combination of wmc and xbmc. xbmc for movies and wmc for tv. XBMC does not support Intel quick sync. The only thing you can do is use the cpu to do software rendering of the video. I previously had a TVIX 6400 and the video quality was substantially better than what I was getting from XBMC. Very dissappointed. After using your guide for LAV filters and installing Media Browser. I am now able to take advantage of the HD4000 onboard graphics and am getting very high quality vide. Huge improvement while keeping power usage to a minimum (no descret video hogging power). Very happy with this.
    After installing the LAV filters and subtitle filter and using the windows 7dsfilter tweaker. I was able to inable the LAV filter using “Use Merit”. In windows 8 everything worked great and the icons showed up in the taskbar.
    I have now upgraded to windows 8.1 and LAV still works (based on Graph Studio) however the icons no longer stay pinned to the taskbar. They show up when I run GraphStudio to inspect a file however they dissapear after I close Graph Studio. This makes impossible to use the xyvsfilter to change subtitles.
    Any body else having this issue? Anyone know how to fix it?

    Reply
    1. Rob

      Is anyone using this successfully with Windows 8.1, worked fine for me in Windows 8 however I cannot get the system tray icons to work in windows 8.1. I just did a complete windows 8.1 reset which is a pain and the problem still persists. Cannot get the system tray icons to show even after enabling them in the Lav filter set up.

      Reply
  6. gthrift

    Jon, are you using these settings with any copy protected live TV? I was having some issues last night with premium channels. I had selected use LAV instead of merit and when I switched back to Microsoft, the channels worked again. Will use merit use the right decoder for premium channels?

    Reply
    1. Jon Post author

      If using merit, Media Center should use built-in for TV. I’ve had no issues on any of mine using that and I use an HDHR Prime with premium content.

      Reply
  7. Lee

    Great guide and it worked perfectly for my MKV files. I also have some other movies in AVI format and on those the xy-vsfilter does not show up in the task bar and of course the subtitles are not displayed. I tried setting it to use merit and then to use LAV for all the files types except WTV but I still cannot get it to work. In other words, it appears that xy-vsfilter is not loading on the avi files. Is there a way to have it work with avi? Thanks.

    Reply
    1. Jon Post author

      You could try setting the Microsoft decoder for avi files and then make sure Media Foundation is enabled for those file types only. That may allow the vsfilter to load. I honestly don’t think I tried an AVI with subtitles, but I know that I have some somewhere. I’m out of town for the holiday, so I probably won’t get to test this until next week.

      Reply
  8. Andreas

    Hi and thanks for your excellent guide. Saved my bacon.

    I uninstalled any codecs packs and filters on my system, rebooted and then followed your instructions exactly. Mostly stuff works perfectly but I have one holdout movie that doesn’t want to display external subs. I tried it in VLC and it works fine there.

    I know this is not much for you to go on but any ideas? I’ve copied the MediaInfo for the file below. The sub file is an srt.

    General
    Complete name : S:\Movies\Feature Films\Space Battleship Yamato\Space Battleship Yamato.avi
    Format : AVI
    Format/Info : Audio Video Interleave
    Format profile : OpenDML
    File size : 2.19 GiB
    Duration : 2h 18mn
    Overall bit rate : 2 260 Kbps
    Writing application : VirtualDubMod 1.5.10.2 (build 2540/release)
    Writing library : VirtualDubMod build 2540/release

    Video
    ID : 0
    Format : MPEG-4 Visual
    Format profile : Advanced Simple@L5
    Format settings, BVOP : 2
    Format settings, QPel : No
    Format settings, GMC : No warppoints
    Format settings, Matrix : Default (H.263)
    Codec ID : DX50
    Codec ID/Hint : DivX 5
    Duration : 2h 18mn
    Bit rate : 1 992 Kbps
    Width : 1 280 pixels
    Height : 536 pixels
    Display aspect ratio : 2.40:1
    Frame rate : 23.976 fps
    Color space : YUV
    Chroma subsampling : 4:2:0
    Bit depth : 8 bits
    Scan type : Progressive
    Compression mode : Lossy
    Bits/(Pixel*Frame) : 0.121
    Stream size : 1.93 GiB (88%)
    Writing library : XviD 1.2.0.dev47 (UTC 2006-11-01)

    Audio
    ID : 1
    Format : AC-3
    Format/Info : Audio Coding 3
    Mode extension : CM (complete main)
    Format settings, Endianness : Big
    Codec ID : 2000
    Duration : 2h 18mn
    Bit rate mode : Constant
    Bit rate : 256 Kbps
    Channel(s) : 2 channels
    Channel positions : Front: L R
    Sampling rate : 48.0 KHz
    Bit depth : 16 bits
    Compression mode : Lossy
    Stream size : 254 MiB (11%)
    Alignment : Split accross interleaves
    Interleave, duration : 42 ms (1.00 video frame)
    Interleave, preload duration : 500 ms

    Reply
    1. Jon Post author

      Grab mkvtoolnix, and use mkvmerge to create an MKV file including the avi and external subtitle file. See if it works then.

      Reply
  9. Andreas

    Hey Jon.

    Thx for the tip. I tried that. Didn’t work. I think this file is just frelled since other files work!

    Reply
  10. Aaron

    Any thoughts as to why after following your instructions it won’t work in WMC but does in Windows Media Player? My setup is W7 64 Ultimate with a Radeon 6450 going to a Denon AVR-1610. Thanks.

    Reply
    1. Mandon

      I know this is an old article, but I have this problem too.
      Most files work fine in both Windows Media Centre and Windows Media Player, but some give me a blank screen in WMC and work OK in WMP.
      How can this be? I thought WMC was just a wrapper for WMP.
      Any help would be appreciated,

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *