MKVMania – Displaying PGS Subtitles in MKVs Using Haali

by Damian on June 17, 2010 · 40 comments

in Guides

One popular program for creating mkvs that I have written about earlier is MakeMKV, which in a few simple clicks can convert your DVD or Blu Ray disc into an mkv. The one “drawback” is that for Blu Ray discs MakeMKV keeps the subtitles (PGS format) in its original form. While this sounds great, support for playback of PGS subtitles embedded in mkvs is scarce at the moment (although I have confirmed that PGS subtitles in mkvs are now supported in the PCH C-200 via the latest beta firmware). Fortunately it now appears that you can get PGS subtitle support in almost any player that supports DirectShow filters. Before going over the steps needed to set this up, it should be noted that currently MakeMKV is the only mkv program that I know of that supports embedding PGS subtitles into an mkv. For the purpose of this guide it is assumed that the mkv was created using MakeMKV. Also, there is another catch which you can read about in the “Final Thoughts” section.

I wanted to give a big thanks to SamuriHL for helping me set up and document the steps needed to get PGS subtitles working.

Files To Download:

Setup:

1. Install Haali Media Splitter. During the installation I make sure “Disable MPC internal Matroska splitter” and “Disable Gabest’s Matroska splitter” and unchecked. You can also uncheck any file types you don’t want Haali to be associated with.

2. Install ffdshow. Go into the DXVA Video decoder configuration in ffshow

  • Make sure that the “Subtitles” option is checked. Verify that all formats are enabled and that “Embedded subtitles” is enabled as well.

  • Now go into the “Hardware acceleration” configuration, enable H264 and VC1, and select “Surface overlay” for Post processing. Once done hit the “OK” button to save all changes and close out. If you are using Windows Media Player this is all that should be needed to be done. If using MPC HC, continue with Step 3.

3. Install MPC HC. Open MPC HC, go to View -> Options

  • Under “Playback” make sure “Auto-load subtitles” is disabled.

  • Under “Internal Filters” make sure the “Matroska” Source Filter is disabled.

  • Under “External Filters” click on the “Add Filter” button and choose ffdshow DXVA Video Decoder, ffdshow subtitle filter, and ffdshow Audio Decoder. Set each filter as “Prefer”. Once done click “OK” to save changes and exit.

Results:

My favorite movie for testing out PGS subtitles is District 9 since it includes forced subtitles. Using MakeMKV I created an mkv of my District 9 Blu Ray disc, which you can see below the MediaInfo.

Launching the District 9 mkv in MPC HC you can see the PGS subtitles show properly.

Launching the District 9 mkv in Windows Media Player you can see the PGS subtitles show properly.

Final Thoughts:

With a couple simple steps PGS subtitles in mkvs can now be supported in any player that supports DirectShow filters. I mentioned earlier that there is catch though. It appears that the Haali Media Splitter does not work with mkvs created with MKVMerge that contains DTS(MA) audio tracks, a very strange issue that I have confirmed as well as SamuriHL. The best way to explain this problem, most of my Blu Ray mkvs were created using MKVMerge (either using the Clown_BD + MKVMerge method or using Another EAC3To Gui). These mkvs play flawless using a splitter other then Haali. However, with Haali installed the same mkvs with DTS(MA) stutter like crazy. Creating the same exact mkv using MakeMKV, the mkv with DTS(MA) plays flawless with Haali. I don’t know if this is a Haali or MKVMerge issue, but I am leaning towards it being a Haali issue (maybe Haali and MakeMKV are working together lol). So until this issue gets resolved I will have to continue with my current setup of using the MPC matroska splitter and converting the PGS subtitles to IDX/SUB which is perfectly fine with me. However, for people who use MakeMKV for their entire collection this is great news.

One other potential issue worth mentioning that SamuriHL noted, using Haali breaks TMT3 (TotalMediaTheatre). Even though in the Haali setup you can tell it not to split ts files it still does. The hack around this to rename the ts.dll in the Haali directory (64 bit version is ok to leave) and that should fix it.

UPDATE – THE MPC INTERNAL MATROSKA SPLITTER NOW SUPPORTS PGS SUBTITLES, SEE HERE FOR HOW TO SET UP IN PLACE OF HAALI.





Article by

Hi, my name is Damian, and I'm tech gadget addict! Although I always had some interest in technology, it wasn't until I got my EX470 and more importantly found Mediasmartserver.net, that my interest became an addiction. My goal, aside from world domination and to see the Mets/Broncos win another championship, is to set up the perfect digital home where all my media is available at the click of a button. When I am not writing for Mediasmartserver.net you can find me over at my blog at http://www.adigitalhomeblog.com or follow me on twitter


{ 40 comments }

Brajesh June 17, 2010 at 9:28 am

Hey Damian. How to handle subtitles is a big issue as support varies so wildly. I have already converted many, many of my Blu-rays to standalone movie-only MKVs with IDX subs. I didn’t know until recently that Syabas’ NMTs don’t support higher than 480p subs. The Dune 3.0 doesn’t either. Now, what to do? Wait for NMTs to support hi-res subs (who knows when) or downconvert them to 480p w/o re-ripping (how to convert)? Or, revert to PGS (is it SUP or SUB, and how to convert?) from IDX as the Popcorn devices now support them? What would you suggest? Thanks.

SamuriHL June 17, 2010 at 10:43 am

There’s no way to get PGS subs back into those files without re-ripping the original disc with MakeMKV. You could use MKVCleaver (a GUI for mkvextract in the mkvtoolnix) to extract the subs, convert them to 480p (I think BDSupToSub will do that but I’m not positive) and then use mkvmerge to replace the subs. The Popcorn devices have a beta firmware to support SUP (PGS) embedded subs. I’m not sure if that’s available to the public yet? I plan on redoing all mine with MakeMKV and calling it good. I like the embedded PGS subs.

Brajesh June 17, 2010 at 10:56 am

Thanks for your reply. The re-ripping route may be the smarter thing to do. I assume the Popcorn’s beta firmware supports all resolutions of PGS subs inside MKVs.

SamuriHL June 17, 2010 at 11:05 am

It’d have to. I’ve never heard of a 480p PGS sub.

Damian June 17, 2010 at 11:16 am

My understanding the PGS subs are all 1080p. Regarding the PCH when I spoke with Werner at Syabas specifically about the hi res issue (1080p IDX/SUB subtitles) he mentioned that it was a very high priority to get this fixed. Now unfortunately I don’t know what that means as far as a timeline. Since the new SDK is now out I am hoping this should be an easy fix. You may want to sit tight with your current mkvs for a few more weeks to see if there are any further developments before deciding if you should rerip your collection. Only the first version of the beta firmware has been released, so this is something that could be added before the firmware is made public

SamuriHL June 17, 2010 at 11:26 am

Damian, not to complicate things but there is a configuration I forgot about that works. MKVMerge + MPC-HC (MPC splitter) + PGS subs. You’re probably going “Wait, WHAT?”! The way to make this work is to have the PGS subs as external files. Then configure ffdshow to pick them up. You can then right click on ffdshow’s video icon and select the proper subtitle file. This works fine. That way you could keep your mkvmerge files, extract the PGS subs from your originals, and drop them into your mkv dir. (I put them in a subfolder called subtitles and set ffdshow to look in .\subtitles). It’s another option, anyway.

Damian June 17, 2010 at 11:33 am

@ SamuriHL – haha, when will this stuff ever not be complicated!!! I saw that option in the FFDShow subtitles section. Definitely a very handy option, especially if you have already ripped the file and forgot to get subs since there are several sites where you can get separately. Good info to know either way.

SamuriHL June 17, 2010 at 11:39 am

Yea, I used it in my testing over the weekend, but, I realized I liked the embedded subs better as it doesn’t clutter up your machine with tons of SUP files. However, I just got taken to class on sub file naming conventions.

movie.eng.sup
movie.eng2.sup

etc

So, sweet!

Damian June 17, 2010 at 11:44 am

Yeah, I think everyone will just have to decide what works best for their setup. If you have a mixed environment like myself (HTPCs, PCHs, Xtreamers, etc….) the PITA is trying to find a universal format that every device can support. Right now that format is mkv with 480p IDX/SUB subtitles embedded. Hopefully PGS subs will quickly be adopted and then it will become a no brainer!!! FYI I did submit the bug on the Haali site this morning, who knows if it will go anywhere…

SamuriHL June 17, 2010 at 11:46 am

Great, thanks! For me it’s going to be MKV’s with embedded PGS subs, ffdshow for dxva and sub support, and haali so I can use WMP as my player. I still need to look into 7MC and see what’s going on there as I wasn’t able to get chapters or subs to work when I tried the other day.

SamuriHL June 17, 2010 at 1:15 pm

http://www.codecguide.com/windows7_preferred_filter_tweaker.htm

This needs to be added to the instructions if you want this stuff to work in 7MC and/or WMP. WMP requires 32 bit ffdshow and 7MC requires 64 bit ffdshow (if you’re using 64 bit W7). On h264 and vc1 make sure ffdshow dxva is selected. Then you’re good to go.

Damian June 17, 2010 at 3:11 pm
SamuriHL June 17, 2010 at 3:27 pm

Of course you did. :) Sweet! I have it working in WMP and 7MC on all my machines now. I’m using Haali for obvious reasons for now. On machines that I don’t bitstream (i.e. all of them except my main HTPC) decoding DTS core to LPCM works perfectly with Haali. It’s only bitstreaming that’s an issue.

Damian June 18, 2010 at 5:24 am

Mosu (MKVToolnix developer) just posted a new build that supports PGS subtitles from the original source:

http://forum.doom9.org/showthread.php?p=1409590#post1409590

I downloaded and have confirmed that this does indeed work as advertised. Hopefully in the near future we will start seeing widespread adoption of PGS subtitles in mkvs

ashman June 18, 2010 at 7:19 am

Just a side note for those that may not know (I didn’t). One of the cool things about PGS subs (vob’s may do this also), is that they move around on the screen based on who may be speaking at the time. For instance, if two people are currently on screen (one person on the left and one on the right), if the person on the left speaks, the subs will show up underneath that person. Pretty neat.

BTW, using Damian’s guide, I was able to get PGS subs working great with bitstreaming and chapters via MPC-HC/Haali/FFDShow.

SamuriHL June 18, 2010 at 7:29 am

I’m so freaking happy! :) 2 things to get done now. One is to get Haali and DTS-HD MA bitstreaming fixed. That’s a big one. Second, Mike Eby can hopefully add support for PGS subs in Another EAC3To GUI. Once those 2 things happen, we’re done. :)

Damian June 18, 2010 at 7:34 am

Yeah, I posted to MikeEby already to see if he could add a “PGS/SUP or IDX/SUB” choice in the settings so the user could choose. I also left a request on the MPC HC thread to see if the developers had any plans to add PGS support (if that happens then I can easily move to PGS and not look back).

SamuriHL June 18, 2010 at 7:36 am

Can the MPC splitter be used with WMP/7MC? If so I could drop Haali and I’d be ok with that, as well. We’re so close, man. :)

Damian June 18, 2010 at 7:45 am

Yes, that is what I was using with WMP/W7MC (just register MatroskaSplitter.ax), so if PGS support gets added to this splitter then Haali doesn’t become a necessity for PGS support in mkvs.

SamuriHL June 18, 2010 at 7:47 am

This is VERY exciting! I can’t believe this is coming together so well. :) I finished converting all my movie only ISO’s to MKV’s last night. Will now go through and redo them adding the PGS subs in. Most excellent!

ashman June 18, 2010 at 7:59 am

Forgive me for not knowing this, but what’s the story with DTS-MA bitstreaming and Haali? I played several mkv files yesterday and didn’t notice anything wrong with the DTS-MA files.

SamuriHL June 18, 2010 at 8:01 am

Then they were made by MakeMKV. :) Haali+mkvmerge+ffdshow+DTS-HD MA = bad stuttering. The ones created by MakeMKV work fine. I posted some interesting logs to albain so maybe he can figure out the problem.

ericbegins June 18, 2010 at 8:32 pm

I’m new to the HTPC game after giving up on the PCH A-100 due to the forced subtitle problem. I’ve followed your instructions and have it working *somewhat*. My problem is that the forced subtitles show, but the last one never goes away. For instance, chapter 22 of Avatar, “Protect the people” is the last line subtitled, but it stays on the screen indefinitely. If I manually advance the file, it goes away, but otherwise it stays on the screen. My brother (ashman) is not having the same problem. Any idea what I might have missed?

Thanks!

SamuriHL June 18, 2010 at 8:41 pm

I’m not seeing that issue either. That seems very odd. I’d double check all the settings again and make sure they’re all set correctly.

ericbegins June 19, 2010 at 7:00 am

If I display all subtitles, it works as expected – both the regular subs and forced subs (Navi speaking with the different font displaying). However, when I do forced subs only, the subtitle will display, but stay on the screen until the next subtitle. For instance, in chapter 22, “Father” stays on the screen until “Daughter” is displayed. At the end of the sequence “Protect the people” remains on the screen indefinitely. I found a post with someone having the same problem with on an XBMC/m2ts setup and they claimed it was a ffmpeg problem (http://forum.xbmc.org/showthread.php?t=60282).

Anyway – just wanted to get this out there in case anyone else is having the same problem. thanks!

SamuriHL June 19, 2010 at 7:33 am

Is that using the latest ffdshow? I won’t have time to try it before I leave today. If it’s a bug with ffdshow, go report it on doom9 so they can look into it and fix it.

ericbegins June 20, 2010 at 6:31 am

I was using ffdshow 3476, but after comparing notes with ashman, I upgraded to 3477. However, the same problem persisted. It has to be a setting I’ve missed somewhere.

ashman June 20, 2010 at 7:07 am

I am seeing this persistant subtitle issue on my WinXP machine. I didn’t have time to troubleshoot this morning before work.

Damian June 20, 2010 at 6:58 pm

Looks like MPC MatroskaSplitter just added support for PGS, will try to test out when I have a few minutes

http://forum.doom9.org/showthread.php?p=1410417#post1410417

SamuriHL June 20, 2010 at 7:09 pm

It’s very good. So far only 32 bit but once we get “official” builds we’ll have 64 bit, as well. I have one MakeMKV file that doesn’t play with that splitter and I have some odd issues with the PGS subs where it or ffdshow ignores my files that have no default track set. Also, if using mkvmerge, make sure to set the title else you get no text in ffdshow’s subtitle menu. Just a few quirks, but, once they can be ironed out we’re golden here. I’m sure Mike will update his awesome UI soon and then we’re done. MKV’s as an incredibly valid backup method. I LOVE IT!

Damian June 20, 2010 at 7:19 pm

Great to hear, I knew you would be all over!!! Did you test to see if it works using MPCs subtitle renderer instead of FFDshow? Ideally if MPC can handle it all then I would have no need to rely on FFDShow aside from the FFDShow audio decoder

SamuriHL June 20, 2010 at 7:24 pm

I didn’t get a chance to try. I’m only home for the night. I barely got time to unregister Haali and register the new matroska splitter. I’d rather have ffdshow fixed cause I like to have the option of WMP/7MC. It’s easier to set up on all the machines on my lan if I can just install ffdshow, configure it, run the Win7DSTweaker and force ffdshow, and install a working splitter. Done. So, it’s a nice option to have. I think ffdshow is possibly the issue.

Damian June 24, 2010 at 1:29 pm

Just wrote a new guide on setting up PGS subtitles using MPCs internal Matroska Splitter:

http://www.mediasmartserver.net/2010/06/24/mkvmania-%E2%80%93-displaying-pgs-subtitles-in-mkvs-using-mpc/

Geoff October 5, 2010 at 5:15 am

I have tried everything to get this working, I have an ATI HD3450 PCIe card and catalyst 10.4 and settings as described above, and am using MakeMKV with embedded PGS subs, and do get the orange ffshow icon DXVA, but no subs, the stream is present, but will not display. Any ideas??

SamuriHL October 5, 2010 at 6:38 am

What splitter are you using? And did you enable the subs in ffdshow? And set the surface overlay?

Geoff October 5, 2010 at 6:57 am

I have now got it working, using Haali splitter and ffdshow version 3572, (latest SVN) the issue is that if you set the Blu-Ray & DVD smooting to the default “swscaler gaussian” it will not work, you need to set to “full”, this bug is reported on the ffdshow discussion! Works under DXVA and normal both x32 and x64 as long as this is set!

SamuriHL October 5, 2010 at 9:28 am

Oh son of a. Sorry, yes, I knew that. That was a bug I helped find! :) I thought they fixed it though??

Geoff October 5, 2010 at 9:58 am

Possibly, but not yet in the latest x64 and x32 SVN, now need to solve why “forced subtitles” stay on screen and do not go away, normal subtitles seem fine (using MakeMKV to rip, but seems to be the same with other rips). We are getting there!

SamuriHL October 5, 2010 at 11:03 am

Yea, many people have reported that issue on the MakeMKV forum. Not sure what’s up with that. Maybe a rendering issue in ffdshow? I don’t know.

Ben February 25, 2011 at 2:21 pm

Thank you for this guide, much appreciated! Have been messing around with this for ages!

Comments are closed, visit the forums to continue the discussion.

Previous post:

Next post: