Hlavní navigace

VLC 2.0: dekódování na GPU mu ještě moc nejde

24. 2. 2012
Doba čtení: 5 minut

Sdílet

Před šesti dny vyšla nová verze populárního multimediálního přehrávače VLC s kulatým označením 2.0. Přinesla opravdu mnoho novinek, ale také nějaké ty chyby. Bez ohledu na ohlasy uživatelů byl vývoj veden vesměs k lepšímu, i když dekódování na GPU není dokonalé a není to jediná nerovnost, co potřebuje zabrousit.

VLC není přehrávač, který by stavěl na vzhledu, ale spíše takový švýcarský nůž, který lze rozdělat mnoha způsoby. Jeho hlavní předností je integrovaná podpora pro téměř každý myslitelný formát a kodek. Poradí si s videem, obrázky, hudbou, DVB streamem a v nové verzi mu nedělají problémy ani profesionální kodeky. Zároveň ale zůstal jednoduchý a i když verzi 2.0 utvářelo 160 lidí v 7000 úpravách, po prvním spuštění budete jen marně hledat, co se objevilo nového. Je tedy zřejmé, že většina změn zůstala pod kapotou. Tady jsou ty nejzajímavější:

  • Nové video výstupy pro Windows 7, Android, iOS a OS/2
  • Multi-threadové dekódování pro H.264, MPEG-4/Xvid a WebM
  • Dekódování na GPU
  • Obraz v obraze s podporu akcelerace na GPU
  • Dekódování na CrystalHD a Android OpenMAX
  • Podpora nových 10bit a HD kodeků
  • Experimentální podpora pro Blu-ray disky
  • Nové audio výstupy pro iOS, Android a OS/2
  • Podpora streamovacích protokolů HLS a DASH
  • Vykreslování titulků mimo video
  • Změna licence knihoven libVLC, libVLCcore a libcompat z GPL na LGPLv2.1+
  • Nové JSON requesty ve webovém rozhraní (ovládání z telefonu apod.)
  • Přepsaný plugin pro webové prohlížeče

Výpis samozřejmě není kompletní, některé další věci najdete v oznámení o vydání, možná tam bude něco, co se vám hodí a pokud chcete jít úplně do hloubky, tak pomůže git repositář, respektive jeho historie.

Instalujeme

Instalace nové verze VLC není nějak komplikovaná, pokud máte distribuci jako třeba Ubuntu, pro které připravil balíčky Nate Muench. Pak stačí spustit:

$ sudo add-apt-repository ppa:n-muench/vlc
$ sudo apt-get update
$ sudo apt-get upgrade 

A je hotovo. U ostatních distribucí to už záleží na jejich zvyklostech. Například Archlinux už aktualizaci dostal, Debian má nové VLC v unstable a OpenSUSE také nezůstalo pozadu. O dalších distribucích bohužel nemám přehled, ale je možné, že budete muset sáhnout ke zdrojovým kódům a kompilovat.

Dekódování na grafické kartě

Na první pohled je poznat, že se VLC trochu změnilo. Změny v rozhraní jsou ale spíše kosmetického rázu. Jednou novou věcí, které jsem si na první pohled všiml, je malá ikonka pro přepínání způsobu zobrazení seznamu souborů, ale jinak je VLC stejně dobré či špatné, jako bývalo.

Osobně jsem se v novém VLC těšil na tři věci, a to dekódování na GPU, vylepšené dekódování ve více vláknech a nakonec přepracované vykreslování titulků. Jde o vlastnosti, které sice nepraští hned do očí, ale dokáží usnadnit práci s přehrávačem. Všechny tři se do VLC dostaly, ale tak jak jsem očekával, mě potěšilo jen vykreslování titulků. Hardwarové dekódování se sice podle výpisu VLC do konzole použije, ale zatížení CPU je stejné nebo větší než bez něj.

Videa se přehrávají plynule a zatížení CPU se při přehrávání 720p HD videa drží na obou jádrech kolem 20 %. U 1080p videí je výsledek horší a zatížení je 70 % na obou jádrech. Při vypnutí hardwarového dekódování se zatížení sníží přibližně na 50 a 50 %, což je i tak dobrý výsledek například proti tomuto uživateli. Vzhledem k tomu, že si na problémy s dekódováním na GPU stěžuje více uživatelů, je možné, že jde o chybu, která bude snad v další verzi opravena.

Dalším milým překvapením je v nové verzi vylepšené dekódování ve více threadech. Sliboval jsem si od toho, že by mohla plynule fungovat 720p videa na stařičkém Atomu N270, ale vzhledem k problémům popsaným výše si nemyslím, že tahle verze bude pro mého Atoma zrovna to pravé. Praktický test pak ukázal, že mplayer2 si se stejným videem na Atomu poradí mnohem lépe, i když ne stoprocentně. U jiných procesorů bude situace opačná a tam kde se vám dříve sekalo některé z HD videí, je možné, že nyní pojede bez problémů. Počet threadů pro dekódování si VLC určuje automaticky, pokud mu nějakou hodnotu explicitně nevnutíte v nastavení.

Dekódování videa nemusí být řešeno jen na grafické kartě, ale existují i karty, které lze připojit na PCI Express sběrnice a dekódování pak provádějí ony. Nejznámějším zástupcem je Broadcom CrystalHD. Jde o malou kartu do mini-PCI Express, kterou můžete vybavit třeba svůj notebook a přes adaptér i desktop. A právě pro CrystalHD má nyní VLC podporu.

Vykreslování titulků mohlo být v jedné z předchozích verzí VLC noční můrou. Titulky se totiž kreslily přímo do videa, a tak je nebylo možné posunout do černého pruhu, a nebo v některých videích nebyly vidět vůbec. V nové verzi se titulky kreslí nezávisle na videu, a tak drží svou velikost, barvu, ostrost a i když jde do tuhého u nějakého podivného videa, pořád se zobrazují.

Streaming

Pokud holdujete streamovanému obsahu, určitě vás zaujme podpora dvou nových protokolů HLS a DASH. HLS, celým názvem HTTP Live Streaming, je z dílny Applu a značí se tím, že proleze jakýmkoli firewallem nebo proxy serverem, který propustí HTTP spojení. Uživatel si může během přehrávání vybrat kvalitu streamu, která bude vyhovovat možnostem jeho spojení s druhou stranou. VLC zvládne pomocí HLS video přijímat i streamovat.

DASH, neboli Dynamic Adaptive Streaming over HTTP funguje také přes HTTP, také proleze všude možně, ale proti HLS pochází od skupiny MPEG (Moving Picture Experts Group). Podle Wikipedia má DASH své kořeny i v dalších technologiích jako HTTP Dynamic Streaming od Adobe, Microsoft Smooth Streaming a nemůže chybět ani zmíněny HLS.

Změna licence libVLC a podpora mobilních platforem

I když to na první pohled není moc znát, je změna licence knihoven libVLC, libVLCcore a libcompat na LGPLv2.1+ velmi důležitá a ocení ji především vývojáři různých multimediálních programů. Ti teď mohou vzít to všechno dobré, co se ve VLC skrývá a připojit to do svých (i uzavřených) programů. Pro vývojáře VLC se zas tolik nezměnilo, ale pokud o tyto knihovny projeví zájem nějaká firma a postaví na nich svůj projekt, mohlo by to do VLC přidat tolik potřebnou vývojářskou sílu. Do této doby mohly tyto knihovny používat jen GPL programy, což může být limitující i pro jednotlivce, natož pro firmy.

root_podpora

Pozornost byla věnována i mobilním platformám, kde VLC dostalo podporu pro OpenMAX (Open Media Acceleration), což je multiplatformní rozhraní, které najdeme třeba v Androidu 4.0 ICS a umožňuje aplikacím přistupovat k multimediálnímu hardwaru nezávisle na jeho výrobci nebo typu. Kromě toho byly přidány video a audio výstupy pro operační systémy iOS, tak Android, což opět udělá portování VLC na mobily o něco snazší.

Shrnutí

VLC 2.0 se možná mělo ještě nějaký ten týden odlaďovat, ale netroufl bych si tvrdit, že jde o nepovedené vydání nebo dokonce krok zpět. Nová verze toho přinesla hodně a v obrovském rozsahu, což se nedá schovat za jednotný úspěch či neúspěch. Dekódování na GPU bude ještě potřeba trochu vyladit, ale u VLC je to jen otázkou času.

Byl pro vás článek přínosný?

Autor článku

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ů.