Logitech media server настройка

Продолжаем записи об Orange Pi Zero. После фиаско сделать из старого WIFI роутера интернет-радио проигрыватель, я решил пойти по пути зарубежных гиков — Logitech Media Server и SqueezeLite.

LMS представляет собой бесплатное, кроссплатформенное серверное ПО позволяющее читать все известные аудио-форматы и транслировать звуковой поток по сети на СОВМЕСТИМЫЕ плееры. На официальном сайте есть сборки под все популярные ОС: win, linux и mac. Вся настройка сервера осуществляется через web морду. Для того чтоб заставить LMS отдавать и проигрывать поток на самого себя, а не по сети, Adrian Smith и Ralph Irving написали специальный плеер-клиент SqueezeLite. Помимо этого, существует тонны бесплатных клиентов под win, linux, mac и android. С одного сервера можно раздавать свою музыкальную коллекцию на кучу устройств!

Как всегда загружаем PuTTY, устанавливаем SSH соединение на порту 22 и создаем папку sources и ныряем в нее:

# sudo mkdir sources
root@orangepizero:

Качаем стабильную версию Logitech Media Server под Debian от Armbian в текущий каталог, то есть sources. Заменив хттп на http:

# sudo wget хттп://downloads.slimdevices.com/Logitec hMediaServer_v7.9.1/logitechmediaserver_ 7.9.1_arm.deb

Устанавливаем Logitech Media Server :

# sudo dpkg -i logitechmediaserver_7.9.1_arm.deb

Если во время установки появились ошибки, смотрите UPD в конце статьи.

Теперь надо дать Logitech Media Server права на использование аудио оборудования:

# sudo usermod -a -G audio squeezeboxserver

Настроить общий уровень громкости и оключить микрофон можно в ALSA микшере:

Для того чтоб новые настройки громкости не пропали поле reboot сохраняем их:

# sudo alsactl store

Устанавливаем кодеки: flac, vorbis, aac, mpeg layer I/II/III:

# sudo apt-get install -y libflac-dev libvorbisfile3 libfaad2 libmad0

В веб-браузере открываем соединение с Logitech Media Server на порту 9000. В моем случае это выглядит так:

Заводить учетную запись не обязательно, просто будут недоступны некоторые сомнительные плюшки. Чтоб не затереть флешку до дыр отключаем логирование. Идем в Advanced -> Logging и гасим всех.

Укажите папку для плейлистов и радиостаниций в Basic Settings -> Playlists Folder. Логичнее всего для этого подходит папка /media. Если *.m3u не сохраняются дайте больше прав папке:

# sudo chmod 777 /media

Поиск выдает кучу копи-пасты с трудным и нудным способом установки SqueezeLite через Linux команды и непонятные репозитории. Зачем? SqueezeLite уже давно ставится через LMS веб морду, но информиции об этом в интернете нет. Пришлось потратить неделю, чтоб разобраться со всеми тонкостями. Идем в Settings -> Plugins и ставим галочку на против Local Player и нажимаем Apply.

Чтоб Logitech Media грузился быстрее деактивируем ненужные плагины.

Для того чтобы изменения вступили в силу надо перезапустить LMS:

# sudo service logitechmediaserver stop
root@orangepizero:

# sudo service logitechmediaserver start

Обвновляем страницу, жмем Settings напротив Local Player и попадаем на страницу:

Выбираем squeezelite-armv6hf и ставим галочку напротив Start Player With Server, жмем Apply. Все, настройка завершена. Теперь, на главной странице, в поле Tune In URL вводим адрес потока. Например Новозеландской Общественной Радиостанции:

И наслаждаемся, самобытным акцентом.

Как вы уже поняли, управляется Logitech Media Server и SqueezeLite через браузер с любого устройства подключенного к тому же роутеру что и Orange Pi Zero. Для андроида есть куча бесплатных приложений делающих то же самое, но заточенных под сенсорный экран. Например Squeezer.

Во время проигрывания стрима, работают 2 из 4 ядер, на частоте 240МГц с нагрузкой 4%-10%. Средняя температура камня — 45 градусов. Потребляемая мощность Апельсина с подключенными Edifier R12U — 4..5 Ватта.

В третьей части читайте как подключить внешний винт или флешку с вашей музыкальной коллекцией. Оказывается в Linux нельзя просто так взять, вставить USB носитель и начать с ним работать. Красноглазики такие красноглазики.

UPD: для всех кто поставил LMS v 7.9.0 советую обновиться до 7.9.1 командой:

# sudo dpkg -i /var/lib/squeezeboxserver/cache/updates/l ogitechmediaserver_7.9.1_arm.deb

Если во время обновления полезли ошибки:

dpkg: dependency problems prevent configuration of logitechmediaserver
:logitechmediaserver depends on libio-socket-ssl-perl;
however:Package libio-socket-ssl-perl is not installed.
.

Произошло это потому что dpkg умеет устанавливать только конкретный logitechmediaserver_7.9.1_arm.deb и не будет устанавливать дополнительный libio-socket-ssl-perl пакет указанные в списке зависимостей внутри .deb файла. У красноглазиков есть отвертка и на этот случай — продвинутый метод apt-get. Это система управления пакетами/Package Management System, которая обрабатывает установку пакетов .deb в дистрибутивах на основе Debian. Позволяет легко решать проблемы с dpkg. Обновим ядро и пакеты:

Читайте также:  Программа для записи трека gps

# sudo apt-get update
root@orangepizero:

# sudo apt-get dist-upgrade

Cистема управления пакетами найдет ошибку и предоложит решение:

logitechmediaserver : Depends: libio-socket-ssl-perl but it is not installed
You might want to run ‘apt-get -f install’ to correct these

Останавливаем LMS и запускаем фикс:

# sudo service logitechmediaserver stop
root@orangepizero:

На всякий случай переустанавливаем LMS заново:

# sudo dpkg -i /var/lib/squeezeboxserver/cache/updates/l ogitechmediaserver_7.9.1_arm.deb

Если обновление прошло успешно, установочный пакет можно удалить командой:

Несмотря на широкие возможности штатного программного обеспечения сетевых накопителей QNAP а также огромному набору предлагаемых дополнительных модулей, иногда возникает необходимость в реализации еще каких-нибудь специфических сервисов. Здесь может пригодиться реализованная в некоторых моделях среднего и верхнего сегментов поддержка систем виртуализации. В этой статье я расскажу о запуске на QNAP сервера Logitech Media Server, который является удобной и достаточно популярной альтернативой DLNA для обслуживания музыкальных коллекций уже на протяжении долгого времени и пользователи сервиса заинтересованы в продолжении работы с ним, в частности, из-за тщательно созданных и оформленных медиабиблиотек и плейлистов.

В реальности дело буквально на несколько минут, однако удобство работы с контейнерами «легкой виртуализации» Docker через Web-интерфейс и полнота документации по ним очень далеки от идеала. К сожалению, эта ситуация часто встречается в созданных индивидуальными разработчиками решениях, которые они делают «для себя». Так что привыкшим к окошкам Windows пользователям бывает очень непросто разобраться. К счастью, для рассматриваемого сценария все не так плохо.

Для написания заметки использовался достаточно специфический сетевой накопитель QNAP TBS-453A, о котором я уже рассказывал пару раз (см. Знакомство и Использование HDMI). Но схема будет работать и с другими моделями QNAP, в которых реализована поддержка Docker. Да и не только с ними, поскольку встроенный Docker сегодня встречается не только у этого производителя.

Стоит сказать пару слов об этой технологии. В определенном смысле этот сервис предлагает аналогичные традиционным виртуальным машинам возможности. Однако вместо реализации полноценной операционной системы он работает по комбинированной схеме – основой выступает штатная операционная система хоста (в нашем случае это Linux в QNAP QTS), а само приложение, выполненное в виде готового пакета-контейнера «интегрируется» в эту ОС и разделяет часть ее ресурсов. В частности это означает, что речь в данном случае может идти только о приложениях для Linux. Плюсом такого подхода является экономия ресурсов, поскольку все контейнеры используют одну ОС, а минусом будет снижение свободы/гибкости самого контейнера.

При настройке контейнера обычно нужно настроить пару ключевых параметров. Первый отвечает за реализацию вашего доступа к файлам контейнера (например, конфигурации) и его доступа к ресурсам на сетевом накопителе (в нашем случае – медиабиблиотеке). Это осуществляется настройкой пар соответствия «внутренних» папок контейнера и директорий на сетевом накопителе. Вторая группа параметров отвечает за реализацию сетевого доступа из вашей локальной сети к сервисам устанавливаемого контейнера. Обычно можно использовать аналог трансляций портов в роутере или выдать контейнеру собственный IP-адрес. Как раз это и потребуется настроить в нашем случае.

Первый подготовительный этап включает в себя установку на сетевой накопитель Container Station через App Center и создание папки для хранения рабочих файлов LMS. Последняя в общем случае может располагаться в любой директории сетевого накопителя, я просто сделал отдельный общий ресурс с именем lms. Если вы планируете использовать много контейнеров, возможно стоит сделать папку docker и уже в ней разместить все остальные. Установка каких-то специфических прав не требуется, но если хотите иметь доступ к ручному редактированию файлов конфигурации сервера, можете выделить себе права на эту папку.

Для хранения музыки создадим папку Music и запишем в нее несколько альбомов. Поскольку LMS работает в виртуальной среде, вам потребуется настраивать «проброс» папок с сетевого накопителя к нему. То есть удобнее хранить все музыкальные композиции в одном месте, но особых проблем с подключением нескольких папок к сервису конечно нет.

Далее заходим в Container Station и на странице «Создать контейнер» вводим в поле поиска слово Logitech. Эта операция осуществляется по официальному каталогу контейнеров Docker и результатов может быть много. В моем случае – целых две дюжины. Но остановимся на первом, который называется larsks/logitech-media-server/, где первое слово означает автора. Нажимаем кнопку «Установить» около него. Далее выбираем последнюю версию (latest) и внимательно читаем информацию о том, что пакет не является разработкой QNAP и компания за него (включая работоспособность, безопасность, поддержку и т.п.) не отвечает.

На следующем экране оставляем все как есть, потом прокручиваем ниже и выбираем «Дополнительные параметры».

Читайте также:  Все 2 подключить второй номер

Здесь идем на вкладку «Сеть» и меняем значение «Сетевой режим» на «Bridge». Если в вашей сети не используется автоматическая выдача IP-адресов роутером, то здесь же можно назначить постоянный адрес для сервера LMS. Выбор такого режима позволяет не устанавливать отдельные правила для портов и даже реализовать на одном сетевом накопителе работу сразу нескольких серверов. Ценой будет еще один потраченный IP-адрес, что обычно не проблема, и открытость всех портов контейнера, что в домашней локальной сети обычно также не критично с точки зрения безопасности. Кроме того, именно здесь стоит в параметре «Имя узла» указать желаемое имя сервера, которое будет показываться в плеере.

Теперь переходим на «Общие папки» и настраиваем в группе «Том из узла» две записи – для рабочих файлов /lms на /srv/squeezebox и для музыкальных записей от /Music на /srv/music. Права оставляем «Чтение/Запись». Если музыкальных каталогов в NAS у вас больше, то здесь нужно добавить их все. Например /MusicHRA на /srv/musichq. Обратите внимание, что все придуманные имена в пункте «Точка подключения» должны быть разные.

Теперь нажимаем кнопку «Создать» и смотрим статус выполняемых работ по значку в верхнем правом углу.

После завершения у вас в левом столбце будет новая запись. Щёлкнув на нее можно посмотреть статус работы сервиса.

Собственно на этом настройка самого сетевого накопителя закончена. Далее обращаемся к интерфейсу медиасервера LMS для последнего этапа. Поскольку мы выбрали режим Bridge для сетевого интерфейса, то он имеет собственный IP адрес, который нужно узнать (если его не назначали постоянным). Варианта здесь минимум два – можно просто пойти в сетевое окружение Windows и там в разделе Media Devices увидеть наш сервер, потом щелкнув на нем два раза попасть в его Web-интерфейс.

Второй вариант – на сетевом накопителе открыть контейнер (см. иллюстрацию выше), нажать кнопку «Терминал» в верхнем правом углу, в открывшемся окошке ввести команду ifconfig и посмотреть на вторую строку ответа – после inet addr будет указан нужный адрес. Далее открыть его в Web-браузере с указанием порта 9000, ссылка будет выглядеть так: http://192.168.1.8:9000, где вместо 192.168.1.8 ставите ваш адрес.

Поскольку подразумевается, что с настройкой LMS читатель знаком, то обратим внимание на единственный существенный в данной схеме параметр – выбор папки (папок) с музыкой. Напомним, что ранее мы создали соответствие с /Music на сетевом накопителе и /srv/music внутри контейнера. Как раз второй путь и нужно выбрать на странице «Основные настройки» в LMS (или во время прохождения мастера настройки).

Поскольку аппаратного плеера у меня нет, то используем программный вариант – SqueezePlay. После сканирования медиабиблиотеки сервером, она будет сразу же доступна в плеере.

Как мы видим, существенных сложностей для реализации описанной схемы музыкальных трансляций на базе Logitech Media Server и сетевого накопителя QNAP нет. Однако по собственному опыту с другими контейнерами могу сказать, что с LMS мне просто повезло. За формальной простотой инструкций вида «установить и запустить» скрывается много подводных камней. Для большинства, особенно для более сложных, проектов вам потребуется сначала внимательно разобраться с тем, какие порты использует сервис, в каких файлах сохраняется его конфигурация, какие и где программа создает рабочие или временные файлы, как она взаимодействует с другими внешними сервисами. По сравнению с готовыми пакетами QTS, работа с контейнерами Docker заметно более сложная. Зато их число практически неограниченно, а при наличии необходимости, опыта и времени вы можете создать и собственные модули.

По специфике работы мне часто приходится давать советы профессиональным инсталляторам, каким образом решить ту или иную задачу при создании системы домашней автоматизации.


Проект Tobias на основе HiFiBerry

Один из вопросов, удивляющих своим постоянством — как организировать музыкальную систему на объекте таким образом, чтобы было легко включить её в единый интерфейс управления домом, наравне с освещением, климатом и другими системами. Вспоминая, что сам в первый раз делал это с большими сложностями и ошибками, я решил описать этот процесс подробнее для всех интересующихся.

Первый совет здесь, обычно — используйте Sonos (и готовые модули). Если у вас KNX — ставьте Amati от Evika (модуль) или Trivium (и модуль). И если инсталлятора/заказчика это устраивает — с точки зрения бюджета и взаимодействия с остальной системой — вопросов почти не остается. Нередко случается, что эти решения по какой-либо причине не подходят, есть усилители, но нужно подключить к ним правильный источник. Ну и много систем умного дома, у которых хорошие решения для освещения, климата, безопасности, но музыкальная система отсутствует/оставляет желать лучшего, требует дополнения хорошей сетевой библиотекой (Z-Wave, HDL, LonWorks и многие другие).

Читайте также:  Nvvhci enumerator что за устройство

Здесь первой мыслью приходит в голову попробовать использовать компьютеры с iTunes или другим ПО для создания мультимедиа библиотеки (и соответствующие модули). В основном это тяжелые решения, каждое из которых имеет недостатки или заточено под другие задачи. Например iTunes довольно закрыт, постоянно меняется, подходит только для любителей Apple и не поддерживает .flac.

На моей практике, пока лучше других зарекомендовало себя решение на основе бесплатного программного пакета Logitech Media Server.

До 2012 года Logitech производила устройства Squeezebox, работавшие с этим медиа-сервером, но уже три года как прекратила это делать, а платформа превратилась в бесплатное ПО, распространяемое на условиях GNU General Public License. То есть железо нашего аудио-источника мы можем выбирать сами, а оно каждый день все лучше и дешевле.

  • бесплатное и чисто программное решение
  • поддержка интернет радиостанций
  • поддержка обложек
  • поддержка библиотеки iTunes
  • поддержка .flac и HiRes 24bit/96kHz (да-да, работает)
  • онлайн радио
  • можно дополнительно установить программный приемник AirPlay и DLNA

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

В интерфейсе управления домом раздел аудиобиблиотеки будет выглядеть примерно так, если вы будете использовать стандартный драйвер:

Или так, если вы будете использовать дополненный драйвер.

Что нужно сделать, чтобы это работало?

Идем на сайт и скачиваем Logitech Media Server. Есть версии для OSX, Windows и Linux, включая популярные NAS. Чаще всего устанавливают именно на NAS.

Устанавливаем, указываем серверу папку с музыкой и другие данные — импортировать ли iTunes, учетная запись на www.mysqueezebox.com и т.д.

На этом этапе можно все попробовать, используя свой компьютер в качестве плеера, запустив ярлык SqueezePlay.

Дальше — самое важное, нужно выбрать плееры. Здесь есть варианты, предполагающие различную степень кастомизации:

Вариант 1 (проще):

Очень общая схема того, что у нас получится будет выглядеть так:

Приставка на Android, лично мне нравятся варианты с оптическим выходом. Как вариант — CX-S806, у нас продается под разными марками, включая Rubox. Можно использовать любой аналог, предварительно самостоятельно его протестировав — далеко не все устройства играют хорошо.

Ставим на нее приложение Squeeze Player (174 руб.) и опционально Air Receiver (94 руб.), который к LMS отношения не имеет, просто дает нам дополнительные потоковые функции. Задаем простые настройки при первом запуске.

Чтобы все это запускалось автоматически при старте — ставим AutoStart .

Получаем источник, который можно подключить к внешнему усилителю через низкочастотный или оптический выход, воспроизводящий файлы из музыкальной библиотеки, AirPlay или DLNA. Работать он будет через WiFi или Ethernet, при перезапуске сохранять свою функциональность. Но не забывайте, что если адрес вашего сервера или настройки сети поменяются, придется зайти в приложение Squeeze Player и указать новый адрес.

Вариант 2 (он обычно и дешевле, и сложнее — здесь можно получить более высокое качество звука, а также встроенный усилитель):

Некоторые из лучших инсталляторов, например мой хороший друг Bogdan Dragoi из Румынии, предпочитают именно это решение (здесь он демонстрирует его в интерфейсе Moonlite).

Берем Raspberry Pi. Встроенный звук здесь ни к черту, поэтому ставим дополнительный DAC. Там же можно купить увеличенный корпус, чтобы обе железки поместились в один. Если нужен усилитель — они его тоже производят (Amp). Не забудьте, что стоимость увеличится за счет доставки — в России из этого вы найдете только саму Raspberry Pi.

Ставим бесплатный PiCorePlayer, настриваем через веб-интерфейс и получаем готовый аудио источник со всеми плюшками Squeezebox.

Если не нужно дополнительных функций, то с любого устройства можно будет подключиться к LMS по порту 9000 (например локально 127.0.0.1:9000) и управлять с веб-страницы.

Если же необходимо получить управление аудио-системой из единого интерфейса для умного дома — используем готовый модуль iRidium mobile:

Скачать его можно здесь , а открыв в редакторе — перенести в нужный проект. Примерно так: