Benutzer-Werkzeuge

Webseiten-Werkzeuge


dlna

DLNA (Digital Living Network Alliance)

DLNA ⇒ Digital Living Network Alliance

⇒ Im Switch bzw. Router muss UPnP aktiviert werden!

DLNA-Server-software

MiniDLNA

MiniDLNA heißt jetzt ReadyMedia (Es wird von einem NETGEAR-Mitarbeiter für die ReadyNAS-Produktlinie entwickelt.)

ServiIO

es benötigt JAVA!

https://serviio.org

Subsonic

es benötigt JAVA!

http://www.subsonic.orgDownload

Emby

es wird MONO benötigt!

https://emby.media

Gerbera

läuft hauptsächlich auf verschiedenen Linux-Distributionen aber auch auf macOS

https://gerbera.io/

FreeBSD

MediaTomb + FreeBSD 12

> pkg install net/mediatomb
...
New packages to be INSTALLED:
        mediatomb: 0.12.1_24
        gcc8: 8.2.0_4
        ffmpegthumbnailer: 2.2.0_8
        spidermonkey17: 1.7.0_4
        libexif: 0.6.21_4
        mysql56-client: 5.6.43
        taglib: 1.11.1_2
...

> chown mediatomb:mediatomb /usr/local/etc/mediatomb/config.xml
> vi /usr/local/etc/mediatomb/config.xml
...
  <server>
    <ui enabled="yes" show-tooltips="yes">
      <accounts enabled="yes" session-timeout="30">
  ...
  </server>
...
> service mediatomb restart
Starting mediatomb.

Leider gab es bei mir ein paar Rechte-Probleme, so dass mediatomb keinen Socket aufmachen konnte.

ich hatte keine Lust mehr noch länger nach der Ursache für den Fehler zu suchen (vielleicht später), deshalb habe ich ihn kurzer Hand so gestartet (macht man ja eigentlich nicht):

> /usr/local/bin/mediatomb -d -l /var/log/mediatomb/mediatomb.log -m /Export/mm/ -a /Export/mm/
> netstat -anp tcp | fgrep 49152
tcp4       0      0 *.49152                *.*                    LISTEN
> tail /var/log/mediatomb/mediatomb.log
...
2019-02-01 20:39:57    INFO: Configuration check succeeded.
2019-02-01 20:39:57    INFO: Initialized port: 49152
2019-02-01 20:39:57    INFO: Server bound to: 192.168.1.1
2019-02-01 20:39:58    INFO: MediaTomb Web UI can be reached by following this link:
2019-02-01 20:39:58    INFO: http://192.168.1.1:49152/
2019-02-01 20:39:58    INFO: Adding /Export/mm/

MediaTomb muss einen Port geöffnet haben, dann kann man seinen Status per HTTP abfragen: http://192.168.1.1:49152

MiniDLNA + FreeBSD 10.1

MiniDLNA (ReadyMedia) und Serviio laufen auch in einer Jail.

MiniDLNA arbeitet leider nur mit einem einzigen Prozess je System, da es den Port 1900 (SSDP-Discovery-Traffic) auf alle IPs (nicht konfigurierbar) öffnet. Um mehrere MiniDLNA-Dienste gleichzeitig auf dem selben System zu betreiben, kann man Jails mit jeweils eigenen IPs benutzen. Mit virtuellen Netzwerkkarten, die über einr Bridge mit der physikalischen Netzwerkkarte verbunden sind, hat es bei mir nicht funktioniert.

ACHTUNG!
leider verursacht inotify Abstürze des Programmes, deshlab ist es sinnvoll es abzuschalten inotify=no und entweder bei neuen Filmen das Programm neu zu starten oder es zyklisch neu zu starten. Hier könnte man eine Variable erhöhen… aber welche?

hier wird es jeden Morgen um 6 Uhr restartet für einen rescan:

# echo "0       6       *       *       *       root    service minidlna stop ; sleep 1 ; service minidlna rescan" >> /etc/crontab

Dieses Programm ist sehr einfach, hat aber ein paar Schwächen:

  • wenn man mehr als einen MiniDLNA-Server im Netz betreibt, kann es sein, dass man nicht alle findet;
  • der MiniDLNA-Server kann nur ein paar Tausend Multimediadateien exportieren;
> mkdir /var/db/minidlna /opt
> pkg install net/minidlna
> chown dlna:dlna /var/db/minidlna
> vi /usr/local/etc/minidlna.conf
  ...
  network_interface=sk0
  ...
  #media_dir=/opt
 
  # Musik (Audio)
  media_dir=A,/opt/Audio
  # Videos
  media_dir=V,/opt/Video
  # Bilder
  media_dir=P,/opt/Video
  ...
  friendly_name=MiniDLNA
  ...
  uuid=550e8400-e29b-41d4-a716-446655440001
  ...
> echo 'minidlna_enable="YES"' >> /etc/rc.conf
> killall -9 minidlnad
> ps alx|fgrep minidlna
> service minidlna start
> ls -lha /var/db/minidlna/
> tail -f /var/log/minidlna.log
 
hier kann man schön sehen, wie das Verzeichnis bzw. die Verzeichnisse durchsucht und indiziert werden:
> top

Um die Datenbank zu aktuallisieren, muß (als "root") ein kompletter ReScan des Verzeichnisses angestoßen werden:

> killall -9 minidlnad ; sleep 1 ; service minidlna rescan
> tail -f /var/log/minidlna.log

MiniDLNA muss seinen Port geöffnet haben

# netstat -anp tcp | fgrep 8895
tcp4       0      0 *.8895                 *.*                    LISTEN

dann kann man seinen Status per HTTP abfragen: http://192.168.1.1:8895/

Serviio + FreeBSD 11.1

Dieser DLNA-Server soll alle DLNA-Funktionen unterstützen, er kann auch (im Gegensatz zum MiniDLNA-Server) mit 20000 Multimediadateien gut umgehen.

die Jail bauen

> ezjail-admin create multimedia 192.168.2.206

Multimedia-Verzeichnis anlegen

> mkdir -p /usr/jails/multimedia/mm

…hier wir das Originalverzeichnis mit den Multimediadateien per bind-mount anmontiert

> echo '/PATH/TO/MEDIA /usr/jails/multimedia/mm nullfs ro 0 0' >> /etc/fstab.multimedia
> ezjail-admin stop  multimedia
> ezjail-admin start multimedia

in die Jail wechseln

> ezjail-admin console multimedia

ein paar Basis-Programme installieren

> pkg install shells/bash misc/mc sysutils/screen misc/gnu-watch archivers/unzip ftp/wget converters/base64 net/bmon net-mgmt/iftop

die BASH laden (es arbeitet sich in ihr einfach besser)

# bash ; exit

ggf. einen DLNA-Benutzer anlegen

# pw useradd dlna -m -d /home/dlna

den FFmpeg (Video-Player) konfigurieren
AMR_NB kann aktiviert werden
AMR_WB kann aktiviert werden
ASS muss aktiviert werden! (ASS = Subtitles rendering via libass)
DRM kann aktiviert werden
FDK_AAC sollte aktiviert werden
LAME sollte aktiviert werden

# cd /usr/ports/multimedia/ffmpeg && make config WITH_RTMP=YES WITH_X11GRAB=YES WITH_FAAC=YES WITH_LAME=YES WITH_AMR_NB=YES WITH_AMR_WB=YES

den Portmaster installieren, um Serviio besser installieren zu können

# pkg install graphics/dcraw
# pkg install ports-mgmt/portmaster

Serviio installieren (das dauert einige Zeit - auf älteren Systemen ein paar Stunden)

# portmaster net/serviio
# chown dlna:dlna /var/log/serviio/serviio.log
# echo 'serviio_enable="YES"' >> /etc/rc.conf
# echo serviio_args=\'-Dserviio.advertisementDuration=\"15\" -Dserviio.remoteHost=\"192.168.2.206\"\' >> /etc/rc.conf
# echo 'serviio_lang="de_DE.UTF-8"' >> /etc/rc.conf
# vi /etc/resolv.conf

Serviio starten

# /usr/local/etc/rc.d/serviio start
# less /var/log/serviio/serviio.log

leider wird aber (wegen eines Fehlers im Start-Stop-Skript) der Status immer als "aus" angezeigt:

# /usr/local/etc/rc.d/serviio status
command_args="-Dserviio.advertisementDuration="15" -Dserviio.remoteHost="192.168.2.206" &"
serviio is not running

Damit der Status auch richtig ausgegeben wird, muss in der ServiIO-Version 1.9.2 noch eine kleine Anpassung in der Start-Stop-Datei vorgenommen werden.

# vi /usr/local/etc/rc.d/serviio

Es ist diese Zeile so abzuändern

      serviio_pid=$(ps -wwwaU ${serviio_user} | awk '/java.*org.serviio.MediaServer/ {print $1}')

das sie so aussieht:

      serviio_pid=$(ps -wwwaU ${serviio_user} | awk '/java.*serviio.home/ {print $1}')

Die Änderung ist hier vorzunehmen:

/java.*org.serviio.MediaServer/
/java.*serviio.home/
/usr/local/etc/rc.d/serviio
#!/bin/sh
 
# $FreeBSD: head/net/serviio/files/serviio.in 371092 2014-10-18 06:28:39Z netchild $
#
# PROVIDE: serviio
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf[.local] to enable serviio:
#
# serviio_enable="YES"
 
. /etc/rc.subr
 
name=serviio
rcvar=serviio_enable
command=/usr/local/sbin/serviiod
 
load_rc_config $name
 
: ${serviio_user="dlna"}
 
if [ -n "${serviio_lang}" ]; then
        export LANG=${serviio_lang}
fi
 
_dirs="/var/db/serviio /var/db/serviio/home /var/log/serviio"
start_precmd="mkdir -p $_dirs; chown $serviio_user $_dirs"
echo "command_args=\"$serviio_args &\""
command_args="$serviio_args &"
 
stop_cmd="$command -stop"
 
status_cmd=${name}_status
serviio_status() {
        #serviio_pid=$(ps -wwwaU ${serviio_user} | awk '/java.*org.serviio.MediaServer/ {print $1}')
        serviio_pid=$(ps -wwwaU ${serviio_user} | awk '/java.*serviio.home/ {print $1}')
        if [ -n "${serviio_pid}" ]; then
                echo "${name} is running as pid ${serviio_pid}"
        else
                echo "${name} is not running"
                return 1
        fi
}

Jetzt wird auch angezeigt, dass serviio läuft, wenn es läuft… :-)

# service serviio status
serviio is not running

# service serviio start 
Starting serviio.

# service serviio status
serviio is running as pid 77390

Konfigurationsoberfläche von Serviio

man ruft die IP oder den Hostnamen der Jail mit folgender Ergänzung auf: :23423/consolehttp://192.168.2.206:23423/console

> firefox --new-tab http://192.168.2.206:23423/console

Jetzt kann man Serviio in einer schönen Oberfläche konfigurieren, die Sprache der Oberfläche wird rechts oben ausgewählt.

Web-GUI für Serviio

Emby + FreeBSD 12

Binär-Installation

Leider gibt es nicht immer für die aktuellste Version ein Binärpaket:

> pkg add -f https://github.com/MediaBrowser/Emby.Releases/releases/download/4.0.1.0/emby-server-freebsd_4.0.1.0_amd64.txz
Fetching emby-server-freebsd_4.0.1.0_amd64.txz: 100%   17 MiB   1.4MB/s    00:13    
Installing emby-server-4.0.1.0_1...
pkg: wrong architecture: FreeBSD:11:amd64 instead of FreeBSD:12:amd64
===> Creating groups.
Using existing group 'emby'.
===> Creating users
Creating user 'emby' with uid '989'.
pw: user 'emby' disappeared during update
pkg: PRE-INSTALL script failed

Failed to install the following 1 package(s): https://github.com/MediaBrowser/Emby.Releases/releases/download/4.0.1.0/emby-server-freebsd_4.0.1.0_amd64.txz

Installation aus dem Ports-Tree

glücklicherweise gibt es Emby auch im Ports-tree:

> cd /usr/ports/multimedia/emby-server

> make clean
===>  Cleaning for emby-server-3.5.3.0

> make
===>  License UNKNOWN accepted by the user
===>   emby-server-3.5.3.0 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by emby-server-3.5.3.0 for building
===>  Extracting for emby-server-3.5.3.0
=> SHA256 Checksum OK for emby-server-freebsd_3.5.3.0_amd64.tar.xz.
===>  Patching for emby-server-3.5.3.0
===>   emby-server-3.5.3.0 depends on file: /usr/local/libdata/pkgconfig/x11.pc - found
===>   emby-server-3.5.3.0 depends on file: /usr/local/libdata/pkgconfig/xcb.pc - found
===>   emby-server-3.5.3.0 depends on shared library: libass.so - found (/usr/local/lib/libass.so)
===>   emby-server-3.5.3.0 depends on shared library: libfontconfig.so - found (/usr/local/lib/libfontconfig.so)
===>   emby-server-3.5.3.0 depends on shared library: libfreetype.so - found (/usr/local/lib/libfreetype.so)
===>   emby-server-3.5.3.0 depends on shared library: libfribidi.so - found (/usr/local/lib/libfribidi.so)
===>   emby-server-3.5.3.0 depends on shared library: libgnutls.so - found (/usr/local/lib/libgnutls.so)
===>   emby-server-3.5.3.0 depends on shared library: libopus.so - found (/usr/local/lib/libopus.so)
===>   emby-server-3.5.3.0 depends on shared library: libsmbclient.so - found (/usr/local/lib/samba4/libsmbclient.so)
===>   emby-server-3.5.3.0 depends on shared library: libsqlite3.so - found (/usr/local/lib/libsqlite3.so)
===>   emby-server-3.5.3.0 depends on shared library: libtheora.so - found (/usr/local/lib/libtheora.so)
===>   emby-server-3.5.3.0 depends on shared library: libva.so - found (/usr/local/lib/libva.so)
===>   emby-server-3.5.3.0 depends on shared library: libvorbis.so - found (/usr/local/lib/libvorbis.so)
===>   emby-server-3.5.3.0 depends on shared library: libwebp.so - found (/usr/local/lib/libwebp.so)
===>   emby-server-3.5.3.0 depends on shared library: libx264.so - found (/usr/local/lib/libx264.so)
===>   emby-server-3.5.3.0 depends on shared library: libzvbi.so - found (/usr/local/lib/libzvbi.so)
===>   emby-server-3.5.3.0 depends on shared library: libiconv.so - found (/usr/local/lib/libiconv.so)
===>  Configuring for emby-server-3.5.3.0
===>  Staging for emby-server-3.5.3.0
===>   emby-server-3.5.3.0 depends on executable: mono - found
===>   emby-server-3.5.3.0 depends on file: /usr/local/libdata/pkgconfig/x11.pc - found
===>   emby-server-3.5.3.0 depends on file: /usr/local/libdata/pkgconfig/xcb.pc - found
===>   Generating temporary packing list
===> Creating groups.
===> Creating users
...

> make install
===>  Installing for emby-server-3.5.3.0
===>  Checking if emby-server already installed
===>   Registering installation for emby-server-3.5.3.0
Installing emby-server-3.5.3.0...
...

If you had mediabrowser installed before the project was
renamed to emby-server, you may want to rename the user and
group (note that moving the database is not supported):
# pw groupmod 989 -n mediabrowser -l emby
# pw usermod 989 -n mediabrowser -l emby -g emby -c Emby\ Server

To automatically start Emby Server at boot time:
# echo 'emby_server_enable="YES"' >> /etc/rc.conf

To then manually start Emby Server without rebooting:
# service emby-server start

Once started, visit the following webpage to configure:
http://localhost:8096/

===> SECURITY REPORT: 
      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/usr/local/lib/emby-server/lib/libavformat.so.58.12.100

      This port has installed the following startup scripts which may cause
      these network services to be started at boot time.
/usr/local/etc/rc.d/emby-server

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage: 
https://emby.media/

Allerdings ist das nicht immer die neueste Version, aktuell ist zur Zeit die Version 4.0.1.0, im Ports-Tree liegt aber noch die Version 3.5.3.0.

Ubuntu 14.04 / Mint 17.2

Mediatomb

MediaTomb ist ein "UPnP MediaServer" mit einer hübschen Weboberfläche. Er arbeitet im Vordergrund des Userland.

> aptitude install mediatomb

uShare

uShare ist ein kleiner und einfacher "UPnP-/DLNA-MediaServer" mit einem built-in HTTP-Server.

> aptitude install ushare
> dpkg-reconfigure ushare

http://blog.technical-life.at/2010/06/dlna-upnp-server-auf-ubuntu-installieren-und-konfigurieren/

/home/http/wiki/data/pages/dlna.txt · Zuletzt geändert: von manfred