Včera večer jsem si chtěl konečně doma s rodinou vyzkoušet vlastní multimediální centrum na Smart TV. Nedávno jsem si koupil Jellyfin serverové řešení s otevřeným zdrojovým kódem, které umožňuje získat webové rozhraní podobné Netflixu a přehrávat na něm seriály a filmy. Zvláštností je, že server může běžet i na mém notebooku s Windows a jednotlivé epizody můžete pohodlně sledovat přes rozhraní. Jednotlivé videosoubory můžete samozřejmě vyhledávat i ve správci souborů systému Windows, ale rozhraní podobné Netflixu je jaksi pohodlnější.
Ale není tak snadné získat tento zážitek ze streamování z vlastního notebooku a i pro mě jako IT specialistu je otázkou, proč musí být tak obtížné mít možnost streamovat.
Problém 1: Brána firewall
Firewall je v zásadě velmi důležitý, protože zabraňuje tomu, aby kdokoli jednoduše přistupoval k serveru/počítači z internetu. Můžete si to představit takto: Firewall je jako dveře, ale i když máte klíč, kterým se dostanete dovnitř, někdo v domě ho musí nejprve uvolnit, abyste mohli dveře tímto klíčem otevřít. Nevím, jestli toto přirovnání dobře sedí, ale lepší mě momentálně nenapadá.
Brána firewall je ochranná stěna a neměli byste ji vypínat. Jak ale můžete streamovat film ze serveru do klienta?
Problém 2: Uvolnění portu
Veškerý software, který obsahuje server, běží na localhostu, což je místní počítač. V závislosti na serveru/softwaru se používá jiný port. Například Jellyfin používá ve výchozím nastavení port 8096. Pokud je server spuštěn, můžete k multimediálnímu centru přistupovat v prohlížeči přes localhost:8096 a streamovat lokálně v prohlížeči. To funguje bez jakýchkoli problémů.
Jak ale můžete k serveru přistupovat zvenčí?
Zde se objevuje důležitý pohled, který je třeba pochopit: Klient nejprve žádá server, nikoliv server dodává klientovi.
To je důležité pochopit, protože takto musí být brána firewall nastavena. Nastavení brány firewall se týká "příchozích spojení", tj. když chce klient zvenčí vstoupit do oblasti chráněné bránou firewall, aby se tam dostal ke službě/serveru.
V nastavení brány firewall vyberte možnost "Port" a jako typ připojení zvolte "TCP". Poté zadejte jako port 8096 a v dalším kroku můžete tuto sdílenou složku pojmenovat a popsat. Pomocí názvu "Jellyfin" můžete později rychleji zjistit, k čemu toto sdílení sloužilo.
Není to tak těžké, že? Omyl, trvalo mi 30 minut, než jsem zjistil, kde lze tuto funkci nastavit, protože jsem ji za posledních 10 let nikdy nepotřeboval, a to ani ve Windows XP, Windows Vista, Windows 7 ani Windows 10.
Všechno je jednou poprvé.
Ale ptám se sám sebe, jestli to musí být tak těžké? Proč není možné povolit pravidlo filtrování příchozích spojení ve firewallu přímo přes Jellyfin? Nějaké API rozhraní k systému, které ani laik nemusí hledat? Bohužel neexistuje.
Nyní jsem mohl alespoň streamovat v rámci své domácí sítě s tím, co jsem si nyní uvědomil. Zatím však není možné streamovat do internetu, což je způsobeno strukturou vrstev.
Zde je jednoduché vysvětlení:
- localhost:8096 - je místní systém
- 127.0.0.1:8096 - je stejný jako localhost, ale v závislosti na aplikaci se liší, co máte zadat pro přístup k němu.
- 192.168.178.XX:8096 - je IP adresa směrovače, která by měla být u všech podobná, jedná se o domácí síť. Čísla na konci, která jsem označil XX, se přidělují v závislosti na počtu klientů v domácí síti. Poté, co má firewall na počítači oprávnění povolit příchozí spojení na portu 8096, lze nyní přistupovat k serveru s touto IP adresou a portem, například 192.168.178.XX:8096 v rámci sítě WLAN, funguje to ze smartphonu přes vlastní aplikaci Jellyfin v obchodě Google Play (pro Apple/iOS zatím nevím) a také na Smart TV (zde nastává další problém).
- XX.XX.XX.XX - veřejná IP adresa je dostupná všem uživatelům internetu a může být zobrazena na různých webových stránkách. Aby bylo možné streamovat přes tuto veřejnou IP, musí být směrovači WLAN, který připojuje klienty v domácí síti k internetu, přidělen samostatný uvolněný port, aby bylo možné k serveru přistupovat zvenčí pomocí portu. Doma jsem to již vyzkoušel a skutečně to fungovalo dobře, takže jsem mohl přistupovat ke svému multimediálnímu centru pomocí smartphonu přes mobilní síť pomocí své veřejné IP a portu, který jsem měl povolený na svém směrovači WLAN, ale byl to pouze test a nyní je opět uzavřen. Proto se tímto bodem nebudu dále zabývat.
Problém 3: Smart TV
Velmi mnoho, ne-li většina (že?) v Německu má chytrou televizi, moje rodina si ji pořídila teprve před několika měsíci poté, co plazmová televize, která vydržela a fungovala dobrých 20 let, dálkový ovladač od satelitního přijímače už prostě nebyl použitelný a chytrá televize už to všechno nepotřebovala, stejně jako to, že má v sobě Netflix a spol., navíc obraz ve full HD 1080p, stará plazmová televize měla "jen" HD 720p, ale v běžném životě si člověk stejně rozdílu skoro nevšiml, a teď už je na novou chytrou televizi zvyklý.
Cílem byl Smart TV, protože když už jsem měl přístup k multimediálnímu centru v rámci sítě, myslel jsem si, že nebude tak těžké nainstalovat Jellyfin do Smart TV. Mýlil jsem se. Jedná se o televizor Samsung Smart TV, který má různé aplikace, dokonce i hry, ale žádný skutečný obchod s aplikacemi jako Android, kde byste si mohli jednoduše nainstalovat aplikaci podle svého výběru. Takže vyhledávání nepomohlo.
Poté jsem se snažil zadat ji pracně ve webovém prohlížeči pomocí dálkového ovladače, což není příjemné, pokud nemáte dálkový ovladač s hlasovou funkcí. Webový prohlížeč se alespoň pokusil načíst přihlašovací obrazovku Jellyfin, ale nedokázal ji zpracovat a nemohl jsem se přes ni dostat ani do multimediálního centra.
Jak chcete přenášet obsah do televizoru bezdrátově?
Problém 4: DLNA
Jedna z existujících funkcí se nazývá DLNAJednoduše řečeno, umožňuje sdílet obsah na různých zařízeních, pokud mají správně implementovaný standard DLNA. Hledal jsem tedy DLNA ve webovém rozhraní administrace serveru Jellyfin a rychle jsem našel, co jsem hledal: je třeba nainstalovat doplněk od Jellyfinu a restartovat server. No, nechápu, proč by tak důležitá funkce měla být outsourcována jako plugin, ale řečeno a hotovo, plugin nainstalován, server restartován.
Nyní jsem v pravém horním rohu uživatelského rozhraní viděl ikonu sdílení DLNA, po jejímž kliknutí se zobrazily všechny přístroje, na které lze obsah sdílet, včetně Smart TV.
Problém 5: Marketing různých názvů
Vybral jsem tedy Smart TV a byl plný očekávání, že to teď bude fungovat, že můj server Jellyfin poběží a já budu moci sledovat film na televizoru. Bohužel se to nepodařilo, protože Jellyfin sice hlásil, že spojení bylo navázáno a že ho mohu pouze znovu odpojit, ale na Smart TV se nic nezobrazilo.
Poté jsem vyhledal vstupní zdroj, abych našel signál, což je toto tlačítko, kde si můžete vybrat mezi TV a HDMI atd. Našel jsem funkci "Zrcadlení obrazovky". Tam jsem našel funkci "Screen Mirroring", a tady se dostáváme k dalšímu bodu, marketingu, protože DLNA asi zní pro normálního spotřebitele příliš těžkopádně, musí to být něco moderního a snadno pochopitelného, takže Screen Mirroring se zdá být tím, ale, je Screen Mirroring to samé jako DLNA?
Nebo je to jen zjednodušená implementace? Není DLNA plně podporováno? Vrtá mi to hlavou a přemýšlím o možnosti sdílení obrazovky pro mobilní zařízení na smartphonu Xiaomi, možná to funguje?
Přejdu do nastavení a přejdu na položku nabídky "Připojení a sdílení" a daleko dole v oblasti "Ostatní" vidím "Zobrazení WLAN" s popisem "Připojit se bezdrátově k obrazovce". Mohu jen kroutit hlavou, každá firma to popisuje jinak, jak má zákazník, který to chce používat, vědět, zda je to vůbec kompatibilní?
Problém 6: Displej zůstává zapnutý
Když se mi podařilo připojit obrazovku smartphonu k režimu zrcadlení obrazovky Smart TV prostřednictvím displeje WLAN, mohl jsem konečně sledovat svůj film prostřednictvím aplikace Jellyfin na svém smartphonu, který je připojen k serveru v mém notebooku. Bohužel zrcadlení obrazovky funguje pouze při zapnuté obrazovce, přestože přehrávač přehrává film v popředí.
Takže jsem musel nechat smartphone na nabíjecím kabelu, který byl paradoxně vedle televize, a musel jsem vstát, abych film pozastavil nebo obnovil přehrávání.
Shrnutí: Streamování s překážkami
Abych mohl bezdrátově streamovat film z notebooku do Smart TV, potřebuji sdílení portů v bráně Windows Firewall, pak potřebuji povolit DLNA pro streamování v rámci sítě, pak potřebuji aplikaci Jellyfin ve smartphonu pro přístup k obsahu serveru a potřebuji sdílet obrazovku smartphonu s Smart TV, abych mohl sledovat film, když je obrazovka smartphonu stále zapnutá.
Ano, zapojte a modlete se. Je neuvěřitelné, že v roce 2024 máme takové problémy správně aplikovat standard, který prostě funguje, proč nemůžu bez problémů streamovat z notebooku do televize? Nebo proč si nemůžu na Smart TV nainstalovat vlastní aplikace?
Proč je jednodušší a časově méně náročné jednoduše připojit notebook kabelem HDMI přímo k televizoru a pak sledovat film? Kromě obou případů se mi stejně nikdy nepodařilo ovládat obsah Jellyfinu pomocí dálkového ovladače televizoru, takže ať už jsem film přehrával přes chytrý telefon nebo připojil notebook přes HDMI, vždy jsem musel stejně vstát.
Proč? Proč nemáme v roce 2024 funkční a spolehlivá řešení, která by nekomplikovala streamování filmu z notebooku do chytré televize?
Zapomněl jsem na něco? Existuje už jiná norma, o které nevím?