Werken met MKVToolnix/Printversie
1. Inleiding
In dit hoofdstuk zullen we het uitgebreid hebben over wat Matroska is, wat MKVToolnix is en hoe je dit pakket kunt downloaden en installeren.
Wat is Matroska?
[bewerken]Zoals gezegd op de hoofdpagina, is Matroska een media container waarin je een oneindig aantal mediabestanden kunt opslaan zodat je uiteindelijk één Matroska bestand krijgt. Er zijn drie soorten Matroska bestanden: .mkv(Matroska video), .mka(Matroska audio) en .mks(Matroska subtitles). Ze dienen respectievelijk voor het opslaan van videobestanden, audiobestanden en ondertitelingen. Mkv bestanden kun je vergelijken met VOB bestanden van DVD's. Net zoals VOB bestanden kunnen mkv's video's, audio's en ondertitelingen bevatten. Er wordt aan gewerkt om ook menu's te maken voor mkv bestanden maar dit is momenteel nog niet mogelijk.
Hieronder is een lijst van mogelijk mediabestanden die kunnen worden opgeslaan in een Matroskabestand:
- Video:
- Audio:
- Ondertitelingen: .ass, .idx, .mks, .srt, .ssa, .usf en .xml
Wat is MKVToolnix?
[bewerken]MKVToolnix bestaat uit 3 programma's: mkvmerge, mkvinfo en mkvextract. Deze programma's dienen om Matroska bestanden aan te maken, te bewerken, de precieze inhoud van een matroska bestand te bekijken en te ontleden.
mkvmerge
[bewerken]Mkvmerge is hoogstwaarschijnlijk de belangrijkste van de 3. Het zijn eigenlijk twee programma's de gewone mkvmerge en mmg(mkvmerge GUI). Het eerste werkt via commandlines en het tweede is een programma met een visuele gebruikers omgeving.
mkvinfo
[bewerken]Dit programma dient om gedetaileerde informatie over Matroska bestanden te weten te komen. Net zoals mkvmerge kun je dit programma gebruiken via commandlines of via een visuele gebruikers omgeving.
mkvextract
[bewerken]Dit programma dient om bestanden uit een Matroska bestand te halen. Kan enkel worden gebruikt via commandlines.
Download & installatie
[bewerken]De setup voor Windows kun je downloaden op de officiële site van MKVToolnix. De setup is eenvoudig (je moet niets bijzonders doen). Het installeert naast de programma's ook documentatie, die overigens op de website ook te vinden is. De website bevat bovendien de sourcecode, nieuws, en andere zaken.
2. Mkvmerge
Zoals werd gezegd in de inleiding kun je het programma mkvmerge gebruiken om Matroska bestanden aan te maken. Er zijn twee versies van het programma: de gewone mkvmerge die je kunt gebruiken via commandlines en mmg (mkvmerge GUI) die gebruikmaakt van een visuele gebruikersomgeving.
Overzicht
[bewerken]De mmg versie van het programma bevat een menubalk met daarin 5 menu's en 4 tabbladen.
De 5 menu's:
- file;
- muxing;
- chapter editor bevat alles wat te maken heeft met de zogenaamde chapter editor, een editor om hoofdstukken te maken;
- window is bedoeld om te veranderen van tabblad(je kunt natuurlijk ook gebruik maken van de tabbladen zelf);
- help bevat een help-functie met meer uitleg over het programma.
De 4 tabbladen:
- Met input heb je eigenlijk meer dan genoeg. Hierin maak je simpele Matroska-bestanden;
- attachments;
- global;
- chapter editor is eigenlijk een editor om hoofdstukken aan te maken.
Een simpel Matroska bestand aanmaken
[bewerken]Met een simpel Matroska bestand wordt bedoeld een Matroska bestand met maar één mediabestand in. Hiervoor heb je enkel het tabblad input nodig. Bij input files heb je vier knoppen add, append, remove en rem all. Om een mediabestand toe te voegen druk je op de knop add en open je het bestand dat je in het Matroska-bestand wilt opslaan. Vervolgens komt het bestand te staan bij zowel input files als bij tracks. Het verschil tussen de twee kun je het best uitleggen aan de hand van het toevoegen van een film als voorbeeld. Als je een film toevoegt komen er meestal 2 tracks te staan. Een video track dat de beelden bevat van de film en een audiotrack dat het geluid bevat. Dit gebeurt ook als je een mediacontainer als Matroska toevoegt. Een mediacontainer kan meerdere tracks bevatten maar is nog steeds maar één bestand. Om een bestand te verwijderen druk je gewoon op remove. Wil je het Matroska bestand aanmaken moet je eerst bij output filename bepalen waar het uitvoer bestand zal komen te staan en hoe je die noemt. Vervolgens druk je gewoon op start muxing. Je krijgt dan een nieuw venstertje waar informatie wordt gegeven bij mogelijke waarschuwingen en fouten.
Wil je het via commandline doen, dan moet je het volgende doen:
mkvmerge -o uitvoerbestand.mkv invoerbestand
Je kunt naast -o ook --output gebruiken. Wil je meerdere bestanden in een Matroska-bestand opslaan, dan moet je gewoon de bestanden erachteraan bijschrijven.
Add vs. append
[bewerken]To append betekent hechten en er is een groot verschil met add. Wanneer je meerder audio- of videobestanden toegevoegd door gewoon op add te klikken zal je problemen krijgen. Wanneer je dit probeert, zal een speler of alléén het eerste bestand proberen en niet het tweede af te spelen of zoals VLC mediaplayer proberen de twee tegelijkertijd af te spelen. Door append te gebruiken kun je de twee bestanden aan elkaar hechten. Hierdoor worden ze achter elkaar gespeeld. Let wel op! Als je twee bestanden aan elkaar hecht met append, maakt mkvmerger er één bestand van.
Ondertitelingen
[bewerken]Je kunt verschillende soorten ondertitels toevoegen aan een Matroska-bestand. De meest gekende zijn srt's. Je kunt één of meerdere ondertitel bestanden gebruiken. Een ondertiteling bestand moet je gewoon toevoegen met add zelfs al wil je er meerdere en moet je dus geen append gebruiken. Wanneer je wilt dat twee ondertiteling bestanden elkaar opvolgen, voor wanneer je twee films achter elkaar toont, moet je wel append gebruiken.
Voor een ondertiteling bestand kun je extra opties instellen. Om dit te doen moet je eerst de ondertitelingen selecteren bij tracks en dan naar het tabblad general track options gaan. Je kunt dan bij trackname kiezen welke naam de ondertitelingen krijgen, dit wordt meestal getoond bij Matroska-spelers. Bij language kun je kiezen in welke taal die zijn. Als je meerdere ondertiteling bestanden hebt kun je met default track flag bepalen welke ondertitelingen al dan niet worden getoond. Staan ze allemaal ingesteld met no, dan wordt er geen enkele getoond. Staat er ééntje op yes dan zal die alleen worden getoond.
Hoofdstukken
[bewerken]Je kunt Matroska bestanden verdelen in hoofdstukken. Om dit te doen heb je een bestand nodig waarin staat hoe het zal worden onderverdeeld. Er zijn twee soorten bestanden die je kunt maken: het zogenaamde simple chapter format en xml bestanden. Gelukkig heeft mmg een speciale editor voor mensen die geen ervaring hebben met dit soort bestanden.
De editor
[bewerken]De editor bevindt zich in het tabblad Chapter Editor. Om een nieuw bestand aan te maken moet je in het menu (niet het tabblad) Chapter Editor op new chapters klikken. Hierdoor wordt de editor geactiveerd. In het menu is er ook nog load hiermee kun je een bestaand chapterbestand laden. Save en save as hoef ik natuurlijk niet uit te leggen. Met save to Matroska file kun je je hoofdstukken direct opslaan in een Matroska bestand.
Voor het aanmaken van hoofdstukken zijn er drie belangrijke knoppen: add chapter, add subchapter en remove chapter. Met add chapter en add subchapter kun je respectievelijk hoofstukken en subhoofstukken maken. Je kunt dus je hoofdstukken nog is verdelen in kleinere hoofdstukken. Bij de tekstvelden start en end kun je de begin- en eindstip van een hoofstuk bepalen. Van UID moet je je niets aantrekken, die wordt automatisch gemaakt door mmg. Je mag het veranderen moest dit nodig zijn.
Naast het bepalen van het begin- en eindstip van een hoofdstuk kun je ook nog andere dingen bepalen. Zo kun je één of meerdere namen geven aan een hoofdstuk, dit gebeurt met de knop add name en geef je de naam op in het tekstveld name. Per naam die je opgeeft kun je ook bepalen in welke taal het is en voor welk land het van toepassing is, dit gebeurt bij language en country.
Wanneer je de hoofdstukken opslaat, wordt de info opgeslagen in een xml bestand.
Simple chapter format
[bewerken]Dit is de meest simpele manier om zonder de editor hoofdstukken aan te maken. Hieronder volgt een voorbeeld:
CHAPTER01=00:00:00.000 CHAPTER01NAME=Intro CHAPTER02=00:01:30.000 CHAPTER02NAME=Scene 1 CHAPTER03=00:10:00.000 CHAPTER03NAME=Scene 2 CHAPTER04=00:20:00.000 CHAPTER04NAME=Aftiteling
Er wordt gebruik gemaakt van 2 sleutelwoorden CHAPTERxx en CHAPTERxxNAME. Met CHAPTERxx geef je het tijdstip op wanneer het hoofdstuk begint. Het tijdstip moet worden opgegeven volgens het UU:MM:SS.sss formaat(U=uren, M=minuten, S=seconden en s=milliseconden). Met CHAPTERxxNAME geef je de naam op van het hoofdstuk. xx staat voor het nummer van het hoofdstuk.
xml chapter format
[bewerken]Als je de editor gebruikt, worden de hoofdstukken opgeslagen in een xml document. Je kunt natuurlijk ook zo'n document zelf aanmaken. Hieronder staat een voorbeeld:
<?xml version="1.0" encoding="UTF-8"?>
<!-- <!DOCTYPE Tags SYSTEM "matroskatags.dtd"> -->
<Chapters>
<EditionEntry>
<EditionFlagHidden>0</EditionFlagHidden>
<EditionFlagDefault>0</EditionFlagDefault>
<EditionUID>1910219158</EditionUID>
<ChapterAtom>
<ChapterDisplay>
<ChapterString>Intro</ChapterString>
<ChapterLanguage>dut</ChapterLanguage>
</ChapterDisplay>
<ChapterUID>1938306220</ChapterUID>
<ChapterFlagHidden>0</ChapterFlagHidden>
<ChapterFlagEnabled>1</ChapterFlagEnabled>
<ChapterAtom>
<ChapterDisplay>
<ChapterString>Proloog</ChapterString>
<ChapterLanguage>dut</ChapterLanguage>
<ChapterCountry>be</ChapterCountry>
</ChapterDisplay>
<ChapterTimeStart>00:00:00.000000000</ChapterTimeStart>
<ChapterTimeEnd>00:01:00.000000000</ChapterTimeEnd>
<ChapterFlagHidden>0</ChapterFlagHidden>
<ChapterFlagEnabled>1</ChapterFlagEnabled>
<ChapterUID>1366420905</ChapterUID>
</ChapterAtom>
<ChapterAtom>
<ChapterDisplay>
<ChapterString>Begingeneriek</ChapterString>
<ChapterLanguage>dut</ChapterLanguage>
<ChapterCountry>be</ChapterCountry>
</ChapterDisplay>
<ChapterUID>4116335759</ChapterUID>
<ChapterFlagHidden>0</ChapterFlagHidden>
<ChapterFlagEnabled>1</ChapterFlagEnabled>
<ChapterTimeStart>00:01:00.000000000</ChapterTimeStart>
<ChapterTimeEnd>00:01:30.000000000</ChapterTimeEnd>
</ChapterAtom>
<ChapterTimeStart>00:00:00.000000000</ChapterTimeStart>
<ChapterTimeEnd>00:01:30.000000000</ChapterTimeEnd>
</ChapterAtom>
<ChapterAtom>
<ChapterDisplay>
<ChapterString>Scene 1</ChapterString>
<ChapterLanguage>dut</ChapterLanguage>
<ChapterCountry>be</ChapterCountry>
</ChapterDisplay>
<ChapterUID>2876979633</ChapterUID>
<ChapterTimeStart>00:01:30.000000000</ChapterTimeStart>
<ChapterTimeEnd>00:10:00.000000000</ChapterTimeEnd>
<ChapterFlagHidden>0</ChapterFlagHidden>
<ChapterFlagEnabled>1</ChapterFlagEnabled>
</ChapterAtom>
<ChapterAtom>
<ChapterDisplay>
<ChapterString>Scene 2</ChapterString>
<ChapterLanguage>dut</ChapterLanguage>
<ChapterCountry>be</ChapterCountry>
</ChapterDisplay>
<ChapterUID>1462925463</ChapterUID>
<ChapterTimeStart>00:10:00.000000000</ChapterTimeStart>
<ChapterTimeEnd>00:20:00.000000000</ChapterTimeEnd>
<ChapterFlagHidden>0</ChapterFlagHidden>
<ChapterFlagEnabled>1</ChapterFlagEnabled>
</ChapterAtom>
<ChapterAtom>
<ChapterDisplay>
<ChapterString>Aftiteling</ChapterString>
<ChapterLanguage>dut</ChapterLanguage>
<ChapterCountry>be</ChapterCountry>
</ChapterDisplay>
<ChapterUID>701891241</ChapterUID>
<ChapterTimeStart>00:20:00.000000000</ChapterTimeStart>
<ChapterTimeEnd>00:21:00.000000000</ChapterTimeEnd>
<ChapterFlagHidden>0</ChapterFlagHidden>
<ChapterFlagEnabled>1</ChapterFlagEnabled>
</ChapterAtom>
</EditionEntry>
</Chapters>
Een xml document is veel groter dan de simpel chapter format maar het kan ook meer informatie bevatten. Je kunt ook het eindpunt van een hoofdstuk bepalen, en een land en een taal opgeven. Verder kun je gebruik maken van subhoofdstukken.
Hoofdstukken gebruiken
[bewerken]Je kunt de editor gebruiken om de hoofdstukken toe te voegen aan en al bestaande Matroska-bestand. Hiervoor moet je naar menu chapter editor gaan en klik je op save to Matroska file. Kies dan gewoon het Matroska-bestand dat je wilt en druk op de knop "opslaan".
Als je de editor niet gebruikt, ga dan naar het tabblad global . Bij chapter file zoek je het bestand dat je wilt gebruiken voor de hoofdstukken.
3. Mkvinfo
'mkvinfo dient om gedetaileerde informatie te krijgen van een Matroska bestand. Er zijn twee manieren om dit programma te gebruiken. De eerste manier is om via de commandline dit programma tegebruiken. De tweede manier is via een visuele gebruikers omgeving(vgo). De tweede is eigenlijk een onderdeel van het eerste. Via de commandline kun je de vgo oproepen door dit te doen:
mkvinfo -g
-g is een optie die de vgo zal oproepen. Je hebt wellicht een snelkoppeling ergens staan die de vgo versie van het programma opent, eigenlijk voert hij dit uit.
Vgo versie
[bewerken]De vgo versie is eigenlijk heel simpel. Je hebt slechts 3 menu's en een tekstgebied. Via File kun je een Matroska bestand openen, waardoor je een samenvatting krijgt in het tekstgebied. Je kunt ook het rapport met de gedetaileerde informatie opslaan via het File menu. Dat rapport kan als volgt eruit zien.
(MKVInfo) + EBML head at 0 (MKVInfo) |+ Doc type: matroska at 5 (MKVInfo) |+ Doc type version: 1 at 16 (MKVInfo) |+ Doc type read version: 1 at 20 (MKVInfo) + Segment, size 1173705986 at 24 (MKVInfo) |+ Seek head at 36 (MKVInfo) | + Seek entry at 41 (MKVInfo) | + Seek ID: 0x15 0x49 0xa9 0x66 at 44 (MKVInfo) | + Seek position: 4099 at 51 (MKVInfo) | + Seek entry at 56 (MKVInfo) | + Seek ID: 0x16 0x54 0xae 0x6b at 59 (MKVInfo) | + Seek position: 4255 at 66 (MKVInfo) | + Seek entry at 71 (MKVInfo) | + Seek ID: 0x11 0x4d 0x9b 0x74 at 74 (MKVInfo) | + Seek position: 1173639873 at 81 (MKVInfo) | + Seek entry at 88 (MKVInfo) | + Seek ID: 0x1c 0x53 0xbb 0x6b at 91 (MKVInfo) | + Seek position: 1173596032 at 98 (MKVInfo) |+ EbmlVoid (size: 4027) at 105 (MKVInfo) |+ Segment information at 4135 (MKVInfo) | + Timecode scale: 1000000 at 4141 (MKVInfo) | + Muxing application: libebml v0.7.7 + libmatroska v0.8.1 at 4148 (MKVInfo) | + Writing application: mkvmerge v2.0.2 ('') built on Feb 21 2007 23:40:55 at 4186 (MKVInfo) | + Duration: 7804.544s (02:10:04.544000000) at 4254 (MKVInfo) | + Date: Sat Jun 02 16:38:25 2007 UTC at 4261 (MKVInfo) | + Segment UID: 0x9d 0x86 0xa9 0xb4 0x27 0xc7 0x7c 0xdb 0x9f 0x99 0xaa 0x9c 0x68 0xf1 0x1e 0xa7 at 4272 (MKVInfo) |+ Segment tracks at 4291 (MKVInfo) | + A track at 4297 (MKVInfo) | + Track number: 1 at 4300 (MKVInfo) | + Track UID: 1 at 4303 (MKVInfo) | + Track type: video at 4307 (MKVInfo) | + Enabled: 1 at 4310 (MKVInfo) | + Default flag: 1 at 4313 (MKVInfo) | + Forced flag: 0 at 4316 (MKVInfo) | + Lacing flag: 0 at 4320 (MKVInfo) | + MinCache: 1 at 4323 (MKVInfo) | + Timecode scale: 1.000000 at 4327 (MKVInfo) | + Max BlockAddition ID: 0 at 4335 (MKVInfo) | + Codec ID: V_MPEG4/ISO/AVC at 4339 (MKVInfo) | + Codec decode all: 1 at 4356 (MKVInfo) | + CodecPrivate, length 38 at 4359 (MKVInfo) | + Default duration: 33.367ms (29.970 fps for a video track) at 4400 (MKVInfo) | + Language: eng at 4408 (MKVInfo) | + Name: video at 4415 (MKVInfo) | + Video track at 4423 (MKVInfo) | + Pixel width: 720 at 4425 (MKVInfo) | + Pixel height: 480 at 4429 (MKVInfo) | + Interlaced: 0 at 4433 (MKVInfo) | + Display width: 853 at 4436 (MKVInfo) | + Display height: 480 at 4441 (MKVInfo) | + A track at 4446 (MKVInfo) | + Track number: 2 at 4448 (MKVInfo) | + Track UID: 938938017 at 4451 (MKVInfo) | + Track type: audio at 4458 (MKVInfo) | + Enabled: 1 at 4461 (MKVInfo) | + Default flag: 1 at 4464 (MKVInfo) | + Forced flag: 0 at 4467 (MKVInfo) | + Lacing flag: 1 at 4471 (MKVInfo) | + MinCache: 0 at 4474 (MKVInfo) | + Timecode scale: 1.000000 at 4478 (MKVInfo) | + Max BlockAddition ID: 0 at 4486 (MKVInfo) | + Codec ID: A_AAC at 4490 (MKVInfo) | + Codec decode all: 1 at 4497 (MKVInfo) | + CodecPrivate, length 2 at 4500 (MKVInfo) | + Default duration: 21.333ms (46.875 fps for a video track) at 4505 (MKVInfo) | + Language: eng at 4513 (MKVInfo) | + Name: audio at 4520 (MKVInfo) | + Audio track at 4528 (MKVInfo) | + Sampling frequency: 48000.000000 at 4530 (MKVInfo) | + Channels: 2 at 4536 (MKVInfo) |+ EbmlVoid (size: 1024) at 4539 (MKVInfo) |+ Cluster at 5566
Dit rapport is van een Matroska bestand met maar één film in.
Via commandline
[bewerken]Via de commandline kun je extra opties gebruiken die niet gaan met de vgo.
−g, −−gui: zoals gezegd opent dit de vgo van het programma.
−v, −−verbose:
−c, −−checksums:
−s, −−summary:
−−output−charset <tekencodering>:
-r, −−redirect−output <bestandsnaam>:
−h, −−help: dit toont nog eens alle opties van het programma.
−V, −−version: deze optie toont welke versie je hebt van het programma.
4. Mkvextract
Werken met MKVToolnix/mkvextract