Author Topic: VOB2MKV-1.0.3 released  (Read 5670 times)

March 08, 2010, 12:31:23 PM
Read 5670 times

matthewjheaney

  • Newbie

  • Offline
  • *

  • 9
VOB2MKV is a set of DirectShow filters and other utilities for converting VOB (MPG) files to Matroska format (MKV), without having to transcode the data in the files.  The VOB2MKV project is hosted here:

http://vob2mkv.codeplex.com/

VOB2MKV-1.0.3 is a maintenance release.  The primary change is that the MKV mux filter now writes a separate SeekHead element at the end of the file, that describes the locations of the clusters.  I have confirmed that files having a cluster index organized this way can be played back successfully on the Western Digital HD TV Media Player.

The MKVSOURCE filter was also modified to be able to parse MKV files having a cluster index organized this way.  A DirectShow source filter allows you to render MKV files in any DirectShow-based media player, such as Windows Media Player.  The MKVSOURCE filter supports seeking based on media time, allowing you to jump to any position in the file.

A few other bugs were also fixed.  The Downloads page has more information.

Full source code is provided for all of the DirectShow filters in the VOB2MKV project.  You can find the source code on the Source Code tab of the project home page, or use SVN to download it directly.  The URL for the Subversion repository is:

https://vob2mkv.svn.codeplex.com/svn

The trunk and release URLs are:

https://vob2mkv.svn.codeplex.com/svn/trunk
https://vob2mkv.svn.codeplex.com/svn/tags/release-1.0.3

-Matt
 

March 17, 2010, 06:58:04 AM
Reply #1

Mr Lazy

  • Sr. Member

  • Offline
  • ****

  • 408
    • Mr Lazy
Hi Matt

I can't seem to get VOB2MKV to recognise the input file:-

Code: [Select]
C:\Program Files (x86)\vob2mkv>vob2mkv C:\Users\admin\FIREWALL.VOB C:\Users\admin\test.mkv
Unable to load input file "C:\Users\admin\FIREWALL.VOB".

It doesn't matter if I include the pathname in quotes or not, or include the extension or not.

What am I doing wrong?

p.s. it would be nice if there was some basic form of help ie. vob2mkv /? (or even if it provided basic syntax after typing just vob2mkv like most programs and commands).  Not even the readme file tells you basic syntax required.

TIA
Gen1, ext3-boot, Belkin AX88178 Gigabit adapter, Synology DS109 NAS

How-to setup WD TV with NFS shares

March 17, 2010, 06:56:03 PM
Reply #2

matthewjheaney

  • Newbie

  • Offline
  • *

  • 9
I can't seem to get VOB2MKV to recognise the input file:-

Code: [Select]
C:\Program Files (x86)\vob2mkv>vob2mkv C:\Users\admin\FIREWALL.VOB C:\Users\admin\test.mkv
Unable to load input file "C:\Users\admin\FIREWALL.VOB".

It doesn't matter if I include the pathname in quotes or not, or include the extension or not.

What am I doing wrong?

The tool was originally written to parse VOB files using a VTS naming convention.  (Liberalizing this behavior is planned for a future release.)  Change the filename to:

VTS_01_1.VOB

If that doesn't work let me know.

p.s. it would be nice if there was some basic form of help ie. vob2mkv /? (or even if it provided basic syntax after typing just vob2mkv like most programs and commands).  Not even the readme file tells you basic syntax required.

Agreed.  That change is planned for the next release.

-Matt

--
http://vob2mkv.codeplex.com/


March 18, 2010, 03:47:06 AM
Reply #3

Mr Lazy

  • Sr. Member

  • Offline
  • ****

  • 408
    • Mr Lazy
Thanks, it worked.  Resulting mkv played fine in VLC.  Next to try it on the WDTV.  To test I'm using a file that was particularly trouble-some when seeking (playing over a network from SMB share).
Gen1, ext3-boot, Belkin AX88178 Gigabit adapter, Synology DS109 NAS

How-to setup WD TV with NFS shares

March 18, 2010, 06:04:01 AM
Reply #4

matthewjheaney

  • Newbie

  • Offline
  • *

  • 9
Resulting mkv played fine in VLC.  

Note that if you install the MKVSOURCE filter, like this:

regsvr32 MKVSOURCE.DLL

then you'll be able to play the file in Windows Media Player, too.

Next to try it on the WDTV.  To test I'm using a file that was particularly trouble-some when seeking (playing over a network from SMB share).

What was the file format when you were having trouble seeking, VOB or MKV?

Note that the MKVMUX filter writes both an index of clusters (in the SeekHead), and an index of keyframes (in the Cues element), but I don't know whether the WDTV player is using either of these to implement its fast play feature.  

The MKVSOURCE filter uses the cluster index for seeking.  This makes it possible to perform true random-access seeking in the MKV file (click on the progress indicator in WMP and you jump to that point instantly).

I am just finishing up an MKV splitter filter (the sources are in the trunk, if you're an SVN user), which is specially designed for downloading a file over a network, but even then, you'd still be limited to seeking only over the range that has been downloaded (and therefore exists in cache).

-Matt

--
http://vob2mkv.codeplex.com/

March 19, 2010, 01:08:41 AM
Reply #5

Mr Lazy

  • Sr. Member

  • Offline
  • ****

  • 408
    • Mr Lazy
Note that if you install the MKVSOURCE filter, like this:

The fewer directshow filters on my system, the better.

Anyway the resultant MKV played fine on the WDTV and seeking is MUCH better compared to the VOB, as you have found.

However, one glitch.  I found that if I forward-winded "too much" (ie. lots of ffwd of diff. speeds and/or used the 10 min jump, that sort of thing) when I then hit play the video would "jump" every second or so (like a couple of frames were not displaying correctly or something like that).  Not a big deal because if I stop the video then play and choose resume, it plays ok.  It will only become a big deal if it annoys the wife :-)  I intend to start converting my existing DVD VOBs/ISOs to MKV and haven't yet chosen the tool (this was a strong contender because of it's [relative] speed).
Gen1, ext3-boot, Belkin AX88178 Gigabit adapter, Synology DS109 NAS

How-to setup WD TV with NFS shares

March 19, 2010, 06:10:39 AM
Reply #6

matthewjheaney

  • Newbie

  • Offline
  • *

  • 9
I found that if I forward-winded "too much" (ie. lots of ffwd of diff. speeds and/or used the 10 min jump, that sort of thing) when I then hit play the video would "jump" every second or so (like a couple of frames were not displaying correctly or something like that).

I have had a similar experience.  It seems to be the case that if you seek too aggressively, then some system state gets out of sync from what's actually being rendered.

Here's one possibility: if you ffwd, the WDTV plays only keyframes.  Keyframes are usually much larger than non-keyframes, so the datarate spikes, and reaches some threshold beyond which the system cannot keep up.  So it might be that the firmware isn't selective enough about which keyframes it chooses when rendering in ffwd mode (e.g. when given a choice use the smaller keyframes, and put a limit on the resulting datarate).

I would write the MKV files using whatever organization is optimal for rendering (especially fast-forward rendering) on the WDTV, but I can only guess what WDC wants because they don't publish that information.

Perhaps what I could do is allow the muxer to be parameterized, so that you could choose the size of the clusters.  Maybe the WDTV prefers larger clusters, or maybe it prefers smaller clusters.  Should "larger" or "smaller" cluster be measured in size on disk or in units of time?  What is the optimal number of keyframes per cluster?  We could then create files with varying parameters and then test which work better.  (But then again, maybe their ffwd is just badly implemented.)

There's another thread in this forum for reporting bugs in the firmware, which I think is monitored by the WDC engineers.  You could report the problem there and ask if they have any workarounds.  If you learn anything about optimizing MKV files for playback on the WDTV let me know and I'll fold the requisite changes into the next release.

-Matt

--
http://vob2mkv.codeplex.com/

March 29, 2010, 08:11:13 PM
Reply #7

matthewjheaney

  • Newbie

  • Offline
  • *

  • 9
I can't seem to get VOB2MKV to recognise the input file:-

Code: [Select]
C:\Program Files (x86)\vob2mkv>vob2mkv C:\Users\admin\FIREWALL.VOB C:\Users\admin\test.mkv
Unable to load input file "C:\Users\admin\FIREWALL.VOB".

It doesn't matter if I include the pathname in quotes or not, or include the extension or not.
The 1.0.4 release has features to debug these kinds of problems.

http://vob2mkv.codeplex.com/

If you run the app with the --list and --verbose options, the app will check the syntax of the input filename.  If the syntax of the input filename is correct, it will also list the VTS files that match the filename pattern.

In your case, you don't have a filename that uses VTS syntax.  In that case, you can use the --reader option to specify that the graph should use the Async Reader filter, which doesn't require any special syntax for filenames.


p.s. it would be nice if there was some basic form of help ie. vob2mkv /? (or even if it provided basic syntax after typing just vob2mkv like most programs and commands).  Not even the readme file tells you basic syntax required.

That was the primary feature update of the 1.0.4 release.  You can get help in various ways (/h, /help, /?, etc).  The README.TXT file also has information about how to use the new switches.

-Matt