Subtitle Workshop blank screen with Matroska/MKV containing H.264

Scroll down to solution for the workaround to get video in stead of a black screen. Read on for a little bit more background information.

There are five components to video in Windows: container (like avi, mkv), video format (divx, h.264), splitter, decoder, and video player.

Nice post to get started:
http://www.hack7mc.com/2009/02/mkvs-for-minimalists-on-windows-7.html

But the scripts could be more robust. E.g. change the fixed system root "c:\windows" to %systemroot%

SPLITTERS

Haali Media Splitter: http://haali.su/mkv
Note: since december 2009, this contains also the x64 version.

Gabest: hard to get, but is part in some packs.
x32: http://www.hack7mc.com/wp-content/plugins/download-monitor/download.php?id=12
x64: http://www.hack7mc.com/wp-content/plugins/download-monitor/download.php?id=11

Advice: Haali splitter.

DECODERS

ffdshow (the original, but outdated): http://sourceforge.net/projects/ffdshow/files
ffdshow tryouts: http://sourceforge.net/projects/ffdshow-tryout/files

Get a 64 bits or 32 bit ("generic") in the folder "official releases" or get a more recent nightly build from the folder "SVN builds by clsid".

Advice: a recent 32 bit nightly build.

SPLITTER/DECODER packs

K-Lite Codec Pack: http://www.digital-digest.com/software/K-Lite_Codec_Pack_64-Bit_history.html

Shark007: Install Win7Codecs first (http://www.majorgeeks.com/Win7codecs_d5959.html), then x64Components (http://www.majorgeeks.com/download.php?det=5535)

Shark's Win7Codecs comes with a tool to select and configure the various splitters and decoders for the various media types (divx/xvid, mpeg2, h264/mpeg4) and containers (avi, mkv).

Install and use the "settings32.exe" application to configure, since most video players are currently still 32 bit (winamp, zoomplayer)

Advice: Shark007 packs

VIDEO PLAYERS

Zoomplayer 5.02 Standard (latest free version), Windows Media Player (build-in, WMP Classic/Guliverkli2 or WMP Classic Home Cinema) and Winamp all work with the system splitters and decoders. VLC Player comes with its own splitters/decoders and does not use the ones installed on the system.

Subtitle Workshop v2.51 does only work with "real" avi containers. The "rename trick", where the mkv extension is changed to avi, will work with most of the video players, but unfortunately not with Subtitle Workshop.

The more recent betas of v4 do work with mkv/h.264 files, but those are not very stable. The splitter has to be Haali, Gabest's does not work - "cannot render media!". It does not matter if the "rename trick" is used. This also applies to Windows Media Player. Gabest also doesn't work with Subtitle Workshop v2.51.

Winamp doesn't really like mkv files; it almost always halts on startup.

Zoomplayer does not work well with video format "Xvid dev 25-Mar-03". You have to use Haali splitter for avi, because Gabest and Microsoft's cause a stack overflow.

Zoomplayer doesn't work with mkv/H.264 when the ffdshow codec is used.

CHECK TOOLS

Tools to check video containers, e.g. get video format or the the processing workflow (splitting, decoding):


SOLUTION

To get the video preview to work in Subtitle Workshop 2.51 with mkv files, that contain the h.264 video format:
  • Install both Shark007 packs mentioned above. Check the box to install ffdshow.
  • To get the latest ffdshow version working with Shark007 (this step is not necessary):
    • In \program files (x86)\win7codecs\filters: regsvr32 /u "ffdshow.ax". Uninstall this older version
    • Download most recent 32 bit nightly build mentioned above and install with default settings
    • Copy "ffdshow.ax" from the nightly build install folder to the \win7codecs\filters folder
  • Start \program files (x86)\win7codecs\tools\settings32.exe
  • Click "reset all" to get the recommended configuration. 
    • To be sure, check the following settings:
      H264: use ffdshow's codec/ffdshow with multithreading
      MKV: use haali splitter
  • Set H264 codec in directshow players to "use ffdshow's codec"
  • Finally, install Vobsub 2.23
Notes:
  • The final step is very important. You have to install Vobsub (or "vsfilter") as the final step, even if it is already installed. Just install it again. (VobSub is a directshow filter that overlays subtitles)
  • Test mkv and avi video formats in Winamp and Zoomplayer. If they fail to start, then uninstall Vobsub 2.23 again. Use the subtitle option from ffdshow to have subtitles in those players. WMPC and VLC have their own subtitle overlay filters.
  • The version has to be 2.23, more recent versions will not work. E.g. 2.39 does not work.
  • Do not rename the container from .mkv to .avi. Subtitle Workshop 2.51 will load the .mkv extension without problems.

11 comments:

Fixit said...

Great tutorial !
Tried and approved,
Thanks mate

† TST.LP † said...

I got error when i want play .mkv on SW 2.51. The program closed

Qrosawa said...

Thank you SO much, worked at first try.

clontarf78 said...

Thanx man! Problem solved!

snwi said...

Better late than never! What a relief! I could instantly sync my subs with my MKVs. Miraculous!

snwi said...

Within a few minutes I was syncing my MKVs with my .SRTs! A small miracle (?)

fixitpro said...

It works! I use Subtitle Workshop 4 Beta 4 and now it can render mkv files with no troubles at all.
Until now I used to open the subtitles file in WS while the video was playing in VLC. Trying to figure out the exact timing of the first/last line was a pain in the a**.
Thanks a lot for the tutorial!

Hai Phong said...

I love you so much!!!! I have tried so many times in other pages in vain, but finally, thanks god, i've made it! This is so important for me.. Thank you 1000 times...

Hai Phong said...

Thank you SO MUCH!!! I have tried so many times in other pages in vain, but finally, i have made it. I badly need it for my learning English. Thank you. The world is better with people like you.

fey said...

I could not install shark007 packs. It said error 2932 could not create file. Is there other way to install it?

TOAU461531 said...

Thank you very much man, your help was useful ! :)