OpenWrt - DLNA
Udostępnianie zasobów multimedialnych przy pomocy DLNAOstatnia 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
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
# 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
# /etc/init.d/minidlna enable
# /etc/init.d/minidlna start
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.