Стрим с mpd на смартфон или вся музыкальная коллекция в кармане

в 9:12, , рубрики: android, linux, mpd, music, Stream, Ubuntu, Песочница, Работа со звуком, метки: , , , ,

Стрим с mpd на смартфон или вся музыкальная коллекция в кармане
Я любитель послушать музыку в дороге и на работе, при этом накопил немалую коллекцию музыки в lossless на домашнем компьютере. Хочется иметь доступ к музыке не только дома но и на смартфоне. Ограниченная память не позволяет уместить всю мою коллекцию, какими бы картами памяти я ее не расширял. Да и не хочется память на это тратить, ведь есть еще множество вещей которые туда хочется записать. Раньше я старался успеть перед выходом на работу собрать все, что хочется сегодня послушать, переконвертировать это в сжатый формат (я считаю lossless на мобильном устройстве это излишки) и записать на мобильное устройство. Но как всегда не успевал, и зачастую приходилось довольствоваться старым заезженным плейлистом. Потом у меня появился безлимитный мобильный интернет и я совсем забросил «перекидывание» музыки, стал слушать интернет радиостанции. Приходилось постоянно прыгать между станциями, и еще эти диджеи постоянно вклиниваются. И тут мне пришла идея сделать свой персональный стрим, с блекджеком и… всеми вытекающими.
Решено было установить на домашнем сервере mpd, на смартфоне приложение для прослушивания интернет радио и клиент mpc, чтобы на лету выбирать музыку. Если интересно как, прошу под кат.

В этой статье я опишу как это все проделать на сервере под управлением Ubuntu и Android смартфоне.
Сразу перечислю достоинства:

  • Доступна вся музыкальная коллекция
  • Память мобильного устройства свободна
  • Можно выбрать битрейт оптимальный для мобильного устройства и не надо ничего конвертировать

И недостатки:

  • Не у всех есть безлимитный 3G
  • Задержка порядка 5 секунд при перемотке трека (обуславливается размером буфера)
  • Не у всех есть домашний сервер

Последний недостаток может быть оспорен, поскольку не обязательно для этого иметь PC сервер. Все это можно развернуть на домашней точке доступа с подключенным USB HDD, например на TL-MR3020, DIR-320, TL-WR1043ND… и так далее, этот список можно долго продолжать, главное наличие USB порта для подключения HDD и поддержки альтернативной прошивки (OpenWRT, DD-WRT, прошивки от Олега и т.п. Кстати, к точке можно еще подключить USB аудио карту и получить домашний медиацентр). Если будет интерес могу написать подробный how-to по настройки, например на OpenWRT.
Вернемся к основной теме, приступим к настройке на Ubuntu Server 12.04.

MPD

Установим пакет

sudo apt-get install mpd mpc

Далее можно установить кодеки при необходимости.
Теперь конфигурация

sudo nano /etc/mpd.conf

Перечислю только обязательные параметры.

# Каталог с нашей музыкой
music_directory         "/data/music"
# Отвечать на запросы извне
bind_to_address         "0.0.0.0"
# Настройка стрима
audio_output {
        type            "httpd"
        name            "My HTTP Stream"  # Имя
        encoder         "vorbis" # Выбираем кодек
        port            "8123" # Удобный для нас порт
        bitrate         "128" # Битрейт, зависти от наших личных предпочтений и возможностей провайдера
        format          "44100:16:1"
}

Теперь перезапустим демона

sudo service mpd restart

Далее надо обновить музыкальную базу, для этого в одном из терминалов скомандуем

sudo tail -f /var/log/mpd/mpd.log

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

mpc update

Теперь у нас имеется сервер готовый вещать на наше мобильное устройство музыку. Но я предпочитаю не держать открытых портов на сервере (кроме одного), поэтому использую OpenVPN.

VPN

Настройка VPN совершенно не обязательна, это приятная опция придающая большую приватность. Имеется множество статей по настройке VPN сервера. Хочу только сказать, что есть замечательный клиент для Android устройств OpenVPN Settings (требует root, OpenVPN Installer, BusyBox, иногда TUN.ko Installer). Все приложения доступны в Google Play. OpenVPN заработал на всех моих устройствах, правда на некоторых не сразу.

Android

Плавно перейдем к настройки смартфона. Нам потребуется клиент для mpd и «интернет радио» способное добавить в плейлист пользовательский url потока. Все эти приложения есть Google Play, имеется приличный выбор и тех и других. Я сделал выбор в пользу клиента MPDroid, в нем мне понравился интерфейс и XiiaLive™ — Internet Radio. Ради выбрал первое попавшееся с возможностью добавить пользовательский url потока.
Надо сказать, что MPDroid позволяет сам проигрывать стрим, вещаемый mpd, но меня не удовлетворила стабильность (зависания и краши) и задержка при переключение треков. В виду этого сделал выбор в пользу стороннего приложения проигрывателя. Кому то может не понравится, что приходится использовать одновременно две программы, но меня это вполне устраивает. Возможно в будущем улучшат MPDroid и станет возможно слушать исключительно через него.
Настройка этих приложений не вызывает затруднений, для MPDroid при первом запуске выбираем Default connection settengs, вводим адрес сервера в поле Host, Port по умолчанию. Проверяем содержимое библиотеки, ставим проигрываться трек. Теперь запускаем XiiaLive, идем в «любимые», добавить URL, вводим http:\10.0.0.1:8123, где 10.0.0.1 адрес нашего сервера.
Стрим с mpd на смартфон или вся музыкальная коллекция в кармане
Приятного прослушивания, и стабильного соединения.

P.S. Еще можно посмотреть в сторону Google Play Music, они позволяют загружать музыку в облако.

Автор: sixhundredsixtyfive


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js