Нека вземем да изясним нещата, че голям спор се заформи.
1) Какво е кодек - ами съвкупност от кодер и декодер за определен вид кодиране - DivX. Xvid, MP3 и т.н. Кодерът служи за да се "компресира" видео, аудио и т.н., а декодерър за да се "декомпресира" един вид и да може да се гледа и слуша. Тука е мястото да се уточни, че не е задължително, с който кодер си "компресирал" с него да "декомпресираш" - примерно може да кодираш с DivX, а да "гледаш" с XviD. То е същото като да си зипнеш един файл и после да го разпънеш с рар примерно.
2) Как се ползва кодекът? Ами това, което един "нормален" уиндоуски плеър ползва е
. DirectShow ползва филтри. Какво представлява филтърът - ами най-общо казано декодер. Какво става когато се "инсталира" един кодек - ами отива се и се пише в реджистрито, че еди кой си филтър (от съответния кодек) може да се оправи с еди кой си формат. Е да де ама т.к. напоследък кодеците или по точно декодерите почнаха освен собствения си формат да декомпресират и чуждите (нещо нормално ако се замисли човек - в крайна сметка с 7зип примерно може да разархивираш - зип, рар и т.н.) и в реджистрито настава пълна каша. Примерно слагаш си DivX и след него BajPetkoCodec дето вземе, че и той се регистрира, че може да се оправя с DivX-ове. Е DirectShow като тръгне да търси филтър из реджистрито с какво да декодне DivX може да вземе филтъра на DivX кодека може тък този на BajPetkoCodec да вземе. Ей затова човек като сложи един Ultra Mega Full Final Extremе и т.н. кодекпак работата се омазва здраво.
3) Какъв е подхода при MPlayer, който никога не е бил MPF - това е някакво фронтендче. Там не се ползва DirectShow (всичко което прави DirectShow е направено в самия MPlayer - разбирай разделяне на потоците аудио, видео, субтитри и т.н., избор на декодер и прочие), т.е. не се ползват филтри регистрирани в реджистрито. MPlayer ползва libavcodec от ffmpeg (същото дето се ползва във ffdshow). Този кодек е в състояние да декомпресира почти всичко. Този кодек е част, статично линкнат в MPlayer. Затова се казва, че MPlayer не ползва кодеци в смисъла на DirectShow филтри.
4) Какво представлява "прочутата" директория codecs на MPlayer? Ами това се декодери за формати, който все още не се поддържат от libavcodec. Ако ги погледнеш ще видиш, че освен новите версии на RealVideo останалото са някакви екзотики. С други думи тези неща изобщо не ти трябват. Идеята е всички тези декодери да се вкарат някой ден в libavcodec. Ей тука може да погледнеш кое нещо с какво се декодира - . В codecs директорията има разни dll, ax, acm и т.н. файлове. Тези файлове са взети от съответните кодеци и са наблъскани в тази директория. Когато трябва да се декодира някой файл с такъв екзотичен формат Mplayer-а използва съответния dll или каквото там е за да декодира. Забележи той използва точно определен dll, а не както прави DirectShow да ходи да рови по реджистрито за филтри и ако има няколко да се чуди кой да избере.
5) Сега за инсталациите няколко думи - това, което се прави при инсталация на VLC е едно разархивиране + евентуално асоцииране на разширения, слагане в контекстно меню и т.н. Но при тази инсталация не се регистрират DirectShow филтри. Има разни уиндоуски плеъри дето докато се инсталират и за да можеш да гледаш вземат, че ти сложат и някой филтър така да има. Редактирано от Tweeg на 05.02.09 09:28.
|