Serwer DLNA na Raspberry Pi

Jakiś czas temu pisałem artykuł o tym w jaki sposób malinkę przerobić na serwer telewizyjny (tvheadend). Do tej pory moje połącznie RPi + Tvheadend + Android TV ma się bardzo dobrze. Tak dobrze, że postanowiłem rozszerzyć nieco funkcjonalność. Poza samym nadawaniem telewizji w sieci LAN chciałbym móc nagrywać i odtwarzać te nagrania. Opcja nagrywania jest dostępna w serwerze Tvheadend, natomiast problemem jest odtwarzanie nagranych materiałów w rozwiązaniach takich jak Android Live Channels, Kodi. Jak się okazało dobrym rozwiązaniem było postawienie serwera DLNA na malince.

Problemy

Jeżeli interesuje Was tylko instrukcja instalacji serwera DLNA, to możecie ten rozdział pominąć. Opiszę tutaj dlaczego inne rozwiązania w moim przypadku się nie sprawdziły.

Podejście pierwsze: nagrywanie w programie Android TV Live Channels. Niestety aplikacja Tvheadend Live Channel, która dostarcza stream do systemu Andoid nie obsługuje nagrywania. Jak się okazuje nic straconego, gdyż aplikacja ta jest otwarto-źródłowa, a Android ma całkiem niezłą dokumentację na temat dodawania własnych kanałów TV. Niestety chciałem mieć coś na już, a analiza kodu, który już jest napisany i wymyślenie jak dobrze zaimplementować nagrywanie będzie raczej czasochłonne, więc raczej forka zrobię w wolnym czasie i się pobawię. Jak się uda to na pewno dam znać na blogu ;).

Podejście drugie: skonfigurowałem Kodi w mojej przystawce, dodałem plugin Tvheadend PVR, skonfigurowałem konto i jak się okazuje telewizja działa całkiem znośnie (jak dla mnie UI jest bardzo nieintuicyjne, co dyskwalifikuje w moich oczach Kodi jako centrum multimedialne). Jest nawet funkcja nagrywania, która działa. Nagrane materiały pojawiają się w menu Telewizja w Kodi, niestety w moim przypadku odtwarzanie tych materiałów cięło się niemiłosiernie. Same nagrania ściągnięte na komputer z malinki grały dobrze, jednak Kodi nie radziło sobie na mojej przystawce z płynnym odtworzeniem ich.

Ostatecznie stwierdziłem, że najlepszym rozwiązaniem na ten moment będzie zainstalowanie odtwarzacza VLC na przystawce telewizyjnej (obsługuje DLNA) oraz serwera DLNA na malince z rootem multimediów w folderze, gdzie tvheadend wrzuca nagrania.

Instalacja DLNA

Instalacja oraz konfiguracja prostego serwera DLNA jest na malince dziecinnie prosta. W celu instalacji wpisujemy w konsoli polecenie

sudo apt-get install minidlna

Konfiguracja

Po zainstalowaniu pakietu należy go skonfigurować. Aby to zrobić edytujemy plik /etc/minidlna.conf

sudo nano /etc/minidlna.conf

Jedną z najważniejszych opcji jest ścieżka folderu z mediami. Możemy podać ją jedną dla wszystkich typów (obrazy, muzyka, filmy) lub różne dla każdego z tych typów. Ja w swoim przypadku podałem jedną dla wszystkich, a jest to katalog z nagraniami z tvheadend:

media_dir=/home/hts

Jeżeli chcemy wpisać różne ścieżki dla zdjęć, muzyki i filmów robimy to w następujący sposób:

media_dir=A,/sciezka/do/muzyki
media_dir=V,/sciezka/do/video
media_dir=P,/sciezka/do/zdjec

Inną opcją, którą warto ustawić jest friendly_name (odnajdziemy ją wciskając w nano Ctrl + W, wpisując szukaną nazwę i klikając enter). Jest to nazwa naszego serwera DLNA, która wyświetli nam się na liście urządzeń. Pamiętajmy, że niektóre opcje domyślnie są zakomentowane znakiem #. Jeżeli chcemy aktywować wybraną opcję należy usunąć ten znak z początku linii.

Ja u siebie włączyłem dodatkowo opcję inotify oraz notify_interval w celu automatycznego odświeżania listy plików.

Uruchomienie serwisu

Po pomyślym skonfigurowaniu uruchamiamy (lub restartujemy) serwis:

sudo service minidlna restart

lub

sudo service minidlna start

Jeżeli nasz serwis nie startuje automatycznie po starcie malinki możemy dopsiać go do autostartu:

sudo update-rc.d minidlna defaults