OpenWrt - DLNA
Udostępnianie zasobów multimedialnych przy pomocy DLNA
Ostatnia zmiana: 2013-03-18 11:20



DLNA jest standardem umożliwiającym współdzielenie zasobów multimedialnych (filmy, muzyka i zdjęcia) między urządzeniami elektroniki użytkowej. Serwerów DLNA jest kilka jednak korzystanie z nich ma zwykle kilka ograniczeń:
- problem z napisami, ale to nie wina samego DLNA. To czy wyświetlane zostaną napisy zależy od urządzenia odbiorczego np. telewizora. Często jednak nowoczesne TV obsługują napisy w formacie srt.
- brak konwersji formatu. Film jest tylko strumieniowany, więc czy zostanie zdekodowany i wyświetlony zależy znów od urządzenia odbiorczego. Może się okazać że TV obsługuje tylko pliki formatu MP4 a nie avi.
- różne inne problemy, np może być brak przewijania ale to znów zależy od urządzenia odbiorczego.

Najbardziej obiecującym serwerem DLNA dla OpenWrt jest minidlna. Instalujemy go poleceniem:

    # opkg update
    # opkg install minidlna

Zostanie zainstalowane dużo pakietów w zależnościach; może okazać że nie starczy miejsca we flash i niezbędne okaże się wykonanie extroot'a w celu zapewnienia większej ilości miejsca na pakiety.

Konfiguracja zależna jest od pochodzenia pakietu. Jeżeli jest on ze starego repozytorium OpenWrt Backfire to jest w pliku /etc/minidlna.conf. Jeżeli natomiast pochodzi z Attitude Adjustment lub z repozytorium Trunk, to konfiguracja jest w pliku /etc/config/minidlna i można ją ustawić wykorzystując uci.

Należy ustawić kilka opcji:
  • media_dir, domyślnie wskazuje na /mnt. Należy podać katalog w którym są filmy czy muzyka (w OpenWrt dyski montowane są domyślnie w /mnt, w Gargoyle w /tmp/usb_mount).
  • db_dir, należy ustawić taki sam katalog jak media_dir (powinien wskazywać katalog na dysku, domyślnie jest to pamięć routera, a jej może zabraknąć jeżeli ma się większą kolekcję multimediów).
  • inotify, przy domyślnej konfiguracji zawartość katalogów jest skanowana tylko przy uruchomieniu minidlna. Jeżeli mają być samodzielnie wykrywane nowe po dodaniu, należy tą opcję zmienić na yes, pod warunkiem, że włączona jest opcja inotify w jądrze systemu. Moje obrazy Backfire oraz Gargoyle mają już ją włączoną.
  • enabled na 1, tylko jeżeli wykonujemy to w pliku /etc/config/minidlna
Po przełożeniu na uci (dla przykładu - nośnik jest w /mnt/sda1, tam też będą pliki logów i baza danych filmów):

    # uci set minidlna.@minidlna[0].enabled=1
    # uci add_list minidlna.@minidlna[0].media_dir=/mnt/sda1
    # uci set minidlna.@minidlna[0].db_dir=/mnt/sda1/_minidlna
    # uci set minidlna.@minidlna[0].log_dir=/mnt/sda1/_minidlna
    # uci commit minidlna

Uruchomienie sprowadza się do wykonania polecenia:

    # /etc/init.d/minidlna enable
    # /etc/init.d/minidlna start

UWAGA1: przy starcie następuje skanowanie kolekcji multimediów, w zależności od wielkości i ilości filmów może to potrwać kilkanaście minut!
UWAGA2: dysk musi być zamontowany PRZED uruchomieniem minidlna. W OpenWrt dyski montowane są asynchroniczne, więc w przypadku normalnego uruchamiania systemu minidlna może się uruchomić przed zamontowaniem dysku i może być problem z dostępem do danych. Zwykle należy albo uruchamiać minidlna z opóźnieniem albo uruchamiać go po zamontowaniu dysku. Obie metody są opisane na eko.one.pl.

Jeżeli wprowadzimy w przeglądarce adres routera z portem 8200 (domyślnie: http://192.168.1.1:8200/) to powinna wyświetlić się strona informacyjna minidlna z ilością zeskanowanych plików multimedialnych.