Benutzer-Werkzeuge

Webseiten-Werkzeuge


dlna

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
dlna [2019-02-01 19:47:05] – [MediaTomb] manfreddlna [2019-06-19 16:09:58] (aktuell) – [MiniDLNA + FreeBSD 10.1] manfred
Zeile 1: Zeile 1:
 +====== DLNA (Digital Living Network Alliance) ======
 +
 +**DLNA => Digital Living Network Alliance**
 +
 +=> Im Switch bzw. Router muss **UPnP** aktiviert werden!
 +
 +
 +===== DLNA-Server-software =====
 +
 +  * [[https://hometheatrelife.com/best-dlna-media-server-software-streaming-media/|Best DLNA Media Server Software for Streaming Media 2018]]
 +  * [[https://www.tecmint.com/best-media-server-software-for-linux/|10 Best Media Server Software for Linux in 2018]]
 +  * [[https://en.wikipedia.org/wiki/List_of_UPnP_AV_media_servers_and_clients#Cross-platform]]
 +
 +
 +==== MiniDLNA ====
 +
 +//[[http://sourceforge.net/projects/minidlna/|MiniDLNA]]// heißt jetzt //[[https://wiki.ubuntuusers.de/ReadyMedia|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.org]] -> [[http://www.subsonic.org/pages/download.jsp|Download]]
 +
 +
 +==== 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 ====
 +
 +  * [[http://mediatomb.cc]]
 +  * [[https://wiki.ubuntuusers.de/Mediatomb/]]
 +  * [[https://help.ubuntu.com/community/MediaTomb]]
 +  * **[[https://www.com-magazin.de/praxis/ubuntu/multimedia-streaming-mediatomb-38214.html?page=1_mediatomb-installieren-und-konfigurieren|MediaTomb installieren und konfigurieren]]** von Christoph Hoffmann - 01.03.2012
 +
 +  > 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 *.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 [[::freebsd: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 [[::freebsd:Jail|Jails]] mit jeweils eigenen IPs benutzen.
 +Mit virtuellen Netzwerkkarten, die über einr [[::FreeBSD:FreeBSD - Bridge|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 "                              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;
 +
 +  * [[https://de.wikipedia.org/wiki/Digital_Living_Network_Alliance]]
 +  * [[http://linux-bsd-sharing.blogspot.de/2012/06/howto-install-and-setup-minidlna-on.html]]
 +
 +<file bash>
 +> 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
 +</file>
 +
 +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 *.8895                 *.*                    LISTEN
 +
 +dann kann man seinen Status per HTTP abfragen:
 +[[http://192.168.1.1:8895/]]
 +
 +
 +==== Serviio + FreeBSD 11.1 ====
 +
 +  * [[http://serviio.org/]]
 +
 +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/
 +
 +<file bash /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
 +}
 +</file>
 +
 +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 ===
 +
 +  * **[[http://www.serviio.org/support/10-uncategorised/5-getting-started]]**
 +
 +man ruft die IP oder den Hostnamen der Jail **mit folgender Ergänzung** auf: '':23423/console'' => [[http://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 ===
 +
 +  * **[[http://wiki.serviio.org/doku.php?id=phpwebui]]**
 +
 +
 +==== Emby + FreeBSD 12 ====
 +
 +  * [[https://emby.media]]
 +    * [[https://emby.media/download.html|Downloads]]
 +    * [[https://github.com/MediaBrowser/Emby.Releases/releases/|GitHub]]
 +      * [[https://emby.media/freebsd-server.html|für FreeBSD]]
 +
 +Emby-Oberfläche zum konfigurieren: [[http://192.168.1.1:8096]]
 +
 +
 +=== 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/   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/]]
 +