DLNA

Co je DLNA ?

DLNA je standard pro živý přenos médii po lokální síti. Přenost datového toku je přes HTTP 1.0/1.1 a nad tím běží protokoly UPnP AV.

Proč používat DLNA?

Na tuto otázku zkusím odpovědět vlastním případem. Mám televizi Sony Bravia 32W5500, ta umí přehrávát MPEG-1, JPG a MP3 z flash disku. Když se na to tak dívám, nic moc. Ale také má zároveň síťový port a schopnost připojit se do sítí DLNA. Tato shcopnost mi umožní přehrávat jakákoliv média na TV, aniž bych notebook musel propojovat HDMI kabelem a mnohem víc. DLNA server, který popíšu jak nainstalovat, se nakonfiguruje tak, že se mu předají složky ze kterých může čerpat data a ty následně nabídne koncovému zařízení.

Takže pokud si budu chtít pustit film budu mít složku „Filmy“ a budou tam soubory : „adam.mkv“,“bogocz.iso“,“linux.avi“,“linux.sub“ tak i když TV neumí mkv, tak si DLNA na notebooku zjistí jaký stream cíl podporuje a překóduje jej do něj. Stejné to bude s ISO(obraz DVD), při výběru bogocz.iso mi DLNA na notebooku převede menu i film a posílá přímo do TV. Pokud si chci spustit AVI nebo MKV v cizím jazyce tak můžu, transkódování přiloží i titulky.

Pokud ovšem chci spustit JPG, MP3 nebo ACC, tak DLNA server nic nepřevádí a posílá přímý bitový tok zdroje.

Instalace

Následující script jsem napsal tak, aby se vždy instalovala poslední verze.

Script

PROJ=ps3ms
echo "Instalační script PS3 Media Serveru"
echo "Kolik jader ma tvuj procesor ?"
read CORES
let cores++
mkdir $HOME/$PROJ
cd $HOME/$PROJ

sudo apt-get build-dep mplayer
sudo apt-get install ubuntu-restricted-extras checkinstall ant mplayer mencoder ffmpeg subversion build-essential
sleep 3
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

if [ -d mplayer ]
then
        cd mplayer
        echo "Spouštím konfiguraci a kompilaci"
        CFLAGS="-O2 -fomit-frame-pointer" ./configure --confdir=/etc/mplayer
        make -j $CORES > /dev/null 2> build_errors
        sudo checkinstall -D --install=yes --fstrans=no --pakdir "$HOME/$PROJ" --pkgname mplayer --backup=no --deldoc=yes --deldesc=yes --delspec=yes --default --pkgversion "3:1.0~svn-`grep "#define VERSION" version.h | cut -d"-" -f2`"
        cd ..
else
        echo "Ukončuji skript, zdrojové kódy jsou nekompletní"
        exit 1
fi

echo "Po spuštění stránky, stáhněte  Java JDK 6 .., po stažení vypnout firefox, stažený balík přesunout do složky projektu ($HOME/$PROJ) a zmáčknout Enter"
sleep 10
firefox http://java.sun.com/javase/downloads/widget/jdk6.jsp
read enter

if [ -f $(ls | grep jdk-6) ]
then
        sh $(ls | grep jdk-6)
        JAVA_HOME=$HOME/$PROJ/$(ls | grep jdk1.6)/jre
        export JAVA_HOME
        svn checkout http://ps3mediaserver.googlecode.com/svn/trunk/ ps3mediaserver-read-only

        cd ps3mediaserver-read-only/ps3mediaserver
        ant
        chmod a+x PMS.sh
        chmod a+x linux/tsMuxeR
        cd ../..

        cat > run_server << END
#!/bin/sh
cd $HOME/$PROJ/ps3mediaserver
./PMS.sh
END
        chmod a+x run_server
else
        echo "Instalátor JDK 6 nenalezen, přeskakuji instalaci PS3media serveru"
        exit 1
fi

exit 0

Spuštění

Script stačí spustit a počkat až zkončí instalační proces, jen před instalcí javy vyskočí firefox, tak prosím následujte pokyny.