Домашний медиа сервер upnp dlna http как настроить

Домашний медиа-сервер: настройка и аспекты применения

Преамбула

Фабула

В принципе, если бы не то, что мне попалась именно Nokia 5800XM, я бы давно эту проблему решил — роутер ASUS WL-500g поддерживает UPnP, так что достаточно было бы только воткнуть флешку. Беда в том, что не смотря на порой встречающиеся спецификации в онлайн-магазинах, но Nokia 5800XM не поддерживает UPnP/DLNA и сторонней реализации клиента тоже не существует. Так что же, спрашивается, делать? Поставить жирный крест на идее просмотра удалённого контента?

Первой попыткой выйти из тупика было потоковое вещание видео. Судя по спецификации протокола RTSP (RFC 2326) он должен поддерживать управление воспроизведением при вещании: PLAY, PAUSE, и TEARDOWN. К сожалению, после того, как VLC был настроен на потоковое вещание, оказалось, что запрос паузы либо не обрабатывается этим сервером и работает только со стороны сервера, либо не отсылается клиентом смартфона. К тому же, в любом случае, таким образом оказывался доступен только выбранный на сервере для вещания видеофайл, а не целая медиа-библиотека.

Но первое разочарование не охладило пыл, поиски продолжались.

Следующим на очереди стал Home Media Server, больше известный как Домашний медиа-сервер — программа, предоставляющая медиа-ресурсы (фотографии, аудио и видео-файлы) вашего компьютера другим UPnP (DLNA) устройствам в домашней сети. После установки он порадовал меня богатством опций, удобством настройки, но… полностью разочаровал в виду того, что UPnP/DLNA, как было упомянуто выше, Nokia 5800 не поддерживала, а через HTTP видео напрочь отказывалось проигрываться…
Нужна была работающая альтернатива. Вот тут как раз мне и попался на глаза медиа-сервер TVersity — название проскочило в чьём-то комментарии при обсуждении DLNA медиа-серверов.

TVersity Media Server (free edition) — ещё более простой в освоении медиа-сервер, опять таки предлагающий нам UPnP, DLNA и HTTP. Если с первыми двумя протоколами всё понятно, то вот HTTP, как оказалось, не так прост — доступ к медиа-библиотеке оказался реализован двумя способами: классическим и через флеш. Но обо всём по порядку.

Для начала — интерфейс. Дружественный, и я даже сказал бы довольно упрощённый. Первым делом сразу полез в настройки. Хинты к каждой опции (пусть и на английском) упрощают конфигурирование сервера «под себя».

Самым главным для меня, конечно, было перекодирование видео. Настройки сервера, к сожалению, ориентированы на рядового пользователя, так что поиграться с тонким конфигурированием кодеков не получится, но лучше хоть что-то, чем совсем ничего, не так ли?

Настройка медиа-библиотеки тоже довольно проста (и в отличии от вышеупомянутого Home Media Server не требует длительного рестарта при своём обновлении), при добавлении источника с помощью специальных чекбоксов можно указать тип его контента: аудио, видео, и/или изображения. Я говорю именно «источника», а не «папки», потому что таким образом можно добавить внешний контент: к примеру Video RSS или Internet Radio, а также некоторые сервисы, как Youtube и Flickr. Кстати, обратите внимание — при выборе папки с помощью кнопки «Browse. » вместо кириллических имён получите кракозябры, так что лучше вписать имя вручную или скопипастить пусть из файлового менеджера.

Ну что же, с тем, как настроить библиотеку разобрались. Теперь — о том, как же с ней работать. И начнём с того, ради чего всё это затевалось: просмотр видео со смартфона. Счастливым обладателям Nokia 5800 известно, что смартфон принципиально не умеет открывать AVI контейнер, и изначально это было большой проблемой, т.к. локальный просмотр фильма требовал конвертировать видео в MP4, но потом всё же появились сторонние плееры с поддержкой этого контейнера. В данном случае это не имеет значения — нужна лишь поддержка FLV, что для него не проблема. Итак, как уже упоминалось раньше, доступ к медиабиблиотеке реализован двумя способами. Для просмотра HTML-страниц в адресной строке нужно указать http://server-address:port/lib, а для загрузки интерактивного флеш-приложения — http://server-address:port/flashlib. В данном случае последний вариант как раз то, что нужно, посему в браузере смартфона создаётся закладка с адресом

http://192.168.1.33:41952/flashlib. Ну что же, теперь можно проверить, что получится.

А получается такая вот картина: после непродолжительной загрузки флеш-приложения на экране появляется каталог библиотеки с вполне удобной навигацией:

Для гладкого видеовоспроизведения пришлось таки поиграться с настройками перекодировщика, но в конце-концов удалось добиться приемлемой картинки. Правда, позиционирование существенно подтормаживает, но это не столь существенная беда — можно мириться.

Читайте также:  Почему не работает volume style

В самом медиа-сервере можно посмотреть статус вещания, список адресов подключенных к нему устройств, статус перекодирования видео, а также лог работы и подключений.

DLNA/UPNP

Казалось бы всё. Да ещё нет: всё-таки медиа-сервер штука удобная, и, конечно же, хочется использовать его по-полной, а значит не только через HTTP. Кроме смартфонов в наличии также имеется ноутбук с Windows 7 и нетбук — там установлена lubuntu. С первым всё оказалось проще простого — при запуске Windows Media Player 12 он с ходу обнаружил библиотеку DLNA медиа-сервера и без проблем начал её просмотр.

С линуксом всё оказалось немного сложнее. Из списка кроссплатформенных UPnP/DLNA медиа-клиентов XBMC мне установить попросту не удалось — у него отсутствовали в репозиторие бинарники для Ubuntu 11.04 Natty Narwhal, а установленный VLC — под линуксом он таки поддерживает UPnP — не всегда находил сервер, хотя в то же время я замечательно заходил на него через браузер. В итоге решено было искать другой путь.

В итоге была найдена одна замечательная вещь под названием djmount — основанная на FUSE утилита для монтирования ресурсов UPnP-серверов. Так как программа уже находилась в репозиторие, установка не отняла много времени. Теперь оставалось только создать точку монтирования да прописать автомонтирование. После непродолжительного исследования и наступания на грабли это таки удалось осуществить. Все нижеследующие команды выполняются исключительно из-под рута, так что не забудьте выполнить:

Для начала нужно создать папку, которая будет являться точкой монтирования:

cd /media
mkdir upnp
chmod 777 upnp

Теперь, собственно, запуск FUSE и само монтирование:

modprobe fuse
djmount -o iocharset=UTF-8,allow_other /media/upnp

После этого уже можно заходить в библиотеку как в обычную папку и открывать её содержимое в любых удобных программах как обычные файлы.

Кстати сказать, я нигде не нашёл упоминаний о найденных мной пренеприятнейших граблях в работе с djmount, выражающихся в неправильной кодировке файлов. По спецификации DLNA имена файлов должны быть исключительно в UTF-8 формате, посему TVersity Media Server даже не имеет настройки кодировки имён файлов. Cудя по сообщении при монтировании djmount тоже по-умолчанию использует именно эту кодировку — UTF-8. Но файловый менеджер, равно как и консоль, упорно отказывались отображать в именах файлов привычные буквы, повсеместно заменяя их вопросительными знаками. Попытки указать кодировку CP1251 или IBM-866 к полному успеху не привели, хотя теперь в кириллические папки можно было хоть заглянуть. К моей полной неожиданности, выходом из ситуации стало прямое указание на использование кодировки UTF-8 — уж не знаю, почему я решил её испробовать, но это сработало!

Автозапуск тоже оказался делом не простым, но тут пришёл на помощь гугл, и как оказалось, проблема с невозможностью автомонтирования из fstab уже была решена. В результате монтирование происходит при каждом поднятии сети. Сделано это следующим образом. Создаём скрипт:

cd /etc/network/if-up.d
nano djmount

# Not for loopback!
[ «$IFACE» != «lo» ] || exit 0

modprobe fuse
fusermount -u /media/upnp
djmount -o iocharset=UTF-8,allow_other /media/upnp

Выставляем ему аттрибуты:

chmod 755 djmount
chown root djmount
chgrp root djmount

Вот теперь действительно всё. Медиа-библиотека доступна с любого устройства любым для него возможным/удобным способом.

Источник

DLNA-сервер для дома и семьи

Как-то так сложилось, что тег DLNA сервер чаще встречается в постах-вопросах, чем в ответах. И если в вопросах установки на домашний Windows-ПК какой-то пользовательский опыт накоплен, то определиться с выбором ПО для домашнего сервера/NAS-а/медиацентра — оказалось непросто. Распределившись по песочницам народ обособленно решает проблемы каждой программы в отдельности. А понять что из них чего стоит и нужно ли оно вообще — лично мне не удалось.

И вот, я вооружившись ссылкой с Википедии Как выбрать DLNA-сервер под Windows, Mac OS X или Linux — опробовал почти всё, что есть под Linux.

DLNA — его место в домашней сети

Наверное этот путь уже проходило большинство — в доме появляются новые медиа-устройства, растет количество членов семьи потребляющих медиа-контент, распухает сама база фильмов, музыки и фотографий.
При этом каждый строит медиа-инфрастуктуру по-своему. У кого-то это компьютер с TV-OUT, у кого-то нетбук или HTPC. Кто-то расшаривает папки с NAS-а по NFS, кто-то подключает HDD к медиаплееру, кто-то использует возможности Sony PS…
Появляется неразбериха в местах хранения, форматах, кодеках и т.п.
Так, в моем случае оказалось:

  • плазме в гостинной лучше подавать 720p чем FullHD
  • телевизору Sony в детской подключеному по Wi-Fi больше 15Mbit/s лучше не скармливать, H.264 ему нужен максимум Profile 4.1, а файлы на сетевых хранилищах он не видит вообще
  • спутниковый ресивер Openbox не умеет играть звуковые дорожки в DTS, по SMB не тянет больше 30Mbit/s, по NFS-не отображают кириллицу
  • Nokia Lumia и iPhone вообще ограниченны везде и всюду
Читайте также:  Компьютерное кресло сломалось под человеком

В общем, единственным вариантом сдружить весь этот зверинец между собой — это использование DLNA сервера.
Теоретически — он и контент из разных мест в одиное дерево папок сведет, и разрешение подгонит и совместимость кодеков проверит и при необходимости перекодирует. Красота…

На что ставить

Домашний компьютер — как правило это Windows-машина. Смотреть фильм с перекодированием пока кто-то играет — не получиться; режима 24/7 нет и близко. На роль не подходит. Поэтому Windows версии программ я даже не рассматривал.
Роутер, прошитый DD-WRT/OpenWRT — есть пакеты для этих прошивок и они работают. Аппаратные ресурсы очень ограничены — транскодирование малореально, скорость доступа к USB порту и сетевым папкам сильно ограничена. Тем не менее — многим и такое подходит.
NAS или домашний сервер с Linux — самое универсальное решение. Программ много. Ограничений по протоколам нет. Производительности x86 процессоров 5-летней давности (в моем случае это Athlon X2-6000) хватает для одновременного перекодирования на-лету двух фильмов любого формата.

Личный опыт, оценка программ

MiniDLNA, uShare и xupnpd

Это разные проекты, но в сущности — одно и то-же. Легковесные и быстрые. Единственная функция, которую они выполняют — предоставляют сетевой доступ к медифайлам по протоколу DLNA/UPnP. Всё остальное плеер или телевизор должны уметь сами. DLNA поддерживается не в полной мере и многие устройства эти серверы просто не видят.
Очень массовые. Работают везде. Пакеты существуют под всевозможные дистрибутивов Linux, маршрутизаторы с прошивками DD-WRT/OpenWRT и NAS-ы. Процедура установки простейшая и хорошо расписана на профильных форумах. Никаких GUI нет
Если Вы, и только Вы (иначе неизбежны жалобы членов семьи):

  • смотрите/слушаете только с одного всеядного устройства (такого как телевизор Samsung)
  • Ваше устройство не умеет напрямую брать файлы с сетевых папок или делает это слишком медленно (такое как телевизор Sony Bravia)
  • храните фильмы/музыку на недорогом NAS-е или маршрутизаторе с USB-диском
  • заранее отбираете контент в нужном формате или не ленитесь перекодировать вручную
  • медиа-файлы уже хорошо отсортированы по папкам или Вас это вообще не беспокоит

— то Вам можно ограничиться и таким DLNA-сервером. Выбирать из них тот, который есть в пакетах под вашу железяку и будет увиден рендером.

MediaTomb

Разработчики однозначно пишут, что «это не DLNA-сервер, он лишь поддерживает часть его функций». И хотя некоторые проблемы совместимости могут быть, это вполне себе достойный внимания проект.
Здесь уже есть работающий через встроенный http-сервер GUI — в нем можно управлять папками с контентом. Добавлять новые, создавать ярлыки к существующим, задавать интервалы сканирования и т.п.
Хорошо распространен — нет проблемы установить в любом дистрибутиве Linux, тяжелых зависимостей за собой не тянет. Настраивается единственным текстовым файлом. Очень стабилен в работе, не ресурсоемк.
Можно использовать транскодирование, но оно реализовано в простешем виде. Так, привязка профилей осуществляется к формату входного файла, а не к устройству вывода. Сервер вообще не различает кто к нему подключился. Соответственно готовых профилей под устройства нет — все нужно настраивать вручную:

  • какие форматы транскодировать, а какие передавать напрямую
  • задать кодировщик по ситуации: ffmpeg, vlc, mplayer или что-то ещё
  • задать bitrate, количество аудио-каналов, профиль H.264 и прочие опции кодирования
  • наложить видеофильтр, такой как обрезание полей или crop

В моем случае пришлось писать отдельный скрипт для задания аргументов ffmpeg исходя из формата аудиодорожки (DTS или AC3).
При этом, при просмотре транскодированного потока на телевизоре не будет работать перемотка и выбор адуиодорожки. Прикрутить субтитры — тоже отдельная песня.
В общем — MediaTomb — весьма брутальные инструмент для true линуксоидов. Универсальным его не назовешь, но под себя и свое железо можно настроить идеально.

Rygel

Массовый, есть почти везде. Но очень криво ставится в режим демона (нужно самому писать init-скрипт, создавать папки и пользователя). Является частью проекта gnome и тянет за собой gstreamer (а то и pulseaudio). Если у кого на компьютере стоит KDE или что-то другое — совсем неудобен. Иконки для видео генерирует через tumbler из проекта XFCE, да и то с нюансами. Регулярно падает.
До изучения особенностей транскодирования у меня руки не дошли. Мой вердикт — «не годен«.

PS3 Media Server

Очень старый проект. И хотя от своего начального применения: «Раздавать фильмы/музыку с домашнего Windows ПК на Sony PS», — проект сильно развился. Но JAVA-код и требования для запуска X-сервера меня от него отвернули.

Читайте также:  Кондиционер то работает то не работает хонда цивик

DLNA-сервер в нём есть. Но держать этот комбайн ради одного лишь модуля глупо.
Тем более, что именно из XBMC родился отдельный проект медиа-сервера Plex.

Universal Media Server

Кривой он какой-то. Показывал мне все дерево каталогов вместо выбранной папки. Файлы открывал лишь некоторые и регулярно сыпал ошибками в консоль. С transconding-ом я вообще не разобрался.
Весьма тяжелый из-за JAVA-кода. Обязательно нужен запущенный X-сервер — демоном его не поставишь. «Не годен.«

GMediaServer

Проект заброшен. Внимания не достоин.

LXiMedia

Простая и удобная реализация DLNA-сервера. Достаточно выбрать папки с файлами, жестко задать параметры транскодирования, аудиодорожку, субтитры. Никаких пофилей, настроек. К тому-же это GUI-приложение, демоном не ставиться.
На мой взгляд он в таком виде бесполезен — один из многих и далеко не лучший.

Serviio

Пожалуй самый быстроразвивающийся проект сейчас. Регулярно обновляется. Активно обрастает плагинами, профилями и приложениями под мобильные OS.
Представляет из себя JAVA-приложение работающее демоном. Поддержка DLNA-протокола — полная. Довольно умело разбрасывает контент по папкам и категориям. Умеет создавать превьюшки к фильмам. Легко подключаются разные каналы on-line вещания.
Транскодирует при помощи ffmpeg. База профилей устройств уже достаточно большая (и продолжает пополнятся) — сервер корректно подбирает параметры кодирования для любого из домашних железок. Что не распознал — подобрать профиль или написать свой не сложно.
Из-за того, что используется ffmpeg — та-же проблема, что и в mediatomb — нет перемотки в транскодированном потоке и не меняется аудиодорожка.
Управляется это все либо из JAVA-клиента, либо web-морды, написанной на PHP, либо смартфона (есть приложения под Android и WP).
К сожалению недоступен в виде .deb или .rpm пакета. Нужно ставить вручную: создать папки, пользователя, распаковать, взять на форуме поддержки init-скрипт, прописать в автозапуск». Под Synology NAS есть готовый пакет.
В целом — вполне может стать единой точкой доступа к медиа-контенту дома. Все, что нужно — он умеет.

Skifta

Не включен в Linux-репозитории, а потому редок. Но он имеет графический инсталлятор и несет с собой jre, а потому станет почти в любой системе. Неудобен тем, что запускается в два шага — вначале утилитка в SystemTray, потом — сам media-server. Без иксов и демоном не пойдет. Очень прост и лаконичен, но сильно грузит систему (JAVA-код).

TVMOBiLi

Стоит 30$ (или абонентская плата 1,5$/мес). Доступен в виде .deb и .rpm пакетов. Не в Ubuntu/Fedora установить довольно сложно — встроенные vlc и ffmpeg наверняка найдут недостающие библиотеки и откажутся работать. У меня не получилось подобрать в Gentoo USE-флаги для vlc. Не работал совсем, пришлось переделывать профили, что-бы использовался только ffmpeg.
В целом профили транскодирования — его сильная сторона. Можно задать любую логику и любые параметры.
Управляется через симпатичную WEB-морду. Имеет богатую базу профилей транскодирования. Есть проигрывать файлов через встроенный http-сервер. Превьюшки генерировать не умеет.
Работает быстро и красиво. Хороший кандидат.

TwonkyServer

Устанавливается распаковкой tar.gz. или через инсталлятор. В Linux репозиториях его нет. Очень быстрый код, мгновенный запуск, удобный web-интерфейс. Хорошо и грамотно раскидывает контент по папкам. Есть готовые init-скрипты. Умеет извлекать из файлов meta-данные и генерировать превьюшки. Все понравилось. Одна беда — $19.95.
И все же: «Рекомендую«.

Как пишут разработчики — «A complete Media Solution». Подтверждаю.
Этот монстр вырос из XBMC и умеет все и даже больше. К фильмам найдет постеры, рейтинги и кучу данных. Сериалы к тому-же ещё и распределит по сезонам и эпизодам. Музыкальную коллекцию упорядочит из любого исходного вида.
Транскодирование делает из всего под всё. Параметрами можно управлять прямо из экранного меню телевизора. Для умных устройств вроде телевизоров LG Smart TV и Apple TV поддержка выходит далеко за пределы протокола DLNA.
Есть поддержка собственного облачного сервиса, что позволяет смотреть домашнее видео удаленно — сервер подстроит параметры отправляемого видео под возможности устройства и канала связи.
Есть отдельно написанные клиенты под мобильные OS и плитки Windows 8.
Для Ubuntu, Fedora, CentOS и массовые модели NAS есть готовые пакеты. Под все остальное — устанавливается простой распаковкой. Из зависимостей требует лишь Avahi-daemon.
К сожалению механизм транскодирования слабо допускает вмешательства в работу — профили подправить можно, но возможности сильно ограничены.

Способен решить любые задачи в рамках темы, при этом бесплатен, стабилен и как ни странно — быстр.

Очень хотелось бы, что-бы кто-то этот список дополнил и/или внес изменения.

Источник

Оцените статью