Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Malý projekt: DLNA server pro 64-bit  (Přečteno 7992 krát)

GlidingFLY

  • Stálý člen
  • **
  • Příspěvků: 1202
Malý projekt: DLNA server pro 64-bit
« kdy: 05 Prosince 2010, 17:57:36 »
Poslední dobou jsem se zabýval DLNA serverem pro Ubuntu Intrepid Ibex a Lucid Lynx. Nabízím zde shrnutí všech svých zkušeností jako malý návod jak na to, pro ty co o to stojí. A protože všude používám pouze 64-bitové systémy, tak zde je ukázka pouze pro tuto alternativu co se týče vybavení. Pokud jde o 32-bitové systémy nechť to poslouží jako vodítko.

Problém první: Jaký použít software.
Dostupných je více. Vyzkoušel jsem Fuppes, uShare, MediaTomb a PS3 Media Server. Ihned po prvotních zkouškách jsem pochopil, že alespoň pro mne jednoznačně vyhrál PS3 Media Server. Ty ostatní jsem vyhodnotil jako zanedbané projekty. U PS3 je vidět bouřlivý vývoj, maximální podpora na domovském fóru a mnoho praktických zkušeností userů. Software považuji za nejdopracovanější i když ještě není dokončen. Z aktivity na fóru je znát veliký zájem o pokračování ve vývoji. Rozhodl jsem se tedy používat PS3 Media Server.

Problém druhý: FullHD verzus dostupný výkon serveru.
Ověřil jsem totiž, že i pokud máme k dispozici relativně silné srdce systému, nemusí to stačit na FullHD v perfektní kvalitě zobrazené na TV. Na bázi Intrepidu mi běží server s Intelem E7300 což je dvoujádro na 2,7GHz. Přesto to se standartní výbavou repozitářů nestačilo na FullHD. Nestačilo to ani se standartní výbavou Lucida na mém pracovním stroji v konfiguraci AMD viz níže. I když mám TV připojen pomocí LAN 100mbit. Samozřejmě, že šlo mi hlavně o zachování maximální možné kvality v souladu s možnostmi sítě 100mbit. Ani při značně zhoršených parametrech encódování jsem nedosáhl plynulé projekce bez koktání či občasného přerušování. Zkrátka standartní repozitářová výbava neumožňuje využití více jader CPU což při kvalitním FullHD je nezbytnou nutností.
Bylo nutno najít cestu, jak zapojit zbylá jádra CPU ať už je jich kolik možno. A tak jsem musel nastoupit cestu výroby vlastních balíčků audio/video playerů a encoderů se zapnutou podporou multivláknového zpracování streamů. Výsledkem je tento malý projekt, který vám nabízím k použití, anebo jako vodítko "kudy dudy paní Kelišová" vede cesta k úspěchu.

Všechny potřebné balíčky jsem zhromáždil na svém webu http://www.gfly.cz/ubuntu-lucid/ a jak již patrno jedná se o vybavení pro Lucid Lynx 64-bit.
FFMpeg je v poslední verzi (zdrojáky jsou ffmpeg-mt z git repozitáře) jako soubor balíčků nově vyrobených včetně dalších knihoven pro x264, Xavs a rtmp. Pozor, nejedná se o tzv. "extra" knihovny jako jsou dostupné v jiných repozitářích, ale jsou standartně pojmenované.
Mencoder a Mplayer je také ze zdroje git s podporou multithreading a závislý na ffmpeg. Mplayer nemá zabudovanou GUI neboť není nutná a to ani když jej používáte jako přehrávač, protože k němu máme v repozitářích jiné GUI, např. SMplayer či Gnome-player.
VLC player je v repozitáři Ubuntu ve staré nedoporučované verzi. Použil jsem poslední build ze stránek vývojářů VLC a pomohl jsem si převzatým debian/rules z PPA-VLC na lanchpadu, který jsem pouze přelomil, abych změnil závislosti z původních extra knihoven na mnou vyrobené knihovny normální jmenné konvence.
Pak jsem ještě přidal na web mediainfo v "původním znění" z PPA a mnou přelomený DeVeDe do posledního buildu zase kvůli závislostem. Tento nástroj používám velice často a považuji jej za užitečný.
No a pak ten nejdůležitější a tím jest vlastní PS3 Media Server jako archív, do kterého jsem přidal vlastní konfiguraci (PMS.conf) jako ověřenou zkušenost a pak konfiguráky rendererů Philips řady 7000 jako vyzkoušené a plně funkční.

Tak a nyní co s tím:
Nejdříve doporučuji vypořádat se s tzv. "-extra-" knihovnami. Je potřeba je (ty co souvisí s potřebným softwarem), byť třeba dočasně, odebrat včetně konfiguráků. Vono to sebou vezme i další, ale to nevadí, pak se to zpět přidá co bude potřeba. Tyto knihovny nepocházejí s domovského repozitáře Ubuntu, ale z připojených Medibuntu nebo PPA apod. Tedy odebrat FFMpeg, Mencoder, Mplayer a VLC, včetně jejich závislotí. Tento krok platí pro ty z vás, co tyto repozitáře mají připojené.
Pak bych doporučil jako nejlepší variantu, zřídit si lokální repozitář. Značně se tím zjednoduší instalace balíčků včetně závislostí.
Jak na to:
Perfektně popsáno zde http://ubuntu.wz.cz/hlavni_stranky/navody_balicky.html#lokalni_balicky
Nutno stáhnout dpkg-dev pokud již nemáte.
Nejlépe ve své domovské složce vytvoříte repozitář, já to mám takto:
/home/user/LocalDebs/debs
Nyní se musí editovat zdrojový soubor repozitáře /etc/apt/sources.list
a přidat do něj řádek:
deb file:///home/user/LocalDebs ./debs

Nyní si z mého webu stáhněte jediný soubor a to archiv DownPMS, který rozbalte do nějaké složky u sebe doma. Vybalí se script downpms.sh no a spusťe terminál a nasměrujte se v něm do složky kde sídlí a spusťte jej:
./downpms.sh
Tímto stáhnete vše potřebné, tedy nejenom vlastní server, ale i programy a jejich závislosti. Všechny takto stažené balíčky *.deb přesuňte do složky /home/user/LocalDebs/debs
V terminálu si nastavte cd /home/user/LocalDebs a spusťte
sudo dpkg-scanpackages debs /dev/null | gzip > ./Packages.gz
(všimněte si, mám to jinak než popsáno na stránkách co jsem uvedl výše)
Pokud vše dopadne dobře a v terminálu uvidíte seznam balíčků v lokálním repozitáři tak je potřeba zaktualizovat zdroje:
sudo apt-get update
No a máte zahrnut lokální repozitář do zdrojů včetně jeho balíčků. Nyní už stačí vybrat a instalovat ffmpeg, mencoder, mplayer a vlc pomocí synapticu.

A nyní nám zbývá PS3MS. Já jej i na serveru provozuji jako aplikaci, nikoliv jako službu. Takže mám ve svém domově složku Aplikace kde mám vybalen archív co jste stáhli pomocí scriptu, pms-linux-1.20.412.tar.gz
Ve složce serveru je již přednastavena konfigurace, kterou mám ověřenou u sebe. Pak je tam soubor PMS.sh, který je spouštěčem a já jej na základě vlastních zkušeností upravil změnou posledního řádku, kde se nastavují parametry JAVA. Přidal jsem startovací velikost paměti, zvětšil jsem maximální paměť a zvětšil stacky a to vše kvůli tomu, abych měl kompletní přehled o celém sdílení pomocí TV. Ověřil jsem totiž, že pokud se nechají parametry nezměněné, tak zvládá pouze malé archívy. Na to příjdete ostatně určitě sami.
Pak jsem tam přidal ještě script PMServer, kde si upravte cestu editací tak, jak to máte u sebe, aby jste mohli spouštět server odkudkoli.

Pro další informace o problematice navštivte stránky PS3mediaserveru a fóra:
http://ps3mediaserver.blogspot.com/
http://code.google.com/p/ps3mediaserver/
http://ps3mediaserver.org/forum/

Speciálně na fóru je mnoho velmi cenného.
Zkrátka řekl jsem si, že když už jsem si dal tu práci s tímto řešením DLNA serveru, tak ať ti co by měli zájem taky nemuseli absolvovat tu anabázi jako já. Je to dost komplexní problém a není snadno zvládnutelný.
Berte to prosím jako pouze jednu z možností, nikoho nenutím reorganizovat svůj systém kvůli mému řešení. To prosím mějte na paměti. Na mém webu jsou i další související knihovny pro další vývoj, pokud budete chtít, stáhněte si je zvlášť. Doufám, že jsem neudělal žádnou chybu, zkuste a uvidíte.

Ještě zbývá dodat co mám připojené jako další repozitáře s ohledem na závislosti, vůči kterým jsem to debianizoval:
Medibuntu: deb http://packages.medibuntu.org/ lucid free nonfree
Medibuntu: deb-src http://packages.medibuntu.org/ lucid free nonfree
Stable upstream releases of X.org components: deb http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu lucid
Stable upstream releases of X.org components: deb-src http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu lucid
Mplayer: deb http://ppa.launchpad.net/rvm/mplayer/ubuntu lucid
Mplayer: deb-src http://ppa.launchpad.net/rvm/mplayer/ubuntu lucid
MediaInfo: deb http://ppa.launchpad.net/shiki/mediainfo/ubuntu lucid
MediaInfo: deb-src http://ppa.launchpad.net/shiki/mediainfo/ubuntu lucid
Handbrake: deb http://ppa.launchpad.net/stebbins/handbrake-snapshots/ubuntu lucid
Handbrake: deb-src http://ppa.launchpad.net/stebbins/handbrake-snapshots/ubuntu lucid
» Linux Mint on mini-ITX boards «

xsigik

  • Návštěvník
  • Příspěvků: 67
Re: Malý projekt: DLNA server pro 64-bit
« Odpověď #1 kdy: 11 Února 2011, 16:12:10 »
Ahoj,
já používám MiniDLNA server a nestěžuju si, zvládá to v pohodě i 1080p a neni to vůbec na počítači poznat - obraz si zpracovává sama TV, jen si po síti tahá data. MiniDLNA je v C a pořád se na tom pracuje. S patchem to umí záložky a seekování + si to pamatuje kde se film vypl, náhledy videí. Je to jednoduchý a dostačující server.

GlidingFLY

  • Stálý člen
  • **
  • Příspěvků: 1202
Re: Malý projekt: DLNA server pro 64-bit
« Odpověď #2 kdy: 12 Února 2011, 17:34:27 »
Vono těch možností je více. Ovšem co všem chybí je prohledávání. Jako kdyby ani nepočítali, že 2TB storage může obsahovat pouze filmy a muziku. Systém bookmarků je pouze drobné vylepšení. A nesetkal jsem se s tím ani u produktů světových výrobců. Vyrobí docela obstojný mediální server s perfektním GUI, ale jeden musí klikat a klikat a klikat a klikat než se dokliká  :)
» Linux Mint on mini-ITX boards «

existpierre

  • Návštěvník
  • Příspěvků: 30
Re: Malý projekt: DLNA server pro 64-bit
« Odpověď #3 kdy: 04 Července 2011, 00:00:16 »
ahoj nech sa snazim akokolvek, neda sa  mi na pms pripojit.  Mam HTC sensation a chcel som to pouzit, aby som mohol videa z tohoto mobilu pozerat cez notebook.
Linux Mint Isadora
existpierre@jabbim.cz

 

Provoz zaštiťuje spolek OpenAlt.