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

Názor k článku
Ogg nebude v HTML5 kvůli obavě z patentů

V J aura:73
V J
15. 12. 2007 2:43

Re: proc ne XviD

celé vlákno
Já si myslím, že ten problém je právě v tom, že se to všechno zbytečně kompilkuje. Často v zájmu "zjednodušení". Začnu tím, co to je ten filtr a jak se vlastně přehrává video. Většina přehrávačů je jenom "GUI" pro nějaký backend. V Linuxu je takových backendů několik - Xine, GStreamer nebo MPlayer. Ve Windows je jeden dominantí backend zvaný DirectShow. Ten přehrává video pomocí transformačních filtrů. Krásně to je vidět na programu Graphedit od Microsoftu. Je opravdu užitečné pohrát si s ním a podívat se, jak funguje propojování různých filtrů.

DirectShow backend tedy využívá pro přehrávání filtry, které můžeme rozdělit na splittery (a jejich opak muxery), kodéry a dekodéry. Potom jsou titulkové filtry, DSP filtry (na úpravu zvuku) nebo libovolné jiné filtry, která nějak zvuk nebo video upravují (stejně jako filtry aplikovatelné ve video editorech). DirectShow využívají například přehrávače WMP, BSPlayer, ViPlay, Fusion, Crystal Player, Media Player Classic (v kombinaci s interními filtry).

Ve Windows ještě existuje backend VfW (Video for Windows), ten ale nepoužívají žádné současné video přehrávače. Používají ho hlavně video editory (VirtualDub, Vegas, Avisynth). VfW zná jediný kontejner - AVI, má velmi omezené možnosti a pro (de)kompresi videa používá kodeky. Pro zvuk používá ACM kodeky.

Potom jsou také přehrávače, které žádný backend nepotřebují a používají své vlastní řešení. Typickým příkladem jsou MPlayer nebo VLC. Používají splittery a dekodéry z projektu ffmpeg.

Takže pokud se vrátím k problému přehrání videa MKV-H.264/Vorbis. Potřebuješ zaprvé splitter pro kontejner Matroška, potom dekodér videa a dekodér zvuku. Může to být integrované v přehrávači a nebo přehrávač využije nějaký backend. Samozřejmě v backendu musí být podpora pro tyto formáty. Takže můžou nastat následující případy:
VLC, MPlayer - vše potřebné mají integrované
MPC - má integrovaný Matroška splitter a v nejnovější verzi i Vorbis dekodér, H.264/MPEG-4 AVC (je to totéž) musí použít přes DirectShow.
WMP - nemá integrované vůbec nic. Potřebuje DirectShow splitter pro matrošku, dekodér pro zvuk a dekodér pro obraz. Jakmile jeden z těchto 3 filtrů bude chybět, video se nebude přehrávat vůbec nebo třeba jenom bez obrazu nebo zvuku.

Pokud tedy předpokládám čistou instalaci Windows, tak uživateli pro přehrání výše zmíněného videa chybí hned 3 filtry nebo přehrávač integrující vše.

S koncovkami je to trochu problém. AVI je prostě vždy video. Ale co třeba hned další formát Microsoftu ASF? Takhle to nepozná nikdo, Microsoft tedy pro ASF používá koncovky WMA (zvuk) a WMV (video). MP4 to ze začátku nijak neřešil a tak to vzal do svých rukou Apple a pro zvuk zavedl koncovku M4A. Xiph.org dlouho tvrdošíjně trval na Ogg pro zvuk i video (což je značně nepraktické), až nakonec se rozhodli pro ogv a oga. Matroška už od začátku používá rozdělené koncovky - MKA, MKV a MKS (i když takový soubor jsem ještě nikdy neviděl).

S DivX formátem to je trochu zamotaný. On to je i není formát. Většina lidí říká "DivX formát" AVI videu zkomprimovanému DivX kodekem. To je samozřejmě špatně. Takové video je přece pořád AVI. Komprese obrazu je MPEG-4 ASP. Jenže DivX to trochu zamotal, vytvořil totiž modifikaci AVI, kterou nazval DIVX kontejner. Takové video by mělo být zpětně kompatibilní s AVI, umožňuje ale obsahovat titulky, víc zvukovych stop, kapitoly atd. Je to ale pořád jenom upravený AVI, nedávam tomu formátu žádnou budoucnost.

A ještě na závěr proč je třeba mít kontejner. Vezmi si MP3 a různé tagy - ID3v1, ID3v2, APEv2. Neexistuje žádnej dobrej způsob, jak metainformce do čistýho streamu zapsat. Kromě MP3 jsou ještě další běžně se vyskytující streamy třeba AC3, DTS nebo AAC. Do kontejneru se dávají proto, aby bylo možný definovat kapitoly, uložit rozumným způsobem metainformace a třeba i přiložit obal CD. Já vím, že to jde i u MP3, ale není tu úplně čistý způsob.