Home.

Technik-Blog

Willkommen auf meinem
Notiz - Blog
Blog

Kmoser's Tech-Blog

1-3 von 4
Samstag
17
Januar 2015

Ubuntu 14.04 - DLNA - Plex

Bin zwischenzeilich zu einer anderen Lösung gekommen mit der ich jetzt sehr zufrieden bin. Einfach einen Raspberry Pi nehmen und Kodi installieren. Dann reichen auch normale Dateifreigaben per NFS oder SMB um die eigene Mediensammlung abzuspielen.

Bei meiner Recherche nach DLNA Servern bin ich auf ein weiteres Paket gestoßen, dem ich auch einen Versuch zugestehen möchte. Der Plex Media Server ist mehr als nur ein DLNA Server. Er ist leider nicht in den Paketquellen von Ubuntu zu finden, aber es gibt ein .deb Paket für Ubuntu als Download. Außerdem ist eine umfassende Dokumentation vorhanden.

Also Paket herunterladen:

wget http://downloads.plexapp.com/plex-media-server/0.9.9.7.429-f80a8d6/plexmediaserver_0.9.9.7.429-f80a8d6_amd64.deb

Plex benötigt ein paar Pakete die installiert sein müssen

sudo apt-get install avahi-daemon avahi-utils libavahi-core7 libdaemon0 mime-support  ureadahead

und installieren:

sudo dpkg -i plexmediaserver_0.9.9.7.429-f80a8d6_amd64.deb

Ist die Installation abgeschlossen kann man sich an der wirklich sehr schicken Weboberfläche unter <serverip>/web anmelden. Dort registriert man sich für Plex und kann einige weitere Einstellungen treffen und erste Medien Bibliotheken anlegen.

Ubuntu 14.04 - DLNA - Plex

DLNA (Digital Living Network Alliance) ist ein Standard für Geräte in der digitalen Unterhaltungselektronik, mit dem es möglich ist unterschiedliche Geräte mit Multimedia-Inhalten zu versorgen.

Unter Ubuntu gibt es eine ganze Reihe freier und kommerzieller DLNA Server. In diesem Beitrag werde ich den teil-kommerziellen DLNA Server Plex testen. Das Paket ist nicht in den offiziellen Quellen verfügbar und der Lizenztyp wird als Freemium angegeben. Das bedeutet dass die Basisfunktionen kostenlos genutzt werden können nur Erweiterungen sind kostenpflichtig.

Für den Test wurde die Version 0.9.12.4.1192-9a47d21_amd62 des plexmediaserver verwendet.

Eine gute Anleitung gibt es wie immer unter ubuntuusers.de.

Installation

Das Paket ist nicht in den Repositories vorhanden und muss von der Website heruntergeladen werden.

Damit der Server richtig läuft schlägt ubuntuusers.de vor noch die Pakete avahi-daemon und avahi-utils zu installieren.

sudo apt-get install avahi-daemon avahi-utils

Auf der Website kann man unter Downloads wählen ob man Plex auf einer NAS oder einem Computer installieren möchte. Für die Installation unter Ubuntu wählen wir Computer aus. Im folgenden Dialog wählen wir unter Ubuntu die für unser System zutreffende Architektur aus (32/64Bit).

Das heruntergeladene Paket kann man jetzt entweder über den Software-Center oder über die Kommandozeile installieren:

dpgk -i plexmediaserver_0.9.12.4.1192-9a47d21_amd64.deb

Plex installiert dabei gleich ein Update-Repository (/etc/apt/sources.list.d/plexmediaserver.list) um das Paket auf dem aktuellsten Stand zu halten.

Konfiguration

Damit Plex auf die Dateien der Bibliothek zugreifen kann muss für den Benutzer plex, unter dem der Server läuft, eine Zugriffsberechtigung für diese eingerichtet werden.

Dies könnte man z.B. machen indem man den Owner der Dateien auf plex ändert. Alternativ kann man den Benutzer plex auch in eine Gruppe aufnehmen, die allen Dateien zugewiesen ist.

Die Einstellungen des Mediaservers sind in der Datei

/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Preferences.xml

gespeichert. Eine bequemere Möglichkeit als die Datei zu editieren ist die Einstellungen über die Web-Oberfläche vorzunehmen.

Ein paar Einstellungen lassen sich nicht über die Web-Oberfläche setzen, siehe dazu Advanced Server Settings. Um den Server in Betrieb zu nehmen sind diese Einstellungen jedoch nicht relevant.

Webinterface

Das Webinterface ist unter http://<plex-Server>:32400/web zu erreichen. Wobei <plex-server> durch die IP oder den Hostnamen des Rechners ersetzt werden muss auf dem der plexmediaserver läuft.

Am Webinterface merkt man direkt dass es sich um ein kommerzielles Produkt handelt. Hier sind offensichtlich viele Stunden an Entwicklungsarbeit investiert worden.. Die meisten Einstellungen sowie die Medien-Bibliotheken können hier eingerichtet werden.

 

 

Plex hinter Apache Proxy

Steht der Plex Server ggf. hinter einer Firewall und möchte nicht noch einen weiteren Port für den Zugriff auf das Webinterface des Plex Media Servers öffnen, so kann man auch den Apache so konfigurieren, dass er als Proxy fugiert und die Anfragen an den Plex Media Server durchreicht.

Dazu muss das Apache Modul mod_proxy und mod_proxy_http installiert und aktiviert werden.

sudo a2enmod proxy proxy_http

Jetzt kann man die Proxyweiterleitungen definieren. Dazu legt man die Datei /etc/apache2/conf-available/plex.conf an und fügt folgenden Inhalt ein:

<IfModule mod_proxy.c>
        <Location /web>
                ProxyPass http://localhost:32400/web
                ProxyPassReverse http://localhost:32400/web
        </Location>
        <Location /system>
                ProxyPass http://localhost:32400/system
                ProxyPassReverse http://localhost:32400/system
        </Location>
        <Location /servers>
                ProxyPass http://localhost:32400/servers
                ProxyPassReverse http://localhost:32400/servers
        </Location>
        <Location /accounts>
                ProxyPass http://localhost:32400/accounts
                ProxyPassReverse http://localhost:32400/accounts
        </Location>
        <Location /myplex>
                ProxyPass http://localhost:32400/myplex
                ProxyPassReverse http://localhost:32400/myplex
        </Location>
        <Location /photo>
                ProxyPass http://localhost:32400/photo
                ProxyPassReverse http://localhost:32400/photo
        </Location>
        <Location /clients>
                ProxyPass http://localhost:32400/clients
                ProxyPassReverse http://localhost:32400/clients
        </Location>
</IfModule>

Als nächstes muss diese Konfiguration aktiviert werden:

sudo a2enconf plex

Damit der Apache jetzt nicht als Open Proxy läuft, sollte man, sofern nicht anders gewünscht, die Datei /etc/apache2/conf-available/proxy_default.conf mit folgenden Inhalt anlegen:

<IfModule mod_proxy.c>
  ProxyRequests Off
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>
</IfModule>

Wenn der Parameter ProxyRequests Off nicht eingetragen wird läuft der unter mod_proxy_html liegende mod_proxy als Open Proxy was ein Sicherheitsproblem darstellt.

Diese Konfiguration noch aktivieren mit:

a2enconf proxy_default

Und anschließend der Apache neu gestartet werden:

sudo service apache2 restart

Jetzt ist der Plex Media Server sowohl mit als auch ohne SSL Verschlüsselung unter mein.server.de/plex erreichbar.

Will man sicherstellen, dass man nicht doch einen Open Proxy gebastelt hat, kann man sich per telnet auf den Apache verbinden und versuchen Inhalte einer andere Website zu laden:

telnet www.mydomain.com 80

Steht die Verbindung, gibt man folgendes in das Terminal ein

GET http://www.google.de/ HTTP/1.1

Der Server darf jetzt nicht die Seite von Google ausgeben, sondern muss eine Fehlermeldung oder die eigene Website ausgeben.

HTTP/1.1 400 Bad Request
Date: Mon, 20 Jul 2015 09:58:38 GMT
Server: Apache/2.2.12 (Linux/SUSE)
Content-Length: 309
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.2.12 (Linux/SUSE) Server at www.yahoo.com Port 80</address>
</body></html>
Connection closed by foreign host.

Wird die Seite von Google ausgegeben ist noch etwas an der Konfiguration falsch.

In den Einstellungen von Plex muss jetzt noch unter Server > Remote Access unter Port manuell eingeben den Port auf z.B. 443 einstellen, wenn man eine verschlüsselte Verbindung möchte oder 80 falls man dies nicht wünscht. Ist dieses Eingabefeld nicht vorhanden oben rechts auf Erweiterte Anzeige klicken.

Sonntag
11
Januar 2015
Klaus Moser
Klaus Moser

Ubuntu 14.04 - DLNA - miniDLNA

DLNA (Digital Living Network Alliance) ist ein Standard für Geräte in der digitalen Unterhaltungselektronik, mit dem es möglich ist unterschiedliche Geräte mit Multimedia-Inhalten zu versorgen.

Unter Ubuntu gibt es eine ganze Reihe freier und kommerzieller DLNA Server. In diesem Beitrag werde ich den DLNA Server ReadyMedia / miniDLNA testen. Dieser Server wird wohl noch aktiv weiterentwickelt (ReadyMedia bei sourceforge,net)

Eine gute Anleitung gibt es wie immer unter ubuntuusers.de.

Das Paket miniDLNA wurde ursprünglich von einem Netgear Mitarbeiter für die ReadyNAS Serie entwickelt.

Installation

Bei Ubuntu 14.04 ist das Paket minidlna nicht in den offiziellen Quellen zu finden. Das liegt daran dass das Paket bis zum Release von Ubuntu 14.04 nicht auf den aktuellen Stand gebracht wurde und damit aus den offiziellen Quellen entfernt wurde, da dieses so nicht mehr in der Systemumgebung von Ubuntu 14.04 gelaufen wäre. Man hat jetzt zwei Möglichkeiten, entweder man aktiviert die Backports oder man installiert minidlna über ein fremdes Repository.

Für die Installation über ein externes Repository kann man z.B. dieses hier verwenden:

sudo apt-add-repository ppa:djart/minidlna

Die Backports aktiviert man unter XUbuntu über Start->Einstellungen->Software & Aktualisierungen und aktiviert auf dem Reiter Aktualisierungen das Häkchen Nicht unterstütze Aktualisierungen (trusty-backports).

sudo apt-get update
sudo apt-get install minidlna

Konfiguration

Die Konfiguration erfolgt über die Datei /etc/minidlna.conf.

sudo nano /etc/minidlna.conf

Standardmäßig läuft minidlna unter dem Benutzer minidlna und muss in der Konfiguration nicht extra konfiguriert werden.

Das wichtigste ist den Pfad zu den Verzeichnissen mit den Mediendateien festzulegen.

# Path to the directory you want scanned for media files.
#
# This option can be specified more than once if you want multiple
# directories scanned.
#
# If you want to restrict a media_dir to a specific content type, you
# can prepend the directory name with a letter representing the
# type (A, P or V), followed by a comma, as so:
#   * "A" for audio    (eg. media_dir=A,/var/lib/minidlna/music)
#   * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
#   * "V" for video    (eg. media_dir=V,/var/lib/minidlna/videos)
media_dir=A,/home/media/Audio
media_dir=P,/home/media/Bilder
media_dir=V,/home/media/Video

Was man noch setzen kann ist der Name mit dem sich der Server zu erkennen gibt:

# Name that the DLNA server presents to clients.
# Defaults to "hostname: username".
friendly_name=My Media Server

Aktiviert man inotify wird automatisch nach neuen Dateien im media_dir gesucht.

# Automatic discovery of new files in the media_dir directory.
inotify=yes

Bei meiner Recherche bin ich über eine Besonderheit der Konfiguration bei einem Samsung UE40ES6100 gestoßen.

Um minidlna auf diesem Gerät sichtbar zu bekommen muss man wohl folgende Einstellungen vornehmen:

# Port number for HTTP traffic (descriptions, SOAP, media transfer).
# This option is mandatory (or it must be specified on the command-line using
# "-p").
port=9500

# Serial number the server reports to clients.
# Defaults to 00000000.
serial=

# Model number the server reports to clients.
# Defaults to the version number of minidlna.
model_number=AllShare1.0

# Strictly adhere to DLNA standards.
# This allows server-side downscaling of very large JPEG images, which may
# decrease JPEG serving performance on (at least) Sony DLNA products.
strict_dlna=no

Auf meinem UE55H6290 funktionieren beide Einstellungen.

Weboberfläche

Die Web-Oberfläche von minidlna ist sehr spartanisch und zeigt lediglich einen Status über die aktuelle Datenbank. Dieses erreicht man über die URL:

<IP des miniDLNA Servers>:8200

Im Grunde braucht minidlna aber auch keine Web-Oberfläche.

Fazit

Das Paket miniDLNA ist ein prima Server für Leute die nicht viel "rumkonfigurieren" möchten. Der Server wird installiert und läuft einfach. Im Test hat minidlna alle Videos und Audios ohne Probleme abgespielt inclusive hin- und herspulen und auch die Bilder funktionierten ohne Probleme.

Allerdings hat minidlna nicht besonders viele Einstellmöglichkeiten, außerdem fehlt Transconding, was vermutlich dadurch begründet ist, dass minidlna auf sehr schwacher Handware immernoch lauffähig sein soll.

Sonntag
11
Januar 2015
Klaus Moser
Klaus Moser

Ubuntu 14.04 - DLNA - uShare

DLNA (Digital Living Network Alliance) ist ein Standard für Geräte in der digitalen Unterhaltungselektronik, mit dem es möglich ist unterschiedliche Geräte mit Multimedia-Inhalten zu versorgen.

Unter Ubuntu gibt es eine ganze Reihe freier und kommerzieller DLNA Server. In diesem Beitrag werde ich den DLNA Server uShare testen. Das Paket uShare basiert auf GMediaServer und wird wohl nicht mehr aktiv weiterentwickelt (uShare bei sourceforge.net). Die letzte Aktualisierung war 2013.

Für den Test wurde die Version 1.1a-0ubuntu10 aus den offiziellen Paketquellen von Ubuntu verwendet.

Eine gute Anleitung gibt es wie immer unter ubuntuusers.de.

Installation

Der DLNA Server uShare ist in den offiziellen Paketquellen (universe) verfügbar und wird installiert mit:

sudo apt-get install ushare

Konfiguration

Die Grundkonfiguration erstellt man mit:

sudo dpkg-reconfigure ushare

Um die Konfigurationsdatei zu bearbeiten:

sudo nano /etc/ushare.conf

Die Konfigurationsdatei ist sehr übersichtlich und bietet nur wenige Dinge die man einstellen muss/kann.

Anpassen kann man z.B. den Namen mit dem sich der Server im Netzwerk meldet. Dabei ist zu beachten dass uShare keine Leerzeichen im Namen erlaubt.

# uShare UPnP Friendly Name (default is 'uShare').
USHARE_NAME=My_Media_Server_uShare

Die wichtigste Einstellung ist aber wieder der Basispfad mit den Mediendateien

# Directories to be shared (space or CSV list).
# Ex: USHARE_DIR=/dir1,/dir2
USHARE_DIR=/home/media/audio,/home/media/video

Hier kann man auch mehrere Pfade angeben die man entweder mit einem Komma oder einem Leerzeichen trennen muss.

Webinterface

Damit das Webinterface funktioniert muss in der Konfigurationsdatei folgender Wert auf yes gesetzt werden:

# Enable Web interface (yes/no)
USHARE_ENABLE_WEB=yes

Um den Port zu kennen auf dem das Webinterface zu finden ist, muss man diesen in der Konfigurationsdatei festlegen:

# Port to listen to (default is random from IANA Dynamic Ports range)
# Ex : USHARE_PORT=49200
USHARE_PORT=49200

Das Webinterface ist dann unter folgender URL zu erreichen:

http://<Adresse des uShare Servers>:49200/web/ushare.html

Über das Webinterface kann man Verzeichnisse hinzufügen und wieder entfernen.

Praxis

Auf meinem UE55H6290 konnte ich Bilder anschauen, jedoch wurden keine Vorschaubilder angezeigt. Mit BubbleUPNP unter Android jedoch schon.

Auf dem UE55H6290 konnten mp3 Dateien zwar abgespielt werden, jedoch funktioniert der Schnellvorlauf und -rücklauf nicht. Mit BubbleUPNP war ein Springen innerhalb eines mp3 Tracks jedoch möglich. Es werden bei mp3s außerdem auch keine AlbumArt Bilder angezeigt.

Das Abspielen von Videos auf dem UE55H6290 funktionierte, jedoch war auch hier das Vor- und Zurückspulen nicht möglich. Mit VLC unter Android war dies möglich.

Fazit

Der Server funktioniert also nur begrenzt. Gegenüber minidlna kann uShare also nicht punkten und bietet auch keine sonstige Vorteile. Genau wie minidlna bietet auch uShare kein Transcoding.

Blog

Kmoser's Tech-Blog