Děkuji za pasáž s vysvětlením MPEG-4 a souvisejících pojmů - konečně si někdo troufnul to do článku dát a vyhnout se populárním mýtům.
Jenom to ještě není úplně 100%.
1. AVI je formát. Je to formát souboru, do kterého ukládáme. Ano, je to kontejner - ale kontejner je taky formát, který má svoji specifikaci (a potom jsou softwarové a hardwarové implementace, které s tím formátem pracují).
2. MPEG-4 není video formát. Je to rozsáhlý multimediální standard (standardizovaný u ISO) - specifikace, která zahrnuje spoustu věcí od kódování obrazu přes kódování zvuku až po vlastní kontejner MP4 (založený na QuickTime). A jeho část týkající se kódování obrazu má řadu profilů - kodeky jako DivX, XviD a FFmpeg MPEG-4 využívají pouze jeho profil ASP (Advanced Simple Profile), případně SP (Simple Profile).
Není tedy uplně přesné, že kódujeme do formátu MPEG-4 - vytváříme AVI soubory, které obsahují ASP video bitstream a MP3 audio stream. Takže nějaké rozumné označení by pro to snad mohlo být AVI/MPEG-4 (MPEG-4 video v AVI souboru). Tím "formátem" se totiž většinou myslí právě formát kontejneru, často nazývaný formát souboru. A standardní MPEG-4 má svůj vlastní formát.
Koukám, že tomu celkem rozumíte. Když MPEG-4 je daný formát, měly by se výstupy jednotlivých koderů a jejich verzí lišit pouze v kvalitě ale ne v samotném formátu jejich výstupu (podobně to funguje u MP3, různé softy kódují různě kvalitně, ale výsledkem je univerzálně přehratelný soubor). Proč tedy soubor vytvořený nějakou verzí DivX je problematické přehrát starší verzí DivX, když formát MPEG-4 by měl být jednotný?
Protoze ten DIVX neimplementoval kompletni MPEG-4 dekoder. Pak by samozrejme bylo vsecko kompatibilni a veskere dalsi zmeny by se mohly odehravat jen v enkoderu. Ve skutecnosti postupne implementuji casti MPEG-4 jak v enkoderu, tak v dekoderu. Asi nejvetsi podmnozinu dnes realizuje XVID, ktery o sobe tvrdi, ze dela Advanced Simple Profile. (ciste teoreticky by XVID jako dekoder mel pri prehravani ruznych DIVX verzi mit nejmene problemu)
Nejuniverzálnější a patrně nejlepší MPEG-4 dekodér je FFmpeg MPEG-4. Ten nejen že zvládá všechno z Advanced Simple Profile, ale má všelijaké režimy pro dekódování videa kódovaného různými MPEG-4 enkodéry (včetně kodeku XviD - to dokonce zvládá lépe než samotný dekodér XviD, který obsahuje chyby :-)), včetně vadných streamů, tedy má i různé "workaroundy" pro různá standardní i nestandardní specifika různých kodeků.
Je to přesně ten kodek, který je vestavěný a používaný jako výchozí v MPlayeru, xine, VLC, Avidemuxu a dalších (a používá se i v příkladech v tomto seriálu, včetně tohoto dílu).
To zní dobře, našel jsem stránku projektu na sourceforge, ovšem release je přes rok stará a zdrojáky jsou mi jaksi k ničemu. Dá se to někde sehnat jako kodek do Windows Media Playeru?
A kterou verzi doporučujete? Poslední release verze je z poloviny roku 2002, poslední alpha release je z října 2004 a pak tam jsou již jen denní buildy.
Tak zrovna tento ignorantský server bych nedoporučoval. ffdshow se dá stáhnout i z jiných serverů, kde neodmítají užívat správné pojmy a popisy software a kde tvrdohlavě i přes velmi dlouhé a velmi trpělivé vysvětlování naprosto odmítají Free Software a Open Source označovat jinak než "freeware".