- Как собрать и настроить домашний медиасервер?
- Содержание
- Содержание
- Что такое DLNA-медиасервер?
- Медиасервер из ПК
- Медиасервер из роутера
- Медиасервер из ТВ-приставки
- Медиасервер из микрокомпьютера
- Медиасервер из NAS
- Заключение
- Домашний медиа сервер minidlna
- На кой черт это надо?
- Установка Linux
- Установка transmission-daemon
- Установка NGINX и настройка проксирования
- Настройка проксирования transmission-daemon через nginx
- Написание скрипта
- Установка медиа сервера
- Напоследок
Как собрать и настроить домашний медиасервер?
Содержание
Содержание
Высокоскоростной Интернет разделил людей на две группы: одни подписываются на стриминговые сервисы, другие предпочитают по старинке хранить собственные копии фильмов и альбомов на жестком диске, особенно если это касается редких релизов, которых не найти онлайн. Но Netflix или Spotify легко запустить с любого устройства, а как получить доступ к файлам, хранящимся на диске, с телевизора или смартфона? Для этого нужно организовать домашний медиасервер. Это намного проще, чем кажется, и осуществимо даже стандартными средствами Windows.
Что такое DLNA-медиасервер?
Домашний медиасервер позволяет подключить все доступные устройства в единую беспроводную сеть и организовать общий доступ к музыке и фильмам на жестком диске, флешке и SD-карте. Это избавляет от необходимости хранить по копии фильма или альбома на ПК, планшете, смартфоне, ноутбуке и в памяти ТВ — достаточно будет одной копии на медиасервере.
Медиасервером можно сделать множество девайсов:
- Компьютер: актуальна рабочая станция или старый ПК
- Роутеры с поддержкой DLNA
- Микрокомпьютер
- ТВ-Боксы
- NAS (Network Attached Storage — сетевое хранилище)
По своей сути, все эти устройства представляют собой компьютер с процессором, видеоядром, оперативной памятью и диском для хранения файлов. Чтобы превратить их в медиасервер, нужна технология высокоскоростной передачи контента в режиме реального времени. Она называется DLNA.
DLNA представляет собой набор стандартов для объединения поддерживающих эту технологию устройств в единую домашнюю сеть для передачи медиаконтента. Чаще всего это телевизоры, принтеры, плееры и ресиверы, а также портативная техника — смартфоны, планшеты, ноутбуки и т. д. Многие производители используют DLNA в своих экосистемах под брендовыми названиями:
- Samsung — Allshare
- LG — SmartShare
- Philips — Simple Share
Аналогом также является Apple AirPlay, однако он использует иные протоколы и работает только с устройствами Apple.
Проще всего подружить медиасервер с ТВ, если последний поддерживает DLNA. В ином случае поможет подключение с помощью ТВ-бокса или микрокомпьютера.
Медиасервер из ПК
Домашний медиасервер можно организовать на рабочем ПК. Понадобится лишь роутер и устройство с поддержкой DLNA, например, телевизор.
Если ТВ и ПК объединены одной домашней сетью, Windows 10 позволяет без лишних настроек передавать контент напрямую на устройство. Достаточно щелкнуть по файлу правой кнопкой мыши и выбрать нужный девайс из списка во вкладке «Передать на устройство» («Cast to device»).
Чтобы не кликать каждый раз по файлам на ПК, а выбирать их сразу с ТВ или планшета, понадобится настроить DLNA-сервер:
- Открыть параметры потоковой передачи мультимедиа и включить эту функцию.
Дать название своему серверу и открыть доступ нужным устройствам.
Кликнув «Настроить» при выборе девайса, можно открыть передачу того или иного типа контента.
Теперь на ТВ и портативных устройствах появится доступный медиаконтент. Однако он будет в неотсортированном виде, хранить так сотни фильмов и альбомов невозможно. Понадобится настройка папок и категорий. Их возможно упорядочить даже с помощью Windows Media Player 11 и выше: щелкнуть правой кнопкой по разделу «Видео», выбрать «Управление видеотекой» и добавить в список папки с заранее отсортированными роликами. Аналогично с фото и музыкой.
Наконец, DLNA-сервер легко организовать с помощью программ, которые иногда называют медиацентрами. Они позволяют:
- Упорядочивать медиатеку по любым категориям: исполнители, режиссеры, актеры, год выпуска и т. п.
- Автоматически подгружать метаданные: достаточно загрузить файл с фильмом, чтобы программа сама подобрала к нему обложку, описание, список актеров и т. д.
- Работать с субтитрами, плейлистами и любыми форматами видео, аудио и изображений.
- Делать транскодинг — то есть перекодировать старый видеофайл в современный формат, удобоваримый для ТВ, либо превратить фильм на 50 Гб в 5 Гб, чтобы смартфон не зависал при его просмотре.
Существует множество медиацентров, самые популярные из них:
Минус организации медиасервера на ПК в том, что придется постоянно держать его включенным, чтобы все работало. Плюс программа медиацентра будет отнимать часть ресурсов, особенно при транскодировании. Можно, конечно, использовать отдельную машину, например, старый компьютер, но возможности системы будут ограничены его производительностью: далеко не каждый старый ПК сможет без лагов воспроизводить видео в 4К на ютубе.
Медиасервер из роутера
Некоторые роутеры с USB или SATA-разъемом умеют подрабатывать медиасервером. В характеристиках роутера должна быть указана функция DLNA-сервера. Также понадобится минимум 128 Мб оперативной памяти (лучше 256 Мб). Если сеть Wi-Fi слишком загружена в диапазоне 2.4 ГГц, пригодится двухдиапазонный роутер. Он поможет избежать потери пакетов, которые будут выражаться в лагах и фризах. Для нормальной работы скорость соединения должна быть не ниже 60 Мбит/с.
Обычно настроить DLNA на роутере можно прямо в его веб-интерфейсе: нужно включить саму функцию и выбрать папки с контентом. Далее можно подключать к нему смартфоны и телевизоры. Главное преимущество в простоте решения, но есть и недостатки:
- Слабый процессор и недостаточное количество оперативной памяти приводят к тормозам и лагам
- Чем больше заполнен жесткий диск, подключенный к роутеру, тем сильнее тормозит система
- Не все модели умеют стабильно работать с жесткими дисками
Медиасервер из ТВ-приставки
Что, если телевизор недостаточно умный и не поддерживает DNLS? Тогда можно подключить к нему дополнительное устройство, к примеру, ТВ-бокс. Они поддерживают DLNS и предоставляют возможность загружать на флешку или SD-карту свои медиафайлы, чтобы просматривать их с ТВ, а иногда и других устройств. Более того, Андроид дает этим приставкам функциональность смартфона или планшета, позволяя устанавливать на них приложения, пользоваться стриминговыми сервисами, ютубом, играть в игры и т. д.
ТВ-боксом легко пользоваться: настройка под себя не отнимет много времени, и для большинства покупателей его возможностей будет достаточно. Но есть и минусы:
- Недостаточная производительность. Пользователи жалуются на тормоза и лаги у приставок со слабым процессором, поэтому нужно внимательно смотреть характеристики и отзывы.
- Перегрев, приводящий к троттлингу. Бюджетные модели оснащаются весьма скромным охлаждением. В итоге процессор при высокой нагрузке (например, игры или просмотр видео с транскодированием) достигает критических температур и сбрасывает частоты, теряя производительность, чтобы не сгореть.
- Некоторые устройства не поддерживают подключение жесткого диска, а на флешке или SD-карте помещается не вся медиатека.
Медиасервер из микрокомпьютера
Любители DIY могут сделать медиасервер на базе микрокомпьютера Raspberry Pi, ASUS Tinker Board или похожего. Такие обычно поставляются в виде платы без корпуса, на которой установлен ARM-процессор, ОЗУ, видеокарта, модули Wi-Fi и Bluetooth, порты USB, HDMI и Ethernet. Соответственно, к нему можно подключить почти любой ТВ и даже внешнюю звуковую карту.
Это позволяет точно подобрать модель по характеристикам под свои задачи и самостоятельно сконструировать корпус и систему охлаждения. К микрокомпьютерам можно подключить и SD-карты, и HDD (как USB, так и SATA через переходник). Мощности Raspberry Pi 3 Model B+ хватает, чтобы проигрывать фильмы в высоком разрешении и видео в 4K на ютубе.
Чтобы превратить микрокопьютер в медиасервер, понадобится:
- Подключить к микрокомпьютеру блок питания, ТВ или монитор и, желательно, кулер для охлаждения.
- Установить с загрузочной SD-карты ОС-медиацентр Kodi (например, с помощью сборки LibreELEC, устанавливающейся автоматически). Сборка поддерживает русский язык и уже содержит в себе медиаплеер, позволяет устанавливать приложения, смотреть ютуб и все остальное.
- В настройках LibreElect (вкладке Network) активировать Wireless Access Point и задать пароль для сети.
Тем, кто не хочет заниматься конструированием корпуса и охлаждения, подойдет микрокомпьютер типа Intel Compute Stick. На него можно установить Windows 10 и работать хоть с привычными офисными приложениями, хоть с фотошопом, поэтому такая штука все чаще появляется в офисах. Соответственно, можно установить на него программу и использовать его в качестве медиацентра. Однако мощностей процессора Intel Atom x5 Z8330 1440 МГц не хватает для просмотра видео 4К, по крайней мере, в ОС Windows.
Сегодня появилась целая категория компьютеров-флешек и неттопов. Также есть чуть менее компактные платформы для ПК. Однако модели с мощным процессором стоят уже в одной ценовой категории с профессиональным решением для организации медиасервера — сетевым хранилищем или NAS.
Медиасервер из NAS
NAS — это сетевые хранилища. Их предназначение — доставлять файлы так быстро, как это возможно. Но главное, что они позволяют подключить сразу несколько жестких дисков с возможностью моментально заменять их. Это позволяет организовать домашнюю медиатеку исполинских масштабов с фильмами в 4К и альбомами в Hi-Res.
Чтобы использовать NAS в качестве медиацентра, нужно внимательно изучить характеристики. Понадобится мощный процессор (хотя бы 2, а лучше 4 ядра) и ОЗУ объемом не меньше 2 Гб. Тогда не будет лагов при транскодинге и просмотре 4К. Многие модели позволяют добавить оперативки и улучшить скорость работы благодаря SSD и организации на нем кэш-памяти для быстрого доступа к часто используемым файлам.
Желательно подключить к NAS жесткий диск, заточенный под длительную работу нон-стоп. Для таких задач производители выпускают оптимизированные для NAS винчестеры.
В качестве ОС можно использовать Kodi, Plex, emby и другие. Однако главный недостаток NAS в том, что они созданы с оглядкой на продвинутых пользователей, поэтому настройка потребует определенных знаний и терпения.
Заключение
Медиасервер позволяет не только организовать гаджеты в удобную домашнюю экосистему, но и через Интернет открыть доступ к файлам в хранилище из любой точки земного шара. Так можно настроить собственный стриминг-сервис, чтобы слушать свою музыку и смотреть свои фильмы с портативного устройства везде, где позволяет скорость сети.
Источник
Домашний медиа сервер minidlna
На кой черт это надо?
Так сложились обстоятельства, что мне удалось скоммуниздить старенький ПК, да и чтобы он просто не пылился, так как такое старье продавать за 5-7 тысяч (цена в моем регионе за подобную конфигурацию) мне стыдно, а получать за него 3 тысячи — ну такое. Я решил, сделаю дома небольшую библиотеку фильмов, музыки, да и у жены очень много фотографий, которые её очень дороги. Задумка была следующей.
Некий медиа сервер, который будет транслировать медиаконтент на телевизор.
Некое локальное хранилище для файлов, порой приходится с флешками побегать, а то жесткого диска на 500ГБ не хватает.
Торрент клиент, который будет качать все что я пожелаю.
Цели поставлены, осталось их реализовать. Вряд ли опытные пользователи найдут здесь что-то полезное для себя, наверное, только начинающие пользователи Linux, так как все действия очень простые в исполнении.
Установка Linux
То, как поставить линукс, я думаю, не стоит говорить. Я просто опишу что я сделал после установки. Во-первых, пока компьютер был возле меня, я настроил статический адрес в файле /etc/netplan/00-installer-config.yaml
Думаю, тут вроде понятно, что где что и как. Конечно, правильнее было бы привязать ip-адрес через роутер, но у меня роутер Xiaomi, и там все в иероглифах. Я просто сделал статический ip-адрес на компьютере. После этого я его отнес в подвал и подключил к роутеру и сел за рабочую машину. Теперь стоит создать пару ssh-ключей для удобства
Ну и отправил ключ на медиа сервер
Теперь настрою файл
И теперь для подключения достаточно написать ssh home ,и последний момент, которой наверное не стоит делать, это убрать ввод пароля при использовании sudo. Для этого достаточно добавить NOPASSWD в файл /etc/sudoerc что бы вышло так
Установка transmission-daemon
И так, начну с торрент-клиента transmiss-daemon.
Так обновятся все пакеты и установится transmiss-daemon. Вообще не рекомендуется ставить без ведома все подряд, но так как у меня система только что установленная, установятся только обновления системных пакетов, и вряд тли что-то сломается. После установки transmission-daemon нужно его выключить для того что произвести настройку.
Если править файл конфигурации /etc/transmission-daemon/settings.json в тот момент как демон работает, изменения не сохранятся. И так мне надо поправить несколько строк, но для начала создам папки куда будет все качаться. Я создам все папки для медиа контента в /media и будет /media/torrent/downloads для загружаемых файлов и /media/torrent/complete для файлов которые уже загрузились
сразу сменю владельца на папки для загрузки на debian-transmission
Теперь можно приступать к настройке transmission. Как уже говорилось, все настройки хранятся в файле /etc/transmission-daemon/settings.json . Нам необходимо поправить несколько строк, а именно
«download-dir»: «/var/lib/transmission-daemon/downloads» — указываем папку куда будут помещаться загруженные файлы, у меня в /media/torrent/complete Лучше указывать полный путь
«incomplete-dir»: «/var/lib/transmission-daemon/Downloads» — указываем папку в которой будут храниться не докачавшиеся файлы, у меня /media/torrent/downloads
«incomplete-dir-enabled»: false — указываем true что бы хранить скачавшиеся файлы отдельно
«rpc-authentication-required»: true — меняем на false для отключения авторизации по логину и паролю, это пожеланию
«rpc-host-whitelist-enabled»: true — меняем на false для отключения использования «белого списка ip-адресов»
«rpc-username»: «transmission» — указываем логин для авторизации
«rpc-whitelist-enabled»: true — опять-таки отключаем авторизацию по разрешенным ip-адресам меняя true на false соответственно
И запуск transmission
и захожу в web-панель transmission по ip-адресу и порту 9091, у меня это 192.168.31.5:9091
web-интерфейс transmission
transmission почти готов теперь настрою проксирование через NGINX
Установка NGINX и настройка проксирования
Я поставил весь nginx, но в теории достаточно и самого пакета nginx
После установки проверю, работает ли веб сервер зайдя на ip-адрес машины
Приветственное сообщение от Nginx
Теперь выполню настройку nginx. Все конфигурационные файлы находятся в /etc/nginx/* . Для начала я удалю все лишнее из файла /etc/nginx/nginx.conf и приведу его к такому виду
И создам файл /etc/nginx/sites-enabled/home.conf с базовым содержимым
Немного объясню файл. listen 80 указываем на каком порту будет слушаться сайт, root /var/wwww/home я создал папку от имени root и поместил туда простую страницу html взятую из интернета для проверки как будет все работать.
html страница скачанная из интернета
Так же я добавил строку 192.168.31.5 home.ru в рабочей машине в файл /etc/hosts для того что бы сайт мог открываться в браузере с рабочей машины по адресу home.ru что и указал в файле home.conf server_name home.ru
Настройка проксирования transmission-daemon через nginx
NGINX вообще мощная фигня, и для того что бы открывать web-панель transmisson через http://home.ru/transmission/ его будет более чем достаточно. Все правки я буду делать в файле /etc/nginx/sites-enabled/home.conf для начала добавлю новый location и в нём укажу что бы он проксировал запрос с home.ru/transmission/ на 127.0.0.1:9091
блок location для transmission
Перенаправление пошло, но вот только transmission жалуется на отсутствие хедера X-Transmission-Id . Немного поковырявши хедеры, так же добавив 2 блока location мне удалось завести transmission. Вот полный файл конфигурации
полный файл home.conf
Написание скрипта
Так сложилось, что у меня телевизор Samsung толком не воспроизводит видео в формате avi, а если и воспроизводит то как то криво. Нельзя перемотать, длительность фильма такая — что люди стока не живут, да и самое неприятное заключается в том что посреди фильма он может просто оборваться. А вот формат mkv он ест нормально. И поэтому я решил написать небольшой скрипт на bash который будет запускать сам transmission-daemon после загрузки файла. Немного подумав над логикой и посмотрев как качаются разные файлы, выстроил себе цепочку действий. Во-первых надо понять, скачалась папка или файл. Если папка, то создать такую же папку в директории для DNLA сервера, если файл, то пропускаем. Возвращаемся к папке, теперь смотрим на содержимое папки, если файлы avi то конвертируем их через ffmpeg в конечную папку, если в папке файлы mkv то просто перемещаю их, но если там то-то другое, просто кидаю в /tmp для дальнейшего анализа. Теперь возвращаемся к началу скрипта, если же это не папка, а файл то, смотрим на формат и при необходимости конвертируем. Вроде ничего сложного, вот сам скрипт
Скрипт далек от идеала, может потом его доработаю под собственные нужды, например что бы скачанные файлы .iso перемещались сразу в папку для шаринга. Так же он отправляет в телеграм уведомление о загруженном файле, и если есть ошибки, он тоже об этом сообщит. Скрипт писал на быструю руку, и он не проходит по вложенным папкам, если будет в этом необходимость то его поправлю. На данный момент он выполняет то что мне и надо. После того как скрипт написан, и я определился с конечными папками, перемещаю скрипт к transmission
даю скрипту права на исполнения
и меняю владельца
После останавливаю transmission-daemon
и меняю 2 параметра в /etc/transmission-daemon/setings.json
done-enabled перевожу на true, то-есть включаю активацию скрипта по окончанию загрузки, а done-file указываю полный путь к файлу, можно указать только название файла если файл лежит в папке transmission, но мне легче указать полный путь.
Установка медиа сервера
В качестве медиа сервера DNLA я выбрал minidlna. Ставится из репозитория ubuntu, прост в настройке.
Файл конфигурации находится /etc/minidlna.conf , я в нем внес несколько правок, а именно, указал где находятся медиаконтент
Указал где хранить базу данных файлов minidlna
Указал куда писать логи
и указал имя сервера
и в конце перезапустил сервер
И получил результат
Напоследок
Писать о том как я настроил временно samba не буду. Есть очень много мануалов в котором все описано куда лучше, чем смогу описать я, но хочу поделится несколькими мыслями на будущие) Целый комп для этого излишнее, тем более у меня есть роутер с прошивкой OpenWRT на котором можно все это реализовать, но жена мне раз дала идею сделать мониторинг цен. Я такое уже делал, написал небольшой скрипт на bash который парсил страницу, брал оттуда название товара, картинку и цену. Скрипт запускался через cron. Идея неплохая, но для каждого сайта необходимо делать свой шаблон. И скорее всего сайты по типу Wildberries при авторизации будут показывать другую цену. Идею думаю реализовать на C++, которые будут брать ссылку для просмотра из БД и смотреть на цену. Если цена записанная в БД будет больше, то отправлять сообщение в том же телеграме о том что на такой-то товар ценна изменилась. Да и для разных экспериментов и обучения можно поднимать сервере виртуальную машину и её ковырять. Так же есть идея реализовать некую запись телепередач. У нас нет обычного телевидения, есть всего 1 канал XD, и жена смотрит несколько передач. Думаю просто настроить запись их в тот же медиа сервер. Но все это планы, желание на исполнения не много.
Я впервые пишу такой длинный текст, и вообще в первые куда-то пишу по мимо личных сообщений. Не судите строго.
Источник