====== 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 ... ... ... > 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 [[::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 "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; * [[https://de.wikipedia.org/wiki/Digital_Living_Network_Alliance]] * [[http://linux-bsd-sharing.blogspot.de/2012/06/howto-install-and-setup-minidlna-on.html]] > 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 ==== * [[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/ #!/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 === * **[[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/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/]]