Долго я не мог прийти к общему знаменателю, выбирая решение для реализации домашнего медиа-сервера. В голову приходили различные идеи. Но в силу своего минимализма, было решено ограничиться тремя условиями:
Начну, пожалуй, с описания самого стандарта DLNA. Выдумывать тут нечего, процитирую Википедию:
В качестве аппаратной части мой выбор остановился на Asus RT N-16. На данный момент это самый производительный linux-маршрутизатор для SOHO сетей. Надеюсь ни для кого не секрет, что установив на роутер альтернативную прошивку, можно значительно расширить стоковый функционал устройства. Воспользовавшись этой возможностью, я установил DLNA-сервер MediaTomb. Есть конечно и альтернативы, но самым стабильным приложением в моём случае оказался именно MediaTomb. Все настройки сервера хранятся в одном файле config.xml. С настройками по умолчанию телевизор даже не мог обнаружить DLNA-сервер. Приведу конкретные выдержки из конфига, которые помогли всё-таки подружить сервер с телевизором Samsung.
Для начало нужно добавить http-заголовки:
Добавляем перекодировки mime-типов для того, что бы телевизор понимал какого формата файл:
Для *.mkv файлов важно указать тип «video/mpeg», а не как пишут в некоторых howto «video/x-matroska».
На этом настройка сервера закончена.
Запускаем сервер в режиме демона: mediatomb -d
Осталось подключить к USB-порту флэшку или винт и указать какие каталоги сканировать на наличие медиа-файлов. Для этого заходим в web-интерфейc по адресу «my_router:50500» и выбираем в древовидной структуре папку c фильмами. После непродолжительного сканирования можно включать телевизор и наслаждаться просмотром медиа-контента. При просмотре крупных файлов роутер совсем не нагружается т.к. транскодирование не используется. Мне повезло с моим телевизором — он воспроизводит большинство мультимедийных форматов.
В дополнение можно установить торрент-клиент Transmission, который будет качать видео из интернета для последующего просмотра на телевизоре.
Как видите, у меня получился вполне работоспособный медиа-сервер, тихий, всеядный и экономный.
Я специально не нагружаю пост информацией по перепрошивке роутера и установке optware софта — её достаточно много в интернете, в том числе и на Хабре. Спасибо за внимание.
- Медиа-сервер должен быть бесшумным
- Должен потреблять мало электроэнергии
- Способен воспроизводить все популярные форматы аудио/видео контента
Начну, пожалуй, с описания самого стандарта DLNA. Выдумывать тут нечего, процитирую Википедию:
DLNA (Digital Living Network Alliance) — стандарт, позволяющий совместимым устройствам передавать и принимать по домашней сети различный медиа-контент (изображения, музыку, видео), а также отображать его в режиме реального времени. Это технология для соединения домашних компьютеров, мобильных телефонов, ноутбуков и бытовой электроники в единую цифровую сеть. Устройства, которые поддерживают спецификацию DLNA, по желанию пользователя могут настраиваться и объединяться в домашнюю сеть в автоматическом режиме.
В качестве аппаратной части мой выбор остановился на Asus RT N-16. На данный момент это самый производительный linux-маршрутизатор для SOHO сетей. Надеюсь ни для кого не секрет, что установив на роутер альтернативную прошивку, можно значительно расширить стоковый функционал устройства. Воспользовавшись этой возможностью, я установил DLNA-сервер MediaTomb. Есть конечно и альтернативы, но самым стабильным приложением в моём случае оказался именно MediaTomb. Все настройки сервера хранятся в одном файле config.xml. С настройками по умолчанию телевизор даже не мог обнаружить DLNA-сервер. Приведу конкретные выдержки из конфига, которые помогли всё-таки подружить сервер с телевизором Samsung.
Для начало нужно добавить http-заголовки:
<custom-http-headers>
<add header="transferMode.dlna.org: Streaming"/>
<add header="contentFeatures.dlna.org:DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000"/>
</custom-http-headers>
Добавляем перекодировки mime-типов для того, что бы телевизор понимал какого формата файл:
Для *.mkv файлов важно указать тип «video/mpeg», а не как пишут в некоторых howto «video/x-matroska».
<mappings>
<extension-mimetype ignore-unknown="no">
<map from="mp3" to="audio/mpeg"/>
<map from="ogg" to="application/ogg"/>
<map from="asf" to="video/x-ms-asf"/>
<map from="asx" to="video/x-ms-asf"/>
<map from="wma" to="audio/x-ms-wma"/>
<map from="wax" to="audio/x-ms-wax"/>
<map from="wmv" to="video/x-ms-wmv"/>
<map from="wvx" to="video/x-ms-wvx"/>
<map from="wm" to="video/x-ms-wm"/>
<map from="wmx" to="video/x-ms-wmx"/>
<map from="m3u" to="audio/x-mpegurl"/>
<map from="pls" to="audio/x-scpls"/>
<map from="ts" to="video/mpeg"/>
<map from="m2ts" to="video/mpeg"/>
<map from="vob" to="video/mpeg"/>
<map from="wav" to="audio/wav"/>
<map from="mpg" to="video/mpeg"/>
<map from="aac" to="audio/x-aac"/>
<map from="m4a" to="audio/mp4"/>
<map from="mkv" to="video/mpeg"/>
<map from="mov" to="video/x-quicktime"/>
<map from="flv" to="video/x-flv"/>
<map from="divx" to="video/divx"/>
<map from="avi" to="video/x-msvideo"/>
</extension-mimetype>
На этом настройка сервера закончена.
Запускаем сервер в режиме демона: mediatomb -d
Осталось подключить к USB-порту флэшку или винт и указать какие каталоги сканировать на наличие медиа-файлов. Для этого заходим в web-интерфейc по адресу «my_router:50500» и выбираем в древовидной структуре папку c фильмами. После непродолжительного сканирования можно включать телевизор и наслаждаться просмотром медиа-контента. При просмотре крупных файлов роутер совсем не нагружается т.к. транскодирование не используется. Мне повезло с моим телевизором — он воспроизводит большинство мультимедийных форматов.
В дополнение можно установить торрент-клиент Transmission, который будет качать видео из интернета для последующего просмотра на телевизоре.
Как видите, у меня получился вполне работоспособный медиа-сервер, тихий, всеядный и экономный.
Я специально не нагружаю пост информацией по перепрошивке роутера и установке optware софта — её достаточно много в интернете, в том числе и на Хабре. Спасибо за внимание.