Własny server DLNA oparty na UBUNTU 11.10 / 12.4 LTS

Do niedawna nie potrzebowałem bawić się w instalację własnego serwera DLNA, gdyż byłem szczęśliwym użytkownikiem Dysku Synology.

Synology w piękny sposób spełniał wszelkie wymagania jeżeli chodzi o streaming, lecz już „wyrosłem” z modelu jaki posiadam tj. DS110j [800MHz / 256MB RAM ].

Postanowiłem zbudować własny serwer [ obecnie pożyczony ] na regularnych komponentach PC i UBUNTU 11.10.

Przeszedłem przez instalacje wielu serwerów DLNA taki jak:

  • serviio
  • uShare
  • Rygel
  • miniDLNA i przy tej pozostałem…

Instalacja i konfiguracja tej aplikacji jest tak prosta, że od razu przypadła mi do gustu 🙂

posłużyłem się wskazówkami  opisanymi przez Bena na jego blogu: Miscellaneous

Przejdę  do instalacji, jak już wspomniałem instalacja jest bardzo prosta a ułątwieniem jest fakt, iż miniDLNA jest dostępne w repozytoriach UBUNTU.

ale możemy wesprzeć się dodatkowym repozytorium wpisując w terminal:

sudo add-apt-repository ppa:stedy6/stedy-minidna

Następnie instalujemy miniDLNA wpisując w terminalu:

sudo apt-get update && sudo apt-get install minidlna

Po instalacji konfigurujemy poleceniem:

sudo nano /etc/minidlna.conf

lub jeśli mamy zainstalowany już Midnight Commander

sudo mcedit /etc/minidlna.conf

Szukamy miejsca gdzie widnieje

media_dir=A,/media/storage/Share/Music
media_dir=P,/media/storage/Share/Pictures
media_dir=V,/media/storage/Share/Videos

Zmieniamy według własnych preferencji …
Nieco niżej możemy ustawić Przyjazna-wyświetlaną nazwę naszego serwera

friendly_name=LSPDLNA

Zapisujemy zmiany i nasz serwer jest już gotowy do działania teraz tylko kosmetycznie możemy przeindeksować zawartość ustawionych przed chwilą folderów

sudo minidlna -R

lub też przeładować cały serwer …

sudo service minidlna restart

GOTOWE 🙂 !!

  • Mateusz

    Jak z innego komputera kopiować do folderu na serwerze pliki np. muzyke, zdjecia, itp. ? Jak wchodze na pliki serwera przez dodany serwer multimediów w Windowsie 10 to nie moge nic dodac tylko moge otworzyć..

    • Z innego komputera pliki kopiować możesz za pomocą na przykład FTP albo jeśli podmontujesz sobie te zasoby jako miejsce sieciowe (jeżeli masz protokół SAMBA) . Ogólnie protokół DLNA to tylko możliwość odczytu i nie ma możliwości zapisu.

      • Mateusz

        Pomógł byś z tym protokołem Samba? Chodzi mi że chciałbym móc kopiować pliki na serwer i z serwera bez ftp dla się tak ?

        • Wszystko już opisałem tutaj :
          http://locosp.org/?s=Samba&submit=Search

        • Za niedługo postaram Ci się pomóc, jeśli już do tej pory sam nie rozwiązałeś problemu, gdyż będę znów majstrował przy linux’ie więc będę na bierząco ..

        • Przepraszam że dopiero po takim czasie ale zapomniałem hasła do Disqus 🙂
          Powiedz mi czy już sobie poradziłeś ? jeśli nie to powiedz mi czy masz skonfigurowany server samba w jakikolwiek sposób ?

  • Leoncio

    Testowałem – efekt ten sam 🙁

  • Leoncio

    Wszystko to robiłem po kilka razy. Katalogi są widoczne nie widać zawartości. Acha sudo minidlna -R nie działa. robiłem sudo service minidlna restart i sudo service minidlna force-ureload

    • LOCOSP

      a masz możliwość przetestować to jako root ?

  • Leoncio

    Witajcie
    Od kilku dni walcze z miniDLNA. Program działa, pokazuje foldery tylko puste. W logu mam komunikat że skanuje folder i wykrywa 0 files!. Jak wgrywam pliki (np mp3) do folderu to w logu piszę że to jest unrecognizet file format. Jakieś pomysły?

    • LOCOSP

      Przede wszystkim sprawdź czy podałeś dobre ścieżki do folderów które mają być wyświetlane.
      Potem wykonaj indexowanie tych folderów komendą: sudo minidlna -R. no i restart: sudo service minidlna restart.

  • Rozumiem że widzi poniższe foldery, tak ?
    /home/buba/Muzyka
    /home/buba/Wideo
    /home/buba/Obrazy

    Dziwne że nie możesz tworzyć folderów na root ( nie masz uprawnień root’a ?? )

    ok to analogicznie w /home/buba/ utwórz jakieś inne foldery na przykład:

    /home/buba/Nuta
    /home/buba/Aviki
    /home/buba/Fotki

    chce w ten sposób sprawdzić czy poprawne ścieżki widzi sam serwer…

    • Dobra, chwila google i wiem więcej. Jaka to jest wersja minidlna? Była ręcznie kompilowana czy z paczki instalowana? Tu jest ładny wątek razem z patchem, prawdopodobnie trzeba po prostu przekompilować minidlna z odpowiednimi flagami i wtedy się nie będzie sypać.

  • Witam
    Próbuję od jakiegoś czasu skonfigurować miniDLNA i nie działa.
    to znaczy TV widzi ale dziwne foldery nie te ustawione przeze mnie i są one puste.;/

    • Witam, dziwna sprawa bo miniDLNA to najprostszy w konfiguracji i użytkowaniu program dlatego go sam wybrałem :).
      pokaż co masz w /etc/minidlna.conf ..
      a druga sprawa czy zrobiłem przeładowanie zawartości skonfigurowanych folderów czyli
      „sudo minidlna -R”

      • Jak najbardziej przeładowywałem.

        minidlna.conf:

        # port for HTTP (descriptions, SOAP, media transfer) traffic
        port=8200

        # network interfaces to serve, comma delimited
        #network_interface=wlan0
        # set this to the directory you want scanned.
        # * if have multiple directories, you can have multiple media_dir= lines
        # * if you want to restrict a media_dir to a specific content type, you
        # can prepend the type, followed by a comma, to the directory:
        # + „A” for audio (eg. media_dir=A,/home/buba/Muzyka)
        # + „V” for video (eg. media_dir=V,/media/BuBa pqi/Filmy)
        # + „P” for images (eg. media_dir=P,/media/BuBa pqi/FOTO)
        media_dir=A,/home/buba/Muzyka
        media_dir=V,/home/buba/Wideo
        media_dir=P,/home/buba/Obrazy

        # set this if you want to customize the name that shows up on your clients
        friendly_name=BuBa SERWER

        # set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
        db_dir=/var/lib/minidlna

        # set this if you would like to specify the directory where you want MiniDLNA to store its log file
        log_dir=/var/lib/minidlna/log

        # set this to change the verbosity of the information that is logged
        # each section can use a different level: off, fatal, error, warn, info, or debug
        #log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn

        # this should be a list of file names to check for when searching for album art
        # note: names should be delimited with a forward slash („/”)
        album_art_names=art.jpg/Art.jpg/front.jpg/Front.jpg/Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg

        # set this to no to disable inotify monitoring to automatically discover new files
        # note: the default is yes
        inotify=yes

        # set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO
        enable_tivo=no

        # set this to strictly adhere to DLNA standards.
        # * This will allow server-side downscaling of very large JPEG images,
        # which may hurt JPEG serving performance on (at least) Sony DLNA products.
        strict_dlna=no

        # default presentation url is http address on port 80
        #presentation_url=http://www.mylan/index.php

        # notify interval in seconds. default is 895 seconds.
        notify_interval=900

        # serial and model number the daemon will report to clients
        # in its XML description
        serial=12345678
        model_number=1

        # specify the path to the MiniSSDPd socket
        #minissdpdsocket=/var/run/minissdpd.sock

        # use different container as root of the tree
        # possible values:
        # + „.” – use standard container (this is the default)
        # + „B” – „Browse Directory”
        # + „M” – „Muzyka”
        # + „V” – „Filmy”
        # + „P” – „Zjecia”
        # if you specify „B” and client device is audio-only then „Music/Folders” will be used as root
        #root_container=B

        • Wszystko wygląda dobrze, zastanawiam się czy jednak dobrze rozpoznaje Twoje ścieżki.
          Przeprowadź test utwórz bezpośrednio na root foldery AUDIO, VIDEO, PHOTO wrzuć tam po jednym pliku dla testów …

          i podmień:
          media_dir=A,/AUDIO
          media_dir=V,/VIDEO
          media_dir=P,/PHOTO

          potem oczywiście sudo minidlna -R

          i jeszcze proponowałbym coś w stylu

          friendly_name=BubaSerwer bez odstępu…

          i daj znać jaki rezultat…

          • ale na root nie mogę tworzyć folderów. Ogólnie serwer jest widoczny tylko widzi standardowe foldery które są puste

          • Juz nawet edytować pliku minidlna.conf nie moge ;/

    • Peter

      To chyba nie kwestia konfiguracji, u mnie skanując katalogi ze zdjęciami, minidlna wykonuje po kilku katalogach buffer overflow:

      root@pe /etc/ minidlna -f /etc/minidlna.conf -R -d
      [2012/10/22 15:49:34] minidlna.c:884: warn: Starting MiniDLNA version 1.0.25 [SQLite 3.7.11].
      [2012/10/22 15:49:34] minidlna.c:907: warn: Creating new database…
      [2012/10/22 15:49:34] minidlna.c:972: info: Enabled interface 192.168.1.101/255.255.255.0
      [2012/10/22 15:49:34] scanner.c:731: warn: Skanowanie /opt/foto
      [2012/10/22 15:49:34] minidlna.c:990: warn: HTTP listening on port 8200
      [2012/10/22 15:49:34] minissdp.c:351: debug: Sending SSDP notifies
      [2012/10/22 15:49:34] scanner.c:731: info: Skanowanie /opt/foto/19
      [2012/10/22 15:49:34] scanner.c:731: info: Skanowanie /opt/foto/19/podstawowka
      *** buffer overflow detected ***: minidlna terminated
      ======= Backtrace: =========
      /lib64/libc.so.6(__fortify_fail+0x37)[0x308d7094c7]
      /lib64/libc.so.6[0x308d707680]
      …itd

      Co dziwne, nie ma problemu z podobnymi katalogami z mp3 i filmami.
      Mój Linux to 64 bitowa Fedora z kernelem 3.6.2, minidlna w wersji 1.0.25

      • LOCOSP

        wynikało by z tego, że minidlna słabo radzi sobie z większą ilością podfolderów , ja nie miałem w sumie żadnych podkatalogów w folderach skanowanych przez minidlna…

        • Może być np. tak jak mówisz, albo np. problem jeśli w nazwach plików występują jakieś dziwne znaczki, nie wiem jak minidlna z tym sobie radzi.

        • może dlatego jak wchodzę w folder z muzyką to czyta albumy jednak plików nie pokazuje.

      • A te katalogi to jakieś specyficzne są? Gdyby to coś było z uprawnieniami to raczej by o tym coś wspomniał minidlna, a nie sypał buffer overflow. Zawsze się wywala na /opt/foto/19/podstawowka? Dużo tam jest plików/podkatalogów? Może jakieś magiczne pliki z krzaczkami w nazwie? Nie siedzę w minidlna tylko Loco prosił, żebym tu zajrzał, stąd przygłupie może pytania 🙂 Na uprawnieniach jakiego usera działa minidlna? root? Nie podoba mi się też: [2012/10/22 15:49:34] minidlna.c:990: warn: HTTP listening on port 8200, dlaczego warn? Może w tle już śmiga jakiś minidlna i blokuje coś? Pokaż może

        ps aux | grep minidlna

        upewnij się że minidlna jest ubite, zanim je odpalasz. Piszesz, że nie możesz edytować jako root? Do tego ten buffer overlow… Ze sprzętem wszystko OK? Zrób może memtest i sprawdź dysk smartctl -a /dev/wiadomoco

        • Peter

          Katalogi i pliki nie są specyficzne, mają proste nazwy bez dziwnych znaków. Są tak samo, a czasem mniej zagnieżdżone niż katalogi z mp3 (które jak pisałem nie sprawiają kłopotów). Zresztą kopiowałem je też w inne miejsca. Skanowanie wywala zawsze w tym samym miejscu, ale sam minidlna działa dalej i serwuje tych kilkanaście plików które udało się zeskanować. Pliki mają te same prawa, ten sam kontekst selinux, są w tym samym katalogu.
          Proces minidlna działa jako jedyny.
          To kolega Buba pisze, że nie potrafi edytować jako root 😉 Nie ja.
          Sprzęt jest OK, żaden pozostały soft nie powoduje buffer overlow.
          ———
          Zrobiłem trochę eksperymentów i wygląda na to, że skanowanie wywala się na konkretnym formacie jpg, mianowicie:
          peter@pe ~/podstawowka/ file IMG.JPG
          IMG.JPG: JPEG image data, JFIF standard 1.01

          natomiast bez problemu odczytuje:
          peter@pe ~/podstawowka/ file IMG_0090.JPG
          IMG_0090.JPG: JPEG image data, EXIF standard 2.3

          Jakby nie korzystał z systemowych bibliotek, tylko z jakiegoś niskopoziomowego dekodowania jpegów?

          • LOCOSP

            A sprawdziłeś może wątek który podrzucił kolega Thomas ? jest patch, przekompiluj i daj proszę znać co i jak..

  • Hello, just to let you know that my blog has moved to vassie.me