Please post here for issues related to DVD discs
-
stax76
- Posts: 20
- Joined: Fri Feb 05, 2010 7:20 pm
Post
by stax76 » Mon Apr 13, 2015 1:54 pm
Hello,
while programming and testing StaxRip I noticed a problem with Hebrew subtitles on a German DVD, I reported it first to Mosu:
I've a MakeMKV created file where MediaInfo shows iw as language code for a vobsub subtitle, when I demux it with mkvextract it's en in the idx and not iw or he, on the ifo file MediaInfo shows he.
this is what he responded:
This is a bug in MakeMKV. Matroska uses ISO 639-2 language codes in all of its elements that indicate a language. However, MakeMKV has written »iw« into the »track language« element. While »iw« is a valid ISO 639-1 language code it is not a valid ISO 639-2 language code.
During extraction mkvextract validates that language element, finds it to be invalid and discards it. After discarding it the »track language« is treated the same way as if it were absent from the file, which means that its default value (»eng«) is assumed. Then mkvextract writes the IDX for the VobSub and translates the ISO 639-2 code »eng« into the ISO 639-1 code »en« (VobSub indexes use ISO 639-1 language codes), and that's why you see »en« in the resulting .idx file.
As this has happened in the past mkvmerge corrects such entries automatically during a re-mux: it mapps the ISO 639-1 codes to their corresponding ISO 639-2 codes. Therefore the re-muxed file's track language is set to »heb«. If you extract the VobSubs from that re-muxed file then your .idx file will finally contain »language: he«. But like I said: the original bug is in MakeMKV, not mkvextract.
you can download the ifo file here:
https://www.dropbox.com/s/bolvgaf9t6y76 ... 0.IFO?dl=0
-
mike admin
- Posts: 4075
- Joined: Wed Nov 26, 2008 2:26 am
-
Contact:
Post
by mike admin » Tue Apr 14, 2015 1:49 pm
stax76 wrote:
This is a bug in MakeMKV. Matroska uses ISO 639-2 language codes in all of its elements that indicate a language. However, MakeMKV has written »iw« into the »track language« element. While »iw« is a valid ISO 639-1 language code it is not a valid ISO 639-2 language code.
Ah, silly Mosu, how could he say that. Of course MakeMKV always translates language codes to ISO639-2, be it form ISO639-1 on DVD or ISO639-3 on blu-ray.
The real bug is in the DVD disc itself. The code in IFO file is "iw" - there is no such code in ISO639-1 . The valid code for hebrew is "he". Unfortunately DVD autor can put any two-letter combination there which is not neceassary a valid language code. In this case MakeMKV just leaves the code as is. In addition MakeMKV tries to correct the "buggy" codes - two-letter combinations that are not a standard but occur quite often (the most notable example is "jp" in place of "ja"). Please confirm that "iw" is a (non-standard) alias for "he" - please watch actual subtitles to confirm. If it is the case, I'll add "iw" as an alias for "he".
-
stax76
- Posts: 20
- Joined: Fri Feb 05, 2010 7:20 pm
Post
by stax76 » Sat Apr 18, 2015 2:29 pm
I watched the actual subtitles and goggled it, iw is the former code for he, would you mind sharing your mapping definitions with other programmers? Any more then Japanese and Hewbrew?
iw > he
jp > ja