Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Matroska: multimédia v úhledném balíčku

Multimediální kontejner Matroska je vyzdvihován snad každým článkem, který se o ní jenom zmíní. Realita se může zdát mnoha uživatelům malinko jiná. Přesto, že toho umí Matroška spoustu, nástrojů pro využití všech jejích možností je málo a některé chybí. V Linuxu na tom je nejlépe řádkový MKVToolnix.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Pojmy

Začátečníkům nemusí pojem „kontejner“ být zcela jasný, takže začneme s vysvětlením několika pojmů.

Kontejner

Multimediální kontejner je něco, co každý den používáme a ani o tom nemusíme vědět. Pro představu jde o krabici, do které se složí další data. Nejčastěji jde o video nebo audio, ale najdou se i jiné typy dat. Existuje jich mnoho, ale nejrozšířenější je AVI (Audio Video Interleave). Je to klasický, 17 let starý kontejner, který se používá prakticky dodnes. I když má nepříjemné vlastnosti, které znemožňují použití některých kodeků bez nehezkých hacků, tak ho mají výrobci i „piráti“ vcelku v oblibě. Další zástupci kontejnerů jsou třeba MPEG-TS(PS), QuickTime, Ogg, 3GP atd.

Kodek

Video a audio data samotná musí být v nějakém formátu, který se může umístit do kontejneru. Můžeme ukládat jednotlivé snímky nebo použít nějaký sofistikovanější způsob, jako třeba kodek H.264 nebo stále populární MPEG-4. Tento balík dat vložíme do kontejneru, který jim dá tvar a přehrávače s nimi budou moci pracovat. Kontejner může zpravidla obsahovat více balíků. Cílem kodeku je uložit data za nějakým účelem, u multimédií nejčastěji snížit velikost a zachovat co největší kvalitu. Kodek ale nemusí pracovat jen s multimédii, ale i s obecnými daty, které má schovat před zraky ostatních nebo se snaží snížit jejich velikost aniž by se ztratil jediný bit. To nás v kontextu s Matroskou moc zajímat nemusí.

Stopa

Stopa obsahuje nějaká data s videem, audiem či textem. Např. do Matrosky si můžeme vložit stop kolik chceme. Tahle vlastnost umožňuje do kontejneru přidat titulky a audio několika jazyků. Aby toho nebylo málo, můžeme do kontejneru přidat i několik video stop. To znamená, že v jednom mkv souboru najdeme třeba celou sezónu jednoho seriálu nebo film s bonusy. V případě Matrosky je ve stopě uložen vždy jeden typ dat, tedy titulky, audio nebo video.

Menu

Když si koupíte DVD, najdete na něm hromadu souborů, mezi kterými se dá najít i tzv. menu. Jde o vlastnost, díky které si může uživatel pohodlně navolit zvukovou stopu, případně titulky s několika tlačítky na ovladači a v neposlední řadě spustit přesně to video, které chce. Jde prakticky jen o formu podání obsahu, na kterou nás často představitelé filmových společností lákají, samotný film si pustíme i bez menu. U Matrosky si můžete vytvořit také takové menu. Bohužel se mi nepodařilo najít nástroj, který by to opravdu dokázal. MKVToolnix, který si ukážeme v druhé polovině článku, to bohužel neumí a jiné linuxové nástroje jsou rády, že Matrosku vůbec správně otevřou.

 Kapitola

Kapitolou se rozumí rozdělení jednoho videa na několik části. V podání Matrosky jde o textovou informaci (může být i XML), která obsahuje čas začátku této části a její název. Slouží pro jednodušší orientaci ve filmu. Obdobu najdeme i na DVD médiích. Video v tomto případě není rozděleno na kapitoly fyzicky, ale jde jen o značky.

Matroska

Když známe základní pojmy, můžeme si říci něco bližšího o Matrosce. Jak už bylo řečeno, jde o kontejner na multimediální data. Je otevřený a snaží se vyhovět požadavkům moderní doby. Je navržen tak, aby budoucí změny nezničily kompatibilitu se staršími verzemi. Na druhou stranu tu je jedna vlastnost, kvůli které se dnes Matroska nedostane tam, kde bychom ji chtěli, a to absence DRM. I když nejsem zastáncem této technologie, tak je pravda, že tlak je jiný. Bohužel ne od uživatelů. Dokud budou filmové společnosti cítit potřebu omezovat práva uživatele na stažené soubory např. z nějaké online videopůjčovny, nebude zde prostor ani pro Matrosku. Kde se Matroska hodně používá, jsou různé TV a Blue-ray ripy. Většinu ale nevyužívají nic jiného než jednu audio a jednu video stopu.

Matroska může v jednom souboru nést data, které známe z klasických DVD, a přitom si drží navíc výhody jako:

  • Podpora velkého množství kodeků
  • Bezztrátová editace
  • Rychlé řešení chybných snímků
  • Rychlé přetáčení
  • Streamování po síti
  • O kousek menší soubory než třeba u AVI

Nemusíte narazit pouze na video soubory, ale může se vám dostat do ruky i soubor s koncovkou .mka, který obsahuje pouze zvukové stopy. Někteří čtenáři již pravděpodobně pochopili, že v tomto souboru může být rovnou celé album. Další variantou (kromě klasického .mkv s video stopou) je soubor s koncovkou .mks. Jde pouze o titulky, které jsou připraveny ve „správném“ formátu pro další práci. Smysl tohoto převodu pochopíte u příkladů v příštím článku.

I když povídání o Matrosce zní jak rajská hudba, kromě absence DRM ji chybí ještě jedna velmi důležitá strategická věc. Výrobci nejrůznějších stolních přehrávačů se do implementace nehrnou. Podporu všech vlastností Matrosky nenajdeme pomalu ani u přehrávačů, které používáme běžně v Linuxu nebo i ve Windows. Matroska není dostatečně komerčně zajímavá a touhu uživatelů ukazuje třeba množství návodů na převod Matrosky do AVI.

MKVToolnix

Pro příznivce Linuxu je Matroska ideální. Je vyvíjena otevřeně a nabízí všechno, co může uživatel od kontejneru chtít. Když už se rozhodneme Matrosku použít, bude to pravděpodobně k tomu, abychom naše videa převedli z „ošklivého“ .avi do nablýskaného .mkv. Jako bonus si můžeme přidat titulky, s trochou štěstí i další zvukové stopy, prostě co zdroj dá. Odvážnější si mohou nashromážděné seriály rozdělit po sezónách a doufat, že to jejich oblíbený přehrávač nějak přehraje a umožní přepínat. Nicméně i běžné spojení jednoho dílu s titulky bude dobrý výsledek.

Matroska za nás totiž vyřeší jednu velmi nepříjemnou záležitost u titulků, a to je kódování. V Matrosce jsou všechny titulky uchovávané v utf-8 a jiné kódování bychom jí ani neměli strkat. Když zajdeme až do extrémů, můžeme k titulkům přibalit i opravdu hezký font, který se pak při přehrávání použije. Důležitou poznámkou je, že titulky nejsou pevnou součástí videa, a i když je možné nastavit, aby je přehrávač automaticky použil, vždycky jdou vypnout, stejně jako lze zvolit jiný jazyk.

Jedním z cílů projektu Matroska je i přinést nástroje, které s tímto kontejnerem umí pracovat. Sběhlejší linuxáci budou jako doma, protože tímto nástrojem je řádkový balík MKVToolnix. S ním lze prakticky z jakéhokoli kontejneru dostat data a uložit je do Matrosky. Převod lze naskriptovat a aplikovat na celý souborový systém. K výsledku můžeme přidat již zmíněné titulky a třeba ještě seznam kapitol. Když máme takovýchto .mkv souborů více, můžeme je opět spojit do jednoho a tím uložit několik videí do jednoho .mkv souboru rozděleného na jednotlivé stopy.

Tady ve vylepšování naší sbírky malinko narazíme. Nepodařilo se mi najít způsob, jak dostat menu do .mkv. MKVToolnix žádnou volbu nemá a např. Avidemux neumožňuje ani přidat titulky, natož pracovat s menu.

 Instalace

Instalace je jednoduchá, protože jde o natolik známý balík, že ho najdeme snad v každé distribuci. Na Ubuntu vypadá instalace takto:

sudo aptitude install mkvtoolnix mkvtoolnix-gui 

To nejdůležitější, tedy utilitku mkvmerge, najdeme v balíčku mkvtoolnix. Balíček mkvtoolnix-gui obsahuje grafickou utilitku mkvinfo-gui, která nám zobrazí nějaké informace o .mk* souborech v okně a frontend mmg pro mkvmerge.

 .avi do .mkv

Program mkvmerge pracuje pouze s kontejnerem, neprovádí žádné de/kódování a žádnými níže popsanými postupy se tedy neztratí kvalita původního zdroje. Pouze se soubor vylepší o vlastnosti Matrosky. Nebudu vás dále napínat, takto se převede .avi na .mkv:

mkvmerge -o video.mkv video.avi 

Ani to nebolelo a můžeme se rovnou podívat, co všechno v našem novém kontejneru najdeme:

$ mkvmerge -i video.mkv
File 'video.mkv': container: Matroska
Track ID 1: video (V_MS/VFW/FOURCC, XVID)
Track ID 2: audio (A_MPEG/L3) 

Parametr -i je důležitý, protože díky němu zjistíme, co všechno jsme do kontejneru nahráli. V prvním příkladu jsme použili parametr -o, kterým říkáme, kam má jít výstup mkvmerge. Dalším parametrem je již název samotného .avi kontejneru s videem a audiem. Po spuštění se dozvíme, co přesně mkvmerge dělá, a procentuální splnění úkolu. Jde prakticky jen nakopírování dat z původní krabice do nové. Délka procesu závisí na rychlost vašeho disku.

Detailnější informace získáme buď pomocí grafické utilitky mkvinfo-gui nebo mkvinfo.

Přidáváme titulky

Jelikož titulek můžeme přidat několik, sluší se jim dát i nějakou cedulku s názvem jazyka. Nejdříve ale zkusíme vytvořit video s titulky.

mkvmerge -o video.mkv video.avi video.srt 

Program mkvmerge bere pouze srt titulky, pokud mu vnutíte jiné, oznámí vám, že není spokojený s formátem. Teď zkusíme dát titulkům cedulku s tím, že jsou české, a řekneme přehrávači, aby je spustil společně se zvukem a videem.

mkvmerge -o video.mkv video.avi --default-track 0 --language 0:cze video.srt 

Volba –default-track zařídí, aby se naše titulky spustily ve výchozím stavu. To může být ovlivněno mnoha faktory, závisející na přehrávači. Některé přehrávače třeba vyberou titulky v závislosti na nastavení jazyka lokálního systému. Označené titulky vložíme pomocí parametru –language, kde část před dvojtečkou označuje číslo stopy a část za je kód země či jazyka. Ten získáme takto:

$ mkvmerge --list-languages 

Je jedno, jestli použijeme jeden či druhý kód.

Titulky jsou převáděny vždy do utf-8 a to buď z kódování, které předáváme parametrem –sub-charset nebo se použije kódování nastavené v locale. Osobně nejdříve titulky převedu do utf8 pomocí iconv:

iconv -f cp1250 -t utf8 video.srt > video.utf8.srt 

Většina českých titulek co se nachází na internetu, jsou v kódování cp2150.

Nakonec se můžeme podívat na informace o videu:

Valentýna vyřešíte v našem butiku

Pánové, Valentýn je tu a tak jsme pro vás v našem butiku připravili balíček dámských kalhotek a trička za zvýhodněnou cenu 365 Kč.

       
$ mkvmerge -i video.mkv
File 'video.mkv': container: Matroska
Track ID 1: video (V_MS/VFW/FOURCC, XVID)
Track ID 2: audio (A_MPEG/L3)
Track ID 3: subtitles (S_TEXT/UTF8) 

Závěr

I když je tu Matroska již sedm let a tolik se neprosazovala, zatím není na čase ji odepisovat a je pravděpodobné, že ji čeká ještě hezká budoucnost. Podpora .avi souborů v běžných DVD přehrávačích se také neobjevila hned. Lépe na tom jsou přehrávače v Linuxu nebo ve Windows, kde si většinou uživatel takto uložený film přehraje. Matroska je často spojována s kodekem H.264. Je to víceméně její nejčastější použití. Většinou jde o velmi kvalitní videa nebo videa určená třeba pro mobilní telefony s Androidem.

Jelikož se mi začal článek nafukovat, tak jsem se rozhodl ho rozdělit na dva. Budeme se tak moci podrobněji podívat na problematiku přehrávání Matrosky v Linuxu a hlavně rozebrat mnohem více příkladů s mkvmerge a zatím neznámý nástroj mkvextract.

Odkazy

Adam Štrauch

Adam Štrauch

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.

Školení: TCP/IP síť na Linuxu II

V tomto školení prohloubíte svoji znalost síťování na Linuxu a vyzkoušíte si pokročilejší techniky. Školení je určené mimojiné i pro správce poskytovatelských sítí.

  • Průřez technologiemi TCP/IP 
  • Stavba testovací sítě
  • Dynamický routing: OSPFv2 a OSPFv3
  • Bridging, proxy ARP, proxy NDP
  • Různé metody překladu adres
  • NAT traversal v praxi
  • Přepis paketů
  • Tunelování a VPN
  • Troubleshooting, situace z praxe

Podrobnější informace a přihláška 

Ohodnoťte jako ve škole:
Průměrná známka 2,67

Přehled názorů

Pár poznámek
Miki 1. 12. 2009 00:33
Nový
├ 
Re: Pár poznámek
Adam Štrauch 1. 12. 2009 00:57
Nový
│
├ 
Re: Pár poznámek
Vláďa J 1. 12. 2009 17:40
Nový
│
│
├ 
Re: Pár poznámek
Biktop 1. 12. 2009 19:57
Nový
│
│
│
└ 
Re: Pár poznámek
Vláďa J 1. 12. 2009 20:32
Nový
│
│
│
 
└ 
Re: Pár poznámek
Biktop 1. 12. 2009 22:26
Nový
│
│
│
 
 
└ 
Re: Pár poznámek
Vláďa J 1. 12. 2009 23:32
Nový
│
│
│
 
 
 
└ 
Re: Pár poznámek
Field 2. 12. 2009 00:25
Nový
│
│
│
 
 
 
 
└ 
Re: Pár poznámek
mx 2. 12. 2009 15:43
Nový
│
│
│
 
 
 
 
 
├ 
Re: Pár poznámek
I/O 2. 12. 2009 17:18
Nový
│
│
│
 
 
 
 
 
├ 
Re: Pár poznámek
ddd 2. 12. 2009 20:34
Nový
│
│
│
 
 
 
 
 
└ 
Re: Pár poznámek
Field 2. 12. 2009 23:53
Nový
│
│
│
 
 
 
 
 
 
└ 
Re: Pár poznámek
Robert Smol 3. 12. 2009 04:35
Nový
│
│
└ 
Re: Pár poznámek
JardaP . 1. 12. 2009 23:15
Nový
│
│
 
└ 
Re: Pár poznámek
trubicoid 2. 12. 2009 07:00
Nový
│
└ 
Re: Pár poznámek
def 2. 12. 2009 20:26
Nový
│
 
└ 
Re: Pár poznámek
Odis 15. 12. 2009 10:34
Nový
└ 
Redakčně smazáno
liking 23. 7. 2010 08:55
Nový
Re: Matroška: multimédia v úhledném balíčku
granny smith 1. 12. 2009 00:51
Nový
Vysvětlení?
Zdeněk Zikán 1. 12. 2009 00:53
Nový
├ 
Re: Vysvětlení?
Adam Štrauch 1. 12. 2009 01:30
Nový
└ 
Re: Vysvětlení?
Asterixx 1. 12. 2009 15:48
Nový
 
└ 
Re: Vysvětlení?
Vláďa J 1. 12. 2009 17:43
Nový
H.264/MPEG4 AVC
brk 1. 12. 2009 06:22
Nový
├ 
Re: H.264/MPEG4 AVC
ToM 1. 12. 2009 09:00
Nový
└ 
Re: H.264/MPEG4 AVC
petr_p 1. 12. 2009 12:40
Nový
 
└ 
Re: H.264/MPEG4 AVC
Vláďa J 1. 12. 2009 18:02
Nový
 
 
└ 
Re: H.264/MPEG4 AVC
Miki 1. 12. 2009 19:10
Nový
 
 
 
└ 
Re: H.264/MPEG4 AVC
Vláďa J 1. 12. 2009 19:22
Nový
 
 
 
 
└ 
Re: H.264/MPEG4 AVC
Miki 1. 12. 2009 19:53
Nový
 
 
 
 
 
└ 
Re: H.264/MPEG4 AVC
trubicoid 1. 12. 2009 20:12
Nový
 
 
 
 
 
 
└ 
Re: H.264/MPEG4 AVC
Vláďa J 1. 12. 2009 20:43
Nový
 
 
 
 
 
 
 
└ 
Re: H.264/MPEG4 AVC
trubicoid 1. 12. 2009 21:05
Nový
 
 
 
 
 
 
 
 
├ 
Re: H.264/MPEG4 AVC
Vláďa J 1. 12. 2009 21:16
Nový
 
 
 
 
 
 
 
 
└ 
Re: H.264/MPEG4 AVC
Mirek_ 3. 12. 2009 14:23
Nový
 
 
 
 
 
 
 
 
 
└ 
Re: H.264/MPEG4 AVC
Vláďa J 3. 12. 2009 16:39
Nový
Dalsi vyhody MKV
pantaril 1. 12. 2009 08:58
Nový
└ 
Re: Dalsi vyhody MKV
rda 1. 12. 2009 10:31
Nový
 
└ 
Re: Dalsi vyhody MKV
JN 1. 12. 2009 10:56
Nový
 
 
├ 
Re: Dalsi vyhody MKV
trubicoid 1. 12. 2009 12:23
Nový
 
 
│
└ 
Re: Dalsi vyhody MKV
Stanislav Brabec 1. 12. 2009 13:59
Nový
 
 
│
 
└ 
Re: Dalsi vyhody MKV
Vláďa J 1. 12. 2009 18:07
Nový
 
 
│
 
 
└ 
Re: Dalsi vyhody MKV
trubicoid 1. 12. 2009 20:29
Nový
 
 
│
 
 
 
└ 
Re: Dalsi vyhody MKV
Vláďa J 1. 12. 2009 20:50
Nový
 
 
│
 
 
 
 
└ 
Re: Dalsi vyhody MKV
trubicoid 1. 12. 2009 21:09
Nový
 
 
│
 
 
 
 
 
└ 
Re: Dalsi vyhody MKV
Vláďa J 1. 12. 2009 21:49
Nový
 
 
│
 
 
 
 
 
 
└ 
Re: Dalsi vyhody MKV
trubicoid 1. 12. 2009 22:24
Nový
 
 
│
 
 
 
 
 
 
 
└ 
Re: Dalsi vyhody MKV
Vláďa J 1. 12. 2009 23:37
Nový
 
 
└ 
Re: Dalsi vyhody MKV
rda 1. 12. 2009 14:25
Nový
 
 
 
└ 
Re: Dalsi vyhody MKV
Vláďa J 1. 12. 2009 18:09
Nový
Většina českých titulek
MiR 1. 12. 2009 09:20
Nový
└ 
Re: Většina českých titulek
Biktop 1. 12. 2009 19:59
Nový
 
└ 
Re: Většina českých titulek
mx 2. 12. 2009 15:55
Nový
mp4 ?
dc 1. 12. 2009 09:37
Nový
Překlepy
anonym 1. 12. 2009 10:11
Nový
└ 
Re: Překlepy
Adam Štrauch 1. 12. 2009 12:25
Nový
 
└ 
Re: Překlepy
Štefan Olejník 9. 12. 2009 10:15
Nový
 
 
└ 
Re: Překlepy
ppp 15. 8. 2011 23:23
Nový
díky
cazfe 1. 12. 2009 10:49
Nový
mmmm
Laco 1. 12. 2009 12:01
Nový
└ 
Re: mmmm
trubicoid 1. 12. 2009 12:27
Nový
 
└ 
Re: mmmm
Laco 1. 12. 2009 13:27
Nový
 
 
├ 
Re: mmmm
Bone Flute 1. 12. 2009 15:38
Nový
 
 
└ 
Re: mmmm
trubicoid 1. 12. 2009 20:38
Nový
Format vs. kodek
Semo 1. 12. 2009 12:57
Nový
Format titulku v matrjosce
Jirka 1. 12. 2009 15:06
Nový
└ 
Re: Format titulku v matrjosce
Vláďa J 1. 12. 2009 18:12
Nový
 
└ 
Re: Format titulku v matrjosce
Jirka 1. 12. 2009 18:46
Nový
 
 
├ 
Re: Format titulku v matrjosce
Vláďa J 1. 12. 2009 19:13
Nový
 
 
└ 
Re: Format titulku v matrjosce
vlabra 1. 12. 2009 19:17
Nový
kodek
Substance242 1. 12. 2009 16:02
Nový
└ 
Re: kodek
Substance242 1. 12. 2009 16:23
Nový
 
└ 
Re: kodek
HuHu 1. 12. 2009 17:33
Nový
 
 
└ 
Re: kodek
Vláďa J 1. 12. 2009 18:14
Nový
 
 
 
└ 
Re: kodek
Anonymus Bimbas 4. 12. 2009 23:33
Nový
preklep
Miloss 1. 12. 2009 16:08
Nový
--language 0:cze
Aleš Friedl 1. 12. 2009 19:29
Nový
└ 
Re: --language 0:cze
Aleš Friedl 1. 12. 2009 19:38
Nový
--default-track 0
Aleš Friedl 1. 12. 2009 19:35
Nový
└ 
Re: --default-track 0
Aleš Friedl 1. 12. 2009 19:37
Nový
format mts (avchd)
pu 1. 12. 2009 20:57
Nový
├ 
Re: format mts (avchd)
trubicoid 1. 12. 2009 21:13
Nový
│
└ 
Re: format mts (avchd)
trubicoid 1. 12. 2009 21:22
Nový
└ 
Re: format mts (avchd)
Vláďa J 1. 12. 2009 21:55
Nový
Prosím
joko 1. 12. 2009 22:16
Nový
└ 
Re: Prosím
Vláďa J 1. 12. 2009 23:42
Nový
 
└ 
Re: Prosím
Aleš Friedl 8. 12. 2009 00:27
Nový
Kodek vs. formát
zzz 1. 12. 2009 22:17
Nový
preklep v texte
bugfixer 2. 12. 2009 00:19
Nový
export tituliek
dit 3. 12. 2009 23:29
Nový
├ 
Re: export tituliek
Anonymus Bimbas 4. 12. 2009 23:34
Nový
└ 
Re: export tituliek
dit 5. 12. 2009 00:04
Nový
A co popis gui jménem MMG?
eratgaertawrt 5. 12. 2009 08:51
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem