View Full Version : MKVToolNix v24.0.0 released
Lincoln Burrows
14th October 2011, 16:23
You may still succeed with your method, though, if the player you're using adheres to the timecodes in the file and fills gaps (caused by e.g. missing packets/gaps or garbage data) with silence (or random noise). That way you might actually end up with a track that's exactly as long as you expect it to be; just don't expect it to sound perfect 100% of the time.The issue here is that you can watch the entire movie with 2h14m06s with no "garbage" as you say, but when you attempt to extract the audio/data it's always shorter.
So, if there's no way to extract the audio with the same length from the video, the only alternative is to record the entire stream again (wasting 2h14m with SF recording that).
Even if the audio stream is damaged I was expecting that all tools would extract as I see it, and not give me excuses to mess with the whole thing.
I don't know if this can be quoted as an example, but think about it:
* When you try to convert a Blu-ray decripted to your Hard Drive with MakeMKV, sometimes the program warns that AnyDVD is running. If you do it anyway, the program will not complete the task and it will freeze.
The developer instructed me to decrypt the original disc with MakeMKV.
But if AnyDVD was not running when I tried to convert, what happened with the files?
I don't know, but from the looks of it, it seems they were not decrypted properly or there's something wrong with the data (although if there is something wrong, it can't be seen while you are watching the movie). And it only happens with the movie, not the extra features.
But what if you lost the original disc? There's no way to convert to Matroska, right?
Wrong. You can still do this way:
1) Open tsMuxerGUI
2) Select the m2ts file with the movie.
3) Select "Demux" and what streams you want.
4) After they were all demuxed, select them with MKVMerge and save to Matroska.You see? MakeMKV was simply refusing to convert the files for some strange reason.
I don't know what happened with this audio stream but whatever happened, I assure you it's not noticeable when you are watching the video stream it was originally attached.
Mosu
14th October 2011, 16:57
Still, you're missing the point about gaps in the timecodes. It's quite possible and maybe even likely that your player simply compensates for a situation when the available number of samples (after decoding the AC3 frame) are not enough to fill the time period until the next packet's timecode. Usually players do that by speeding up the video track ever so slightly for such short gaps (e.g. displaying one or two frames a couple of ms shorter than they otherwise should have).
Now when you extract stuff like AC3 into a raw file then mkvextract does not "mess around with your data"; it simply writes them 1:1 as the data is found in the Matroska file. The big difference is that raw AC3 files have no timecode information whatsoever. Therefore gaps such as those I've mentioned above would "disappear". There's simply nothing mkvextract can do about it.
As to mkvmerge refusing to re-use that garbage: that's completely compliant with the Matroska specs with state (apart from other things) that a track must only contain valid data for exactly one codec.
I can understand that you're frustrated, but there's simply nothing I can or will do about it.
Lincoln Burrows
14th October 2011, 17:51
What about stretching or delay ?
If audio or video ist streched / or delayed you could get such differences too, or am I wrong ?
As far as I remember, mkvmerg does not fix delays or stretching directly on filebase.Let me explain what I am trying to do here:
1) I need to extract this audio stream from the video it was originally attached (and it can be watched perfectly) in the exact way it is presented.
The way I am getting the whole thing is this: in the first hour the audio is out of sync 1, 2, 3, 4 seconds and the difference is 8 seconds after 2 hours. It's not the whole thing that is 8 seconds out of sync. So I can't add 8 seconds of "silence" using Sound Forge in the beginning of the file (that was going to do the trick).
2) Even if I managed to fix this whole thing, I need to sync this audio for the same movie, but another source. It's a dubbing. And the other source might have a different length.
In other words, I need the whole thing perfect to make another edition using Sound Forge, perhaps adding a few seconds of "silence" to match the sync. It needs to be 100% corrected from the first second to the last. If it's not, even with other tools to fix the audio, I am going to notice there's something wrong.
Mosu
14th October 2011, 18:57
Two thoughts:
1) Just do it like you proposed. You've probably spent way more time now on trying to get it working like you think it should with other tools than it would've taken you to record it in the first place.
2) Just re-create the movie from your source.
Other than that I cannot help you. Or more precise I don't want to spend any more time and thought on your once-in-a-lifetime, unique problem.
Lincoln Burrows
14th October 2011, 19:09
Other than that I cannot help you. Or more precise I don't want to spend any more time and thought on your once-in-a-lifetime, unique problem.I was just wondering how this audio stream had this problem in the first place (non-AC3 data).
But it's not just your software that can't give me that stream the way I want, I wasn't able to find another solution and even this ac3fix couldn't help me.
I had these sorts of problems before, but as I see it, some things can't be fixed for a long time, like the 3 PIP streams from "The Sound of Music (1965)" blu-ray, that can't be converted to Matroska (I had to keep the original decrypted files in my Hard Drive (even the 30 GB m2ts from the movie), and I only want converted MKVs to waste disk space), or simply the slideshows from DVDs/BDs (I also had to keep the smaller VIDEO_TS folder files)...
I am having another issue with yellow/transparent subtitles from a DVD as well... (this was the first time MPC couldn't display a subtitle from a MKV file).
Not to mention the multiple angle streams...
All those issues should be fixed by MakeMKV itself (if there's a way to do it), I was only going to use MKVToolnix to a simple task, inserting the audio file and making a direct stream copy.
Two thoughts:
1) Just do it like you proposed. You've probably spent way more time now on trying to get it working like you think it should with other tools than it would've taken you to record it in the first place.
2) Just re-create the movie from your source.
Other than that I cannot help you. Or more precise I don't want to spend any more time and thought on your once-in-a-lifetime, unique problem.Edit: I tried now, same problem. It seems (I noticed for a brief moment) the player is doing exactly what you told here:
Usually players do that by speeding up the video track ever so slightly for such short gaps (e.g. displaying one or two frames a couple of ms shorter than they otherwise should have).Therefore, there's no way to even record this thing...
mindbomb
22nd October 2011, 19:48
Umm, I think there is a bug.
When importing an m2ts with vc-1 video, the resulting mkv file doesn't play correctly.
According to nevcariel, " It looks like it muxed them with only PTS timestamps, but no DTS timestamps - but all other VC-1 when muxed from a raw stream for example are muxed with DTS only, which is the de-facto standard today."
Mosu
22nd October 2011, 19:58
Upload a sample, please.
mindbomb
22nd October 2011, 20:23
certainly, here is the resultant mkv file:
http://www.mediafire.com/?3gshc717zk26udg
And the initial m2ts is here
http://www.mediafire.com/?5wt2ujrwsxcb9fy
mbcd
24th October 2011, 15:44
Feature Request:
It would be nice to get an additional Feature with mkvextract.
If you use "ordered-chapters" inside mkv it would be nice to have an additional parameter to choose from which "movie" you want to demux tracks or something else.
ATM you can only demux whole mkv-file, or am I missing something?
Mosu
24th October 2011, 15:48
All of my tools are pretty limited to processing a single segment in a single file (apart from mkvmerge which can obviously read more than one input file; however, "only one segment in a file" also applies to it). That will not change in the near future as it would require a major overhaul of pretty much everything.
Also, what you're asking for will also not be implemented any time soon. Again, it'd require major additions/changes, not something that I'm willing to do at the moment. Sorry.
mindbomb
24th October 2011, 18:10
mosu, was I supposed to use your ftp instead of mediafire?
did you already download the file, or do you want me to upload it there?
Mosu
24th October 2011, 18:30
I've downloaded the file(s) already; sorry for not answering sooner. No need to upload to my FTP server. Thanks.
Mosu
24th October 2011, 18:54
Here's a build that uses DTS instead of PTS for VC1 from MPEG TS: http://www.bunkus.org/videotools/mkvtoolnix/win32/pre/mkvtoolnix-unicode-5.0.1-build20111024-376-setup.exe
mindbomb
25th October 2011, 04:06
thanks mosu!
vmrsss
28th October 2011, 22:15
Hi Mosu,
Building 5.0.1 now seems to require gcc-4.6 or more:
The following features of the C++11 standard are not supported by g++:
* initializer lists
* range-based 'for'
* right angle brackets
* 'auto' keyword
* lambda functions
If you are using the GNU C compiler collection (gcc) then you need
at least v4.6.
configure: error: support for required C++11 features incomplete
What a pity, that is not available on Mac. I won't be able to keep my copy of mkvmerge up to date.
Very disappointing. Do you know of a workaround?
Thx
Abradoks
29th October 2011, 03:01
What a pity, that is not available on Mac.
What's the problem with 4.6 on Mac? Google tells (http://beardedcodewarrior.net/2011/07/25/building-gcc-4-6-1-on-mac-os-x-lion/) it works fine.
Mosu
29th October 2011, 09:15
MKVToolNix will not require gcc in particular, but certain features of the C++11 standard. For gcc v4.6 is the first version that supports all of them, especially range-based "for" loops (see http://gcc.gnu.org/projects/cxx0x.html ).
Unfortunately clang/llvm doesn't support all the required features as of yet, especially lambda expressions (see http://clang.llvm.org/cxx_status.html when it's back up).
There's no workaround, I will not remove the code using these features again. See http://marcmutz.wordpress.com/2011/09/20/c98-support-costs-extra/ why. I like being an early adopter of good stuff :)
What you can do is compile gcc 4.6.1 yourself as Abradoks has pointed out.
forclip
29th October 2011, 14:19
Hi Mosu. Please check the "Add to job queue" button in mmg, it seems to be broken in the last few builds.
http://img192.imageshack.us/img192/9654/89068700.th.png (http://imageshack.us/photo/my-images/192/89068700.png/)
vmrsss
29th October 2011, 15:06
What's the problem with 4.6 on Mac? Google tells (http://beardedcodewarrior.net/2011/07/25/building-gcc-4-6-1-on-mac-os-x-lion/) it works fine.
ah!, ah!, anecdotal reports say it's a nightmare to build...
Mosu
30th October 2011, 22:20
Hi Mosu. Please check the "Add to job queue" button in mmg, it seems to be broken in the last few builds.
Thanks for noticing. Interesting. That particular bug has been present for more than seven years now. It's interesting that that particular code path hasn't been invoked for such a long time.
Anyway, it's been fixed in this build: http://www.bunkus.org/videotools/mkvtoolnix/win32/pre/mkvtoolnix-unicode-5.0.1-build20111030-377-setup.exe
Abs62
31st October 2011, 14:15
Font files added as attachments by last builds (376, 377) don't loaded by VSFilter when it shows subtitles. With files created by build 369 all works perfectly.
If source file for last mkvmerge already have fonts as attachments added by build 369, it also work OK. Problem is occurred only if fonts was attached by last builds.
PS. Result file with attachments created by last build is 10 bytes shorter then same file created by build 369.
forclip
31st October 2011, 17:23
Anyway, it's been fixed in this build: http://www.bunkus.org/videotools/mkvtoolnix/win32/pre/mkvtoolnix-unicode-5.0.1-build20111030-377-setup.exe
:thanks:
Thunderbolt8
1st November 2011, 18:14
got a problem with a DTS-HD (hi-res) track (5.1 96kHz) I am trying to mux. basically what happens is that it creates a 0 byte file at the beginning and then doesnt continue, CPU load goes up to 50% (= 1 core at 100%) and it doesnt proceed any further from there. muxing other DTS-HD hi res tracks works fine (e.g. no problems with 7.1 96kHz).
uploaded a 100mb sample (test.dtshd) to your ftp server.
Mosu
1st November 2011, 19:51
Font files added as attachments by last builds (376, 377) don't loaded by VSFilter when it shows subtitles. With files created by build 369 all works perfectly.
If source file for last mkvmerge already have fonts as attachments added by build 369, it also work OK. Problem is occurred only if fonts was attached by last builds.
PS. Result file with attachments created by last build is 10 bytes shorter then same file created by build 369.
Those two results seem to come from the newer builds using newer versions of libfile, the component used for automatic MIME type recognition for attachments. The old build's libfile library used "application/x-truetype-font", the new one "application/x-font-ttf". That's also the reason why the file is shorter: the old MIME type designation is five bytes longer, and my guess is that you've got exactly two fonts attached.
Now there's no official MIME type for fonts (any font type, not just not for TrueType fonts). See the official list at IANA (http://www.iana.org/assignments/media-types/index.html). However, most sources I've been able to dig up (e.g. Apache's latest list (http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/conf/mime.types?view=markup) or Wikipedia (http://en.wikipedia.org/wiki/Internet_media_type#Type_x)) agree with the new version of libfile and list "application/x-font-ttf". Therefore I will not change MKVToolNix.
You can/should do two things: file a bug report/feature request with the VSFilter developers and manually tell mkvmerge to use the old MIME type until the bug is fixed.
Mosu
1st November 2011, 20:59
got a problem with a DTS-HD (hi-res) track (5.1 96kHz) I am trying to mux. basically what happens is that it creates a 0 byte file at the beginning and then doesnt continue, CPU load goes up to 50% (= 1 core at 100%) and it doesnt proceed any further from there. muxing other DTS-HD hi res tracks works fine (e.g. no problems with 7.1 96kHz).
uploaded a 100mb sample (test.dtshd) to your ftp server.
I'm sorry, but I cannot reproduce it with the file you've uploaded and the latest build from http://www.bunkus.org/videotools/mkvtoolnix/win32/pre/ (as well as on Linux). Muxes fine, file has the expected size.
Try upgrading your MKVToolNix installation, please. If it sill doesn't work then post your command line as well.
Abs62
2nd November 2011, 00:22
You can/should do two things: file a bug report/feature request with the VSFilter developers and manually tell mkvmerge to use the old MIME type until the bug is fixed.
Thanks. Haali Media Splitter and internal MPC-HC matroska splitter don't recognize "application/x-font-ttf", but LAVSplitter has understand it.
Thunderbolt8
2nd November 2011, 07:57
I'm sorry, but I cannot reproduce it with the file you've uploaded and the latest build from http://www.bunkus.org/videotools/mkvtoolnix/win32/pre/ (as well as on Linux). Muxes fine, file has the expected size.
Try upgrading your MKVToolNix installation, please. If it sill doesn't work then post your command line as well.you are right, its actually the VC-1 video track of a file I want to remux with the DTS-HD track which is causing problems -.-
uploaded another sample of the video (test2.mkv). hoping upload was successful, if not please let me know.
Mosu
4th November 2011, 00:45
That VC1 problem should be fixed in build 378: http://www.bunkus.org/videotools/mkvtoolnix/win32/pre/mkvtoolnix-unicode-5.0.1-build20111104-378-setup.exe
It's still uploading at the moment, and that will take another hour or so as I'm also uploading something else.
Thunderbolt8
4th November 2011, 02:19
any comment on what the problem was? that BD wasnt really a new one so wondering why this problem hasnt occured before.
Mosu
4th November 2011, 10:06
The VC1 bitstreams I've seen so far are built similar to MPEG bistreams, meaning they start with start codes (0x00 0x00 0x01 ...). mkvmerge looks for those markers in order to determine frame boundaries. However, this particular file uses a different bitstream syntax. Maybe it's an older version of the VC1 bistream, I don't know. I've chosen the path of leaast resistance and made the Matroska reader simply copy such streams over as they are without any further processing ("pass-through packetizer").
Fullmetal Encoder
10th November 2011, 22:08
1. Is there any chance that you will be including the ability for mkvmerge to read the chapter points for blu-ray files and DVD's so they could be extracted into an xml or muxed directly into the final mkv? I'm hoping that that wouldn't be too difficult since mkvmerge already knows about the structure of the DVD from the VOBS and playlist data from the blu-ray files.
2. Is there any way you could include the ability to split a VOB/M2TS, using time values, into certain segments while excluding other segments? Right now, if I try to split a file using 2 different times mkvmerge writes all three segments to disk. What if I only wanted the middle segment between the time values (my time values are always chapter points)? My problem is that my source content is almost always a television show with an OP and ED that I don't want to include. If I'm processing for an encode then, aside from wasting a lot of time, splitting the file forces me to do a tremendous amount of writing/deleting to/from disk of those segments that I don't want (for what will be thousands of episodes). Actually if mkvmerge were aware of the chapter points then it could automatically include those time values into the split function giving us the ability to demux individual chapters from a stream. If there is any way for the split capability to exclude certain segments as it is I haven't been able to find anything about how to do it in the documentation.
3. Is there any chance you will give mkvmerge the ability to pull DVD subtitles? I know that technically I can do it on a chapter basis using VOBlanker and VSRip but that's such a sloppy and time consuming solution compared to the elegant way in which it's handled for m2ts files.
Any of the above would be tremendously helpful.
Also, I had a question about how mkvmerge muxes the components of an m2ts file. When I create an MKV from an m2ts what I get is an MKV that is 502 MB smaller than the m2ts even though I didn't exclude anything from being muxed. What could account for this?
Thank you for adding direct m2ts support. It's very exciting development.
Mosu
10th November 2011, 23:16
1. Is there any chance that you will be including the ability for mkvmerge to read the chapter points for blu-ray files and DVD's so they could be extracted into an xml or muxed directly into the final mkv? I'm hoping that that wouldn't be too difficult since mkvmerge already knows about the structure of the DVD from the VOBS and playlist data from the blu-ray files.
For DVDs: no. Chapters are not stored in the VOBs but in the accompanying files. Adding support for reading chapters from DVDs in mmg's chapter editor would not be that difficult (I've written a command line tool for that back in the days of the ogmtools (http://www.bunkus.org/videotools/ogmtools/), dvdxchapt it was called, using libdvdread). However, doing it directly in mkvmerge would require a lot of more infrastructure (track selection, some way to specify the chapter names as only their timecodes are actually present in the DVD structures) than I'm willing to build.
For BluRay: maybe, though I don't know if it's even realistic as I don't know a lot about that format. What I'm concerned about is that the menu system is built on an interpreted language as far as I know, and maybe there simply aren't chapters stored in an easy-to-access way. I may investigate this in the future though. Also: mkvmerge only reads the M2TS files (and it can also extract the track languages from the .clip files); playlist data or whatever is not understood yet.
2. Is there any way you could include the ability to split a VOB/M2TS, using time values, into certain segments while excluding other segments?
See bug/feature request 518 (https://www.bunkus.org/bugzilla/show_bug.cgi?id=518). It boils down to "I agree it would be a cool feature, but don't count on it".
3. Is there any chance you will give mkvmerge the ability to pull DVD subtitles?
No, sorry.
I know that technically I can do it on a chapter basis using VOBlanker and VSRip but that's such a sloppy and time consuming solution compared to the elegant way in which it's handled for m2ts files.
They way they're stored in M2TS and what they actually consist of (e.g. no pesky information in an .idx file derived from the DVD's support files instead of the VOBs) is way easier to read/demux than how subtitles on DVDs are stored.
Also, I had a question about how mkvmerge muxes the components of an m2ts file. When I create an MKV from an m2ts what I get is an MKV that is 502 MB smaller than the m2ts even though I didn't exclude anything from being muxed. What could account for this?
Several things come to mind:
MPEG transport streams have higher overhead than Matroska files.
mkvmerge intentionally discards certain contain (e.g. the AC3 "core" from a combined TrueHD+AC3 track; see this FAQ entry (http://www.bunkus.org/videotools/mkvtoolnix/faq.html#truehd_with_ac3) for details)
mkvmerge discards anything it doesn't support.
mindbomb
11th November 2011, 00:16
http://www.mediafire.com/?4ficfdybbti26hc
mkvmerge mistakes mp4 streaming text subtitles for chapters.
Mosu
11th November 2011, 07:57
I actually have files in which this very method is used for storing chapters. Users requested mkvmerge recognizes them as such, hence that functionality. Also I know that at least one popular splitter/player uses this method as well, just like at least one authoring/muxing application. Therefore I will not change it.
Toddler Naruto
11th November 2011, 15:50
Suggestion: Please add a "Minimize to System Tray" feature, that can be activated by clicking on Minimize or Close buttons.
Mosu
11th November 2011, 15:53
No, sorry.
Toddler Naruto
11th November 2011, 19:27
No, sorry.
Why not, if you don't mind me asking? I don't like having it stay in the taskbar while it's running.
Mosu
11th November 2011, 20:28
I don't like wasting time I don't have. Such a feature would not be critical, has not been requested often, would not fix a bug, would not enhance or extend even semi-important functionality. At best it would be a convenience feature that only a minority of users would actually care for.
If someone were to provide a patch that a) implements support on both Windows and Linux and b) leaves the choice where to minimize to to the user then I certainly wouldn't reject it. But I will just as surely not work on this myself.
Chetwood
12th November 2011, 07:50
Please add a "Minimize to System Tray" feature, that can be activated by clicking on Minimize or Close buttons.
Whoever started to have clicking close" minimize to tray instead of actually closing the program should be torn and quartered anyway! And what's the point of having an icon in the taskbar and the tray at the same time? Tray only would be fine by me, though.
BTW, Mosu, just tried the batch feature of mmg.exe and it works like a charm.
Mosu
12th November 2011, 11:22
Although he didn't explicitly say it I'm guessing he did mean "minimize to the tray instead of the taskbar" and not "in addition to the taskbar". Still, doesn't change my view of the issue.
vmrsss
13th November 2011, 03:58
Trying to compile mkvtoolnix, rake stops at flac_common.h with the following error (never happened before).
Any suggestion please?
rake aborted!
Don't know how to build task 'src/input/flac_common.h'
EDIT: I have solved this by trashing the entire directory and cloning it from scratch. Thanks anyway
MrVideo
13th November 2011, 04:17
I've never had this happen before. The demultiplexer failed to initialize. The x264 .264 file was encoded like all of the other 10800p/23.976 files before it. I have a script that does the encoding and the exact same options are used for all of the 1080p/23.976 files that I encode.
Mediainfo has no problem opening and displaying the content of the file and tsMuXer has no issue creating a TS file from the .264 and .ac3 files.
Is there a MKV tool that I can run to find out why it doesn't like the .264 file?
Mosu
13th November 2011, 09:20
Trying to compile mkvtoolnix, rake stops at flac_common.h with the following error (never happened before).
gcc tracks dependencies for all compiled files. Yesterday I've moved flac_common.h and flac_common.cpp around a bit, but your dependencies still list the old names & locations. Easy to fix:
rm -rf rake.d/dependency.d
drake clean
drake
Mosu
13th November 2011, 09:21
I've never had this happen before. The demultiplexer failed to initialize.
File too short or damaged maybe. Hard to tell without having the actual file to look at (hint!).
vmrsss
15th November 2011, 01:08
Hi Mosu,
there appears to be a problem with the latest commit: this
mtx ex: seek in file error (type: N3mtx5mm_io6seek_xE
happens with all attempts to mux/demux (tried h.264 and ac3).
The problem definitely wasn't there yesterday...
Mosu
15th November 2011, 08:16
Interesting. It doesn't happen for me. Which OS are you using? Have you made sure that you've rebuilt completely?
vmrsss
15th November 2011, 08:41
Interesting. It doesn't happen for me. Which OS are you using? Have you made sure that you've rebuilt completely?
macos x, both snow leopard and lion. Both with gcc-4.6.1 and 4.6.2.
I did rake clean at the beginning. Is there a better a command to try?
Mosu
15th November 2011, 09:06
No, "rake clean" is sufficient. BTW you can use "./drake -j N" instead of rake if you have more than one core and replace N with the number of cores + 1 or something like that for faster builds.
I still cannot reproduce it. Can you please show me a command line you're using? As well as the full output? Thanks.
vmrsss
15th November 2011, 11:15
No, "rake clean" is sufficient. BTW you can use "./drake -j N" instead of rake if you have more than one core and replace N with the number of cores + 1 or something like that for faster builds.
I still cannot reproduce it. Can you please show me a command line you're using? As well as the full output? Thanks.
eg:
src/mkvmerge -o tmp.mkv The\ Story\ of\ Film/The\ Story\ of\ Film.mkv
mkvmerge v5.0.1 ('Es ist Sommer') built on Nov 15 2011 09:41:26
'The Story of Film/The Story of Film.mkv': Using the demultiplexer for the format 'Matroska'.
'The Story of Film/The Story of Film.mkv' track 1: Using the output module for the format 'AVC/h.264'.
'The Story of Film/The Story of Film.mkv' track 2: Using the output module for the format 'MP3'.
The file 'tmp.mkv' has been opened for writing.
Progress: 0%
mtx ex: seek in file error (type: N3mtx5mm_io6seek_xE)
Progress: 100%
The cue entries (the index) are being written...
Muxing took 0 seconds.
I can confirm that if I rollback to the Nov 13 checkout, things work out just fine.
Mosu
15th November 2011, 11:27
Still cannot reproduce it. Can you upload your source file, please?
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.