Един от най-лесните способи за стрийминг на видео, снимки и музика в домашната мрежа е чрез протокола DLNA. 1

Достатъчно е да имате компютър, на който да инсталирате и конфигурирате медия сървъра и някакво съдържание, което да стриймвате. Приложението, което използвам е miniDLNA - лек и бърз DLNA/UPnP-AV сървър, наличен в повечето линукс дистрибуции.

Какво е нужно?

Компютър, на който да инсталирате сървъра
Приложението е ултра леко и би трябвало да тръгне на почти всичко. Аз ползвам един Dell MiniPC, където вървят и други процеси, но дори и предишно поколение RaspberryPi или някой стар лаптоп биха свършили работа.
Линукс операционна система
Инструкциите са за Debian 12 (важи също за всички Debian-базирани дистрибуции като Ubuntu, Linux Mint и др.). За дистрибуции, базирани на Fedora и Arch, потърсете как се инсталира miniDLNA, но конфигурацията след това ще е сходна.
Локална мрежа
DLNA сървърът трябва да е в същата мрежа с устройствата, към които ще се стриймва съдържанието (смарт телевизори, лаптопи, таблети и др.). Най-често всички устройства в дома са свързани към рутера на интернет доставчика, така че това условие е изпълнено. Желателно е компютърът с DLNA сървъра да е свързан с кабел към мрежата. Безжична връзка също ще работи, но могат да възникнат проблеми при паралелен стрийминг към много клиентски устройства.
Хранилище за данни (по избор)
Трябва да осигурите достатъчно място, където да се съхранява мултимедийното съдържание - филми, музика, снимки. Това може да е директно на диска на компютъра, на който е инсталиран сървъра, или на външен диск, свързан към него.

Инсталация

За да инсталирате miniDLNA, изпълнете следната команда в терминала:

sudo apt update && sudo apt install -y minidlna

Ако имате активиран firewall, трябва да позволите входящ трафик към порт 8200:

sudo ufw allow 8200/tcp

Конфигурация на сървъра

miniDLNA няма графичен интерфейс, всички настройки са достъпни във файла /etc/minidlna.conf, който може да отворите с предпочитания си текстов редактор.

Дефинирайте пътищата към мултимедийното съдържание, като за всяка папка се посочва какъв тип е (видео - V, аудио - A, снимки - P).

# Path to the directory you want scanned for media files.
#
# This option can be specified more than once if you want multiple directories
# scanned.
#
# If you want to restrict a media_dir to a specific content type, you can
# prepend the directory name with a letter representing the type (A, P or V),
# followed by a comma, as so:
#   * "A" for audio    (eg. media_dir=A,/var/lib/minidlna/music)
#   * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
#   * "V" for video    (eg. media_dir=V,/var/lib/minidlna/videos)
#   * "PV" for pictures and video (eg. media_dir=PV,/var/lib/minidlna/digital_camera)
media_dir=V,/opt/minidlna/Videos
media_dir=A,/opt/minidlna/Music
media_dir=P,/opt/minidlna/Pictures

Използването на opt директорията е само примерно. Ако съдържанието е на външен диск, закачен на /mnt/storage, тогава може да дефинирате:

media_dir=V,/mnt/storage/Videos
media_dir=A,/mnt/storage/Music

Важно е minidlna да има read permissions върху папките и файловете, за да може да ги прочете.

Друга настройки, които обикновено променям са:

root_container=B            # управлява структурата от папки, които клиентските устройства ще виждат

friendly_name=DebianDLNA    # името на сървъра, което ще се изобразява на клиентските устройства

inotify=yes                 # автоматично следене за нови файлове

Запазете промените и рестартирайте сървиса:

sudo systemctl restart minidlna.service

За да проверите дали DLNA сървърът функционира:

systemctl status minidlna.service
● minidlna.service - MiniDLNA lightweight DLNA/UPnP-AV server
     Loaded: loaded (/lib/systemd/system/minidlna.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-05-05 18:46:36 EEST; 5min ago
       Docs: man:minidlnad(1)
             man:minidlna.conf(5)
   Main PID: 27981 (minidlnad)
      Tasks: 2 (limit: 18949)
     Memory: 11.9M
        CPU: 281ms
     CGroup: /system.slice/minidlna.service
             └─27981 /usr/sbin/minidlnad -f /etc/minidlna.conf -P /run/minidlna/minidlna.pid -S -r

Трябва да виждате active и enabled (това означава, че DLNA сървърът ще стартира автоматично заедно с операционната система).

Свързване на клиентските устройства

За да достъпите мултимедийното съдържание, не се изискват никакви специални настройки от страна на клиента. Всяко приложение на вашия смарт телевизор, телефон или таблет, стига да е съвместимо с DLNA, би трябвало да “вижда” сървъра в локалната мрежа.

miniDLNA with LG Smart TV
miniDLNA на LG Smart TV
miniDLNA with VLC on Android
miniDLNA на VLC/Android

Бележка относно сигурността: miniDLNA е предназначен за ползване единствено в затворена локална мрежа, не позволявайте достъп до сървъра от интернет. DLNA протоколът не е сигурен, трафикът не се криптира. Всяко устройство, което е свързано към мрежата ви, ще има достъп до мултимедийното съдържание, което се предоставя от сървъра.

Предимства и недостатъци на miniDLNA

От една страна възможностите на miniDLNA са силно ограничени - липсва графичен интерфейс за настройка, няма възможност за контролиране на съдържанието спрямо различни потребители или създаване на персонализирани плейлисти. Ако имате нужда от подобна функционалност, ще трябва да се насочите към други решения.

miniDLNA изпълнява една единствена задача, но за сметка на това много добре - предоставя мултимедийно съдържание към всяко устройство в мрежата ви. Това го прави изключително лек и лесен за конфигуриране, което ви дава възможност да го инсталирате дори на micro pc с SSH достъп и да го заврете в някой шкаф вкъщи, където да работи постоянно. DLNA протоколът е широко разпространен и съвместим с по-стари модели смарт телевизори.


  1. DLNA (Digital Living Network Alliance) е съвкупност от стандарти за съвместимост при споделяне на дигитално съдържание между различни мултимедийни устройства. - https://en.wikipedia.org/wiki/DLNA ↩︎