Log in

View Full Version : MKVToolNix v24.0.0 released


Pages : 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

MrVideo
3rd November 2010, 07:32
Isn't mkvinfo supposed to display info on header compression?

When I run mkvmerge (4.4.0) without any --compression options, mkvinfo doesn't show anywhere that zlib was used on the video or audio. So I can't tell if the use of --compression -1:none is working (no fatal errors though).

As a side note, I am using --default-language eng and mkvinfo shows the video as being und and nothing reported for the AC3 audio. Why?

Mosu
3rd November 2010, 09:12
Reading the mkvmerge.html has left me more confused than ever regarding how to disable video/audio header compression.

Here is what is in the document:
Options that only apply to video tracks:

--compression TID:method

Selects the compression method to be used for the VobSub track.

That part of the documentation is outdated. Extra compression can be used with any track type. Historically it was only used for VobSub tracks and that's why the documentation still mentions it. That and that I haven't gotten around to fixing it. The section in which the option appears is obviously wrong as well.

3) Track IDs in general. Zero or one, which is it?

It depends on the file type. That's why the documentation suggests you run "mkvmerge -i file.ext" and parsse its output in order to retrieve the actual track IDs. This output is guaranteed to list the actual track IDs as mkvmerge uses them durng muxing as well.

Doesn't mkvmerge just assign the TIDs based upon the order they appear on the command line, starting at one?

No, more like in the order they're found in the file. "Found" meaning different things for different file types.

If I read the document file correctly, I should be able to use the following option: --compression -1:none and have it apply to both the video and audio files. Is that considered a global option and placed before the -o option?

--compression is a file specific option, not a global one. Track IDs are local to each input file (meaning there can be a track ID 1 in the first input file as well as in the second one). Therefore the magical track ID -1 only applies to all tracks in the following input file (one file, not all following input files or all input files).

As a side note, if I am reading the document right, I shouldn't need the -a, -A, -D or -S options, since the MP4 doesn't have any audio and AC3 doesn't have any video and neither have subtitles.

The default in mkvmerge is "copy everything unless told otherwise". If there's nothing to copy for certain types then you don't have to tell mkvmerge not to copy it (e.g. f the source file does not contain an audio track than neither -a nor -A is needed).

mmg works a bit differently and doesn't produce the shortest command line possible.

Sorry about the confusion, but the documentation needs to be fleshed out a little more as track IDs appear to take on different meanings and the placement of some options within the command line are unclear, i.e., is --compression a global option, or must it be placed before the file being imported, and why, since it contains a track ID that points to a video or audio stream?

Patches are welcome.

More importantly, the --compression option kinda worked, and kinda didn't. I had to use MediaInfo 0.7.36 to find out how the header compression was being applied. It showed that compression was gone from the video, but not from the audio. I read the doc to mean that a TID of -1 would apply the "none" to all of the files imported into mkvmerge. Is there not a way to do that?

See above. Track IDs are local to a single input file. All track specific options, meaning all options that take a track ID as an argument, therefore only aplly to a single file.

Mosu
3rd November 2010, 09:25
Isn't mkvinfo supposed to display info on header compression?

When I run mkvmerge (4.4.0) without any --compression options, mkvinfo doesn't show anywhere that zlib was used on the video or audio. So I can't tell if the use of --compression -1:none is working (no fatal errors though).

As a side note, I am using --default-language eng and mkvinfo shows the video as being und and nothing reported for the AC3 audio. Why?

If compression is used then mkvinfo shows the following elements:

| + Content encodings
| + Content encoding
| + Content compression
| + Algorithm: 3 (header removal)
| + Settings: length 1, data: 0xff

If no compression is used then those elements are absent.

tormento
3rd November 2010, 12:15
Thanks for having heard the lambs cry ;)

sneaker_ger
3rd November 2010, 12:25
Hey guys,
as explained here (please check this thread):
http://www.makemkv.com/forum2/viewtopic.php?f=1&t=2111

Do you think there's a chance that MKVToolnix can have a feature to make MKV slideshows work?

I have tested "The Adventures of Robin Hood (1938)" Blu-ray disc and attempted to convert the slideshows (pictures) into MKV, but failed. The resulted file only plays for 1 second. The m2ts file from the BDMV/STREAM also plays for 1 second. But using TMT player from Arcsoft, which reads the entire BD folder, it plays fine, showing all pics and with 2m40s lenght.

However, BDEdit was capable of playing the m2ts file with 2m40s when I pushed "play" on the MPLS file from the PLAYLIST folder that was reffering to this content. If BDEdit can send this instruction to the M2ts file and recognize this content as "slideshow", there must be a way to fix this.

50 frames
2m 40s = 160 s
Type "50/160" into the FPS field of the video track in mkvmerge GUI.

I just noticed that the FAQ has an error. To wit the header is:

Why does audio or video not play anymore since v4.1.0 (e.g. MP3, AC3, DTS audio tracks, h264 video tracks)?

But the body has the following:

Starting with v4.1.0 mkvmerge uses header removal compression for a couple of track types by default. These include AC3, DTS and MP3 audio tracks as well as Dirac and MPEG-4 part 2 (aka. XviD/DivX) video tracks. The user muxing a file may disable it by explicitely selecting 'none' as the compression scheme for such a track.

The header says h.264, yet the body says MPEG-4 part 2. Those are not equal. Does the header compression deal with ALL MPEG-4 video? If so, the FAQ needs to be fixed.

It would also be nice is the FAQ listed the CLI option to disable the video header compression.
You are correct. By the time this part of the FAQ was written there actually was compression for part 2, but it was removed due to problems in the mean time, while h.264 was not header compressed but is now.

SamuriHL
3rd November 2010, 14:23
I don't use the GUI, have never used the GUI. Thought it was started with a different name.

As such, I stand corrected about GUI users having to always remember to set the option to disable header compression. For that I apologize.

Just what was accomplished by all of this? The mkvmerge program has an option to turn off compression and now Mosu has capitulated and added an option of turn off compression within the GUI.

Will programmers and player manufacturers update their software/firmware, now that the pressure is less? For sure word has gotten out about the header issue.

Yea, mmg= MkvMergeGui. :) The issue of players not supporting it is now well known. And now users have the option to disable it. So, I think the point has been made, users can now disable it, and now hopefully people will press the issue with their player mfg.

SamuriHL
3rd November 2010, 14:24
Starting daily emails to WD....... now.:p

Excellent. :) I think this is the right thing to do.

Lincoln Burrows
3rd November 2010, 18:22
50 frames
2m 40s = 160 s
Type "50/160" into the FPS field of the video track in mkvmerge GUI.How did you come up with these numbers? I tried 50/159 and the lenght of the file was 1 minute shorter I guess. Turns out the original lenght was 4m08s. I tried 50/248 but the lenght was shorter. Those numbers do not match. I had to try some random number, but always higher than the lenght in seconds.

But the first picture from the slideshow is quickly being switched (need to rewind to the first second and pause), when it should be viewed in the first 8 seconds. The chapter list contains only 30 chapters, and watching on TMT I see 32 (and the first picture in the beginning, lasting 8 seconds). Not only that: when I generate a 4m08s MKV file, the player jumps from chapter 25 to 26 and ends, even if it's almost 30s from the end.

I inserted a new lenght (more than 4m08s) and it was possible to use all chapters, but two are simply missing from the file (I used MakeMKV to create this - don't know why, but Mkvtoolnix is not reading .MPV files demuxed by TSMuxer - from extra features).

Bottom line: why is this whole thing broken? I thought we were able to convert anything by now...

sneaker_ger
3rd November 2010, 19:01
Well, after the makemkv admin said that those files were normal videos, and you said it had 50 frames and should play 2m40s I came up with those numbers. I just now downloaded the m2ts sample you posted (00068.m2ts) and it has 21 frames. I had no problems playing the m2ts sample using Haali's splitter - it may be a bug in MPCs internal splitter. (Which is to be replaced in the future.) The mkv sample (title06.mkv) has 32 frames with 23.976 fps - you can correct that using mkvtoolnix by changing the fps like I demonstrated in my last post.

MrVideo
3rd November 2010, 20:39
It depends on the file type. That's why the documentation suggests you run "mkvmerge -i file.ext" and parse its output in order to retrieve the actual track IDs. This output is guaranteed to list the actual track IDs as mkvmerge uses them during muxing as well.

I think I have a better handle on the TID thing. Initially I thought the TID was in relationship to the track IDs assigned to the pieces in the final MKV file, instead they are a reference to the track, or tracks, in the input file.

--compression is a file specific option, not a global one.

Any thought of adding a global --compression?

Patches are welcome.

I'm looking at the html source and will attempt to add some changes. What I've noticed is that it wants to use styles, yet there is no stylesheet file provided with the release, nor is said stylesheet referenced in the html source in order to read it in. So, all of the stylesheet stuff it is trying to do is not done.

MrVideo
3rd November 2010, 20:40
If compression is used then mkvinfo shows the following elements:

| + Content encodings
| + Content encoding
| + Content compression
| + Algorithm: 3 (header removal)
| + Settings: length 1, data: 0xff

If no compression is used then those elements are absent.

Ah, found it. Right in front of my eyes.

Mosu
3rd November 2010, 20:50
I think I have a better handle on the TID thing. Initially I thought the TID was in relationship to the track IDs assigned to the pieces in the final MKV file, instead they are a reference to the track, or tracks, in the input file.

That is correct.

Any thought of adding a global --compression?

There won't be a global option that affects tracks in all input files.

I'm looking at the html source and will attempt to add some changes. What I've noticed is that it wants to use styles, yet there is no stylesheet file provided with the release, nor is said stylesheet referenced in the html source in order to read it in. So, all of the stylesheet stuff it is trying to do is not done.

The source to modify is not the HTML file but the DocBook XML file in the source package (file "doc/man/mkvmerge.xml").

MrVideo
3rd November 2010, 22:02
The source to modify is not the HTML file but the DocBook XML file in the source package (file "doc/man/mkvmerge.xml").

I don't have the source package.

Take a look at what I did and see if that fits your needs: mkvmerge doc page (http://vidiot.com/mkvmerge.html)

The changes are in red.

Any comment on the stylesheet that appears to be nonexistant?

Thunderbolt8
3rd November 2010, 22:08
minor bug/problem: when I set some languages as default at the top of the language drop box, I apparently cannot choose the same language twice for that. e.g. when choosing spanish (castilian) and spanish (spanish), then only spanish (castilian) is added to that list.

Mosu
3rd November 2010, 22:11
minor bug/problem: when I set some languages as default at the top of the language drop box, I apparently cannot choose the same language twice for that. e.g. when choosing spanish (castilian) and spanish (spanish), then only spanish (castilian) is added to that list.

That's not really a bug. In Matroska languages are stored as their three-letter ISO-639-2 code. That code is the same for "Spanish (Castilian)" and "Spanish (Spanish)": "spa". Therefore the two entries are identical.

Mosu
3rd November 2010, 23:09
I don't have the source package.

Take a look at what I did and see if that fits your needs: mkvmerge doc page (http://vidiot.com/mkvmerge.html)

The changes are in red.

Any comment on the stylesheet that appears to be nonexistant?

I'll try to integrate it in the next couple of days (I'll be alway most mostly until Monday).

No comment on the stylesheet yet; will take a look later (it's probably part of the DocBook distribution).

beandog
4th November 2010, 00:24
I'll try to integrate it in the next couple of days (I'll be alway most mostly until Monday).

No comment on the stylesheet yet; will take a look later (it's probably part of the DocBook distribution).

Mosu, if you don't wanna futz with it, I can take his changes and roll a patch for you.

Edit: sent to user-ml

MrVideo
4th November 2010, 01:13
Thanks guys.

I hope the changes were to your liking, and correct.

tormento
5th November 2010, 11:08
Mosu, I have to mux a lot of similar files, i.e. same language video, same language audio tracks, same forced subs, etc. Using the GUI is very tedious (for me, al last).

Could you please put an output to the debug window where I can find the command line to use with mkvmerge? I have tried to use command line manual but every mkv I mux has to be composed by 6-8 different "tracks". It is a nightmare.

Mosu
5th November 2010, 11:16
Uhm... "Muxing -> Show command line"?

LeMoi
6th November 2010, 00:45
2010-09-19 Moritz Bunkus <moritz@bunkus.org>
* all: Added a translation of the programs into French by Trinine (see AUTHORS).Sorry but i didn't find it in the options of mmg?!

Mosu
7th November 2010, 22:26
How embarrassing. It has been fixed in Git revision 0c9eb34a and pre build 312: http://www.bunkus.org/videotools/mkvtoolnix/win32/pre/mkvtoolnix-unicode-4.4.0-build20101107-312-setup.exe

Lincoln Burrows
9th November 2010, 18:32
Well, after the makemkv admin said that those files were normal videos, and you said it had 50 frames and should play 2m40s I came up with those numbers. I just now downloaded the m2ts sample you posted (00068.m2ts) and it has 21 frames. I had no problems playing the m2ts sample using Haali's splitter - it may be a bug in MPCs internal splitter. (Which is to be replaced in the future.) The mkv sample (title06.mkv) has 32 frames with 23.976 fps - you can correct that using mkvtoolnix by changing the fps like I demonstrated in my last post.I just came across another title with the same issue: The Truman Show (1998) has a photo gallery. I tried many numbers in the FPS field but there are two problems happening here that should be adressed as I explained:

1) The first picture is quickly changing and you can't see it no matter what.

2) Assuming the original video has 23.976 or 24 fps and 1 minute and 30 seconds, it doesn't matter. If you insert numbers like 24/90, 25/90, 23/90 or any other for that matter, you will never get the precise lenght, considering the second number is the lenght in seconds. So you are wrong.

Even if you manage to find a number that can give you 1m30s, you still have to deal with 1).

And contrary to what I said, Mkvtoolnix can recognize mpv files (demuxed by TSMuxer from Blu-ray extra features using MPEG-2), and insert them in the MKV container, but you need to browse "Any kind of files" instead of "All suported media files".

Is there a reason for that? If mpv is supported why Mkvtoolnix while browsing for media files can't see the file?

Mosu
9th November 2010, 18:57
If you have a video whose frames have varying lenghts (e.g. the first picture has to be shown for a long time, the rest for much shorter durations) then mkvmerge's only support for that is with external timecode files. Specifying the FPS doesn't help as it assumes that all frames have the same duration.

And contrary to what I said, Mkvtoolnix can recognize mpv files (demuxed by TSMuxer from Blu-ray extra features using MPEG-2), and insert them in the MKV container, but you need to browse "Any kind of files" instead of "All suported media files".

Is there a reason for that? If mpv is supported why Mkvtoolnix while browsing for media files can't see the file?

Normally MPEG-2 video files have the extension ".m2v", ".mpg" or ".mpeg". I haven't seen ".mpv" bevore, and there's simply no official standard for file extensions. Every program can chose its own extension for whatever purpose it wants. For example I could make mkvextract output raw AAC tracks to files called ".gnufudel" and other programs wouldn't be able to see them even though they might be perfectly able to read them. This is why mmg doesn't list the file extension by default.

mkvmerge determines file types by the file's content, not by their extension. This is why it can still open and process that file even though the extension is unknown to mmg.

sneaker_ger
9th November 2010, 18:58
2) Assuming the original video has 23.976 or 24 fps and 1 minute and 30 seconds, it doesn't matter. If you insert numbers like 24/90, 25/90, 23/90 or any other for that matter, you will never get the precise lenght, considering the second number is the lenght in seconds. So you are wrong.

What makes you think the original video has 23.976 or 24 fps? Because some flag says so? Don't make assumptions based on some flag. Extract the timecodes and you can calculate the real fps and the number of frames.

Also the math for fps is number of frames/number of seconds and NOT frames per second/number of seconds.

LeMoi
9th November 2010, 22:44
mkvmerge determines file types by the file's content, not by their extension. This is why it can still open and process that file even though the extension is unknown to mmg.

Really ? I remember wanting to mux an mp4 file, which extension was .mov. mmg refused to remuxed it when it was .mov, and renaming it .mp4 solved the problem... But it was monthers ago, I couldn't give you an example...

Mosu
9th November 2010, 23:03
mkvmerge has NEVER used file extensions for type detection. It only uses file extension for e.g. VobSubs (using ".sub" for the content file when you add the ".idx" file).

Lincoln Burrows
10th November 2010, 04:25
What makes you think the original video has 23.976 or 24 fps? Because some flag says so? Don't make assumptions based on some flag. Extract the timecodes and you can calculate the real fps and the number of frames.

Also the math for fps is number of frames/number of seconds and NOT frames per second/number of seconds.OK, here's what I did:

1) Used TSMuxer to demux the original m2ts file (from the slideshow);

2) Used Mkvtoolnix to create a MKV file;

3) Used MKVextractGUI to extract the timecode from 2). This is the TXT file generated (attached to this post).

How may I calculate the number of frames? Is there a formula for that?

One more thing: in order to follow your tip, should I just insert the number of frames/seconds and create another MKV file or MKVtoolnix needs to load the TXT file (attached on this post) in the "timecode" box? *

* I tried to do that but it's returning the following error:

File contains an unsupported/unrecognized format line. The very first line must look like '# timecode format v1'.

The manual also says "Normally mkvmerge will derive the timecodes for each frame from the source file, but it can also read and use timecodes from an external text file whose name you can specify here. This feature is a very advanced feature. Almost all users should leave this entry empty."

sneaker_ger
10th November 2010, 04:42
I can't open your attachment as it is not yet approved. You cannot load a timecode file into mkvmerge AND specify a value for fps. But we just need to do the latter anyways. To "calculate" the number of frames in your file you just have to count the lines of the file, because each number is the starting time of a frame. (minus the first "# timecode format v2" line and minus the empty last line)
Then you can remux your file and specify number of frames / number of seconds and should get your dia show. (Or you can just choose your own dia duration. If you want each picture to get shown 3 seconds you choose "1/3", if you want 5 seconds "1/5" and so on...)

/edit:
If this still does not work correctly you may have stumbled upon an error in your player. If you are using MPC you can try to set the output to e.g. "EVR Custom Pres.".

hh1974
11th November 2010, 04:54
Thanks for this!!

tormento
11th November 2010, 10:31
Uhm... "Muxing -> Show command line"?
How embarassing... Thanks...

73ChargerFan
16th November 2010, 06:26
Mosu, the links in the first post are for version 4.0.0. Could they be updated?
This isn't the first time idiot-me downloaded from that post, only to revert to an older version.

Mosu
16th November 2010, 20:11
Sorry, but not. There's a big red hint at the start of the post, and each signature contains the link. I'd like to leave the post history alone.

yumemi
18th November 2010, 10:10
I need some help here. I have a lot of mkv files named "title.mkv" and I would like to put these titles into the title tag of each file. Is it possible to automate the process?

sneaker_ger
18th November 2010, 10:14
Write a batch which uses mkvpropedit.exe. (see the doc (http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvpropedit.html))

Mosu
18th November 2010, 10:15
With shell scripting this is rather easy. Most likely it's even possible with cmd.exe, though I don't know how. With a bash like shell it goes something like this (assuming you want to put the files into another output folder):

for file in *.mkv ; do
mkvmerge -o "output/$file" --title "${file%.mkv}"
done

Untested.

Edit: If you don't need safety then doing it directly with mkvpropedit as sneaker_ger has said is just as easy; something like


for file in *.mkv ; do
mkvpropedit "$file" --set title="${file%.mkv}"
done

sneaker_ger
18th November 2010, 10:50
for file in *.mkv ; do
mkvpropedit "$file" --set title="${file%.mkv}"
done

Don't you need to also specify "--edit info"?

/edit: apparently not.

Mosu
18th November 2010, 10:57
Don't you need to also specify "--edit info"?

No, as "info" is the default section to edit. Though I have to admit that the documentation doesn't mention this fact.

sneaker_ger
18th November 2010, 11:07
Yes, that's why I wondered. Thx.

Just tried the header editor (of mmg) and it crashes on me for files which need admin rights (Windows 7, directory "c:" for example). Can you reproduce this? If not I will do some more testing and file a proper report on the tracker.

http://www.abload.de/img/header_editor_crashtyc6.png

Mosu
18th November 2010, 11:14
I doubt this particular error results from needing admin rights. Try that file in another location in which your normal user has access rights, please. I don't have a Windows system here at the moment that I can investigate on; also I don't have the time to before Saturday or Sunday.

sneaker_ger
18th November 2010, 11:34
It works fine in other directories, which don't need admin rights. Giving it admin rights does not prevent the crash.
What's funny: it managed to actually modify the file despite of missing admin rights, which I thought would be needed. Normally a UAC prompt would show up when doing anything in these directories with Windows Explorer.

Mosu
18th November 2010, 11:38
Interesting.

Ah well, as it is a crash in libebml I will most likely not investigate it. Lack of time etc.

sneaker_ger
18th November 2010, 11:41
I see.

bayex
19th November 2010, 22:54
Mkv file in MKV file right.h264 left.h264 to the title, but I could not throw. Mux as I have right.h264 mp4 file. Now I can not make this Mux mkv to the mp4 file

\right-muxed.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 12.0 GiB
Duration : 2h 39mn
Overall bit rate : 10.8 Mbps
Encoded date : UTC 2010-11-19 21:10:22
Tagged date : UTC 2010-11-19 21:10:22

Video
ID : 1
Format : svc1
Codec ID : svc1
Duration : 2h 39mn
Bit rate mode : Variable
Bit rate : 10.8 Mbps
Maximum bit rate : 32.0 Mbps
Width : pixel0
Height : pixel0
Frame rate mode : Constant
Frame rate : 23.976 fps
Stream size : 12.0 GiB (100%)
Encoded date : UTC 2010-11-19 21:10:22
Tagged date : UTC 2010-11-19 21:20:19


\right.h264
Format : AVC
Format/Info : Advanced Video Codec
File size : 12.0 GiB

Video
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Stereo High@L4.1
MultiView_Count : 2
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive

robpdotcom
21st November 2010, 09:23
Looks like WD finally fixed their player:

Release 1.03.49 (11/16/10)
Added DVD navigation support.
Added Mediafly application.
Resolved MP4 poor frame-rate and audio out of sync issue.
Resolved HDMI auto resolution selection issue.
Resolved playback issues related to mkvmerge.
Other bug fixes and product updates (see release notes).

http://www.wdc.com/wdproducts/updates/?family=wdfwdtv_live

InsulinJunkie
22nd November 2010, 06:30
Looks like WD finally fixed their player:

Well, one of them, at least.

The Gen2 WD TV that came out the same time as that original Live model (Live had network capabilities, non-Live didn't, as well as some other smaller differences)? The firmware hasn't been updated in over a year, and I'd be surprised if it ever will be.

elshagon
23rd November 2010, 07:42
I'm using MKVMerge to remove a Russian audio track so it defaults to the DTS HDMA track but the mkv it outputs has jitter where the video will speed up every so often for a split second. Is there something in the settings I need to do to prevent this? I've tried leaving the fps as is and also tried setting it manually and this had no effect the problem still exists.

Mosu
23rd November 2010, 08:46
If you're using Haali's splitter then try this build: http://www.bunkus.org/videotools/mkvtoolnix/win32/pre/mkvtoolnix-unicode-4.4.0-build20101115-315-setup.exe

SamuriHL
23rd November 2010, 16:29
If you're using Haali's splitter then try this build: http://www.bunkus.org/videotools/mkvtoolnix/win32/pre/mkvtoolnix-unicode-4.4.0-build20101115-315-setup.exe

Does this build fix DTS-HD MA compatibility with Haali??

Mosu
23rd November 2010, 16:36
It sets the "default duration" header value for DTS audio tracks of any kind, and according to some users this seems to make Haali's splitter work with it. I haven't tested this myself. Therefore the answer is a clear "I guess it should".