Как составить плейлисты для игроков DLNA?

Одна вещь, которую я заметил, когда я настраивал свой сервер DLNA (minidlna на Debian), это то, что протокол поддерживает создание списков воспроизведения. Я хотел бы воспользоваться этим. Мои вопросы:

  1. В каком формате должен быть плейлист?
  2. Где должен быть расположен сам файл плейлиста относительно музыки?
  3. Если файл будет переименован или перемещен, или теги отредактированы, будет ли список воспроизведения обновляться автоматически?

Мой XBox 360 и интернет-радио поддерживают списки воспроизведения, как и приложение на моем телефоне. Ни одно из моих устройств в настоящее время не поддерживает создание списка воспроизведения. Я надеюсь, что я ясно по этому вопросу

3 ответа

Решение

Я только что установил очень похожую коробку сегодня (Debian, minidlna), и мне пришлось решить некоторые из этих вопросов. В моем случае я использую стерео-ресивер Onkyo в качестве клиента для аудиофайлов и проигрыватель Roku для видео и изображений.

Глядя на ваши вопросы:

В каком формате должен быть плейлист?

Формат файла списка воспроизведения - M3U (см. https://en.wikipedia.org/wiki/M3U). Это может быть создано Windows Media Player и другими подобными инструментами.

Одна из проблем, с которыми вам придется разобраться, состоит в том, что файл M3U, сгенерированный WMP, обычно содержит полный путь к файлу (при условии, что вы установили Samba на коробку Debian, а затем смонтировали свою музыкальную библиотеку как сетевой диск в Windows). Таким образом, файл будет что-то вроде G:\MusicLibrary\Artist\Album\Song.mp3, как Windows знает это. К сожалению, поскольку вы размещаете это в Debian, разделитель каталогов отличается, нет буквы диска и т. Д., Поэтому Debian знает файл как /MusicLibrary/Artist/Album/Song.mp3,

Это не составляет большой проблемы, если вы знакомы с утилитами Unix/Linux, такими как sed редактор. Вы можете легко перевести имя файла из формата Windows в формат Linux. Я использовал WMP для создания списка воспроизведения, FTPd его к Debian, запустил простой sed Команда подстановки для изменения формата имени файла.

Где должен быть расположен сам файл плейлиста относительно музыки?

Я не знаю, есть ли "необходимое" местоположение. Я изначально поместил свои плейлисты в каталог верхнего уровня для моей библиотеки (/MusicLibrary), и это сработало просто отлично. Затем я создал специальный каталог /MusicLibrary/Playlists и поместите плейлист туда. Опять же, все работало нормально.

После создания или перемещения плейлиста мне пришлось принудительно minidlna повторно просканировать мультимедийные файлы.

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

Если я правильно понимаю ваш вопрос, это на самом деле два вопроса. Если файл переименовывается или перемещается, список воспроизведения должен быть обновлен вручную. Если теги редактируются, они содержатся в самом файле MP3, а список воспроизведения указывает на файл MP3, так что с вами все должно быть в порядке. Единственное, что я могу видеть, - это то, что в файле M3U есть опция расширенного формата, которая позволяет хранить в файле M3U длительность песни (мм: сс), исполнителя и информацию о названии. Когда вы создаете список воспроизведения, обычно эта информация извлекается из тегов, которые существуют в то время. Если вы обновите теги, информация в файле M3U не будет обновлена ​​для соответствия.

Всего лишь мои 2 цента... Вы можете сделать то же самое с меньшими проблемами, просто используя свой компьютер с Debian для создания списков воспроизведения. Предполагая, что у вас установлен графический интерфейс рабочего стола, вы можете использовать VLC, чтобы поместить предпочитаемые песни в список воспроизведения, а затем «Сохранить список воспроизведения в файл» в каталоге, доступном для minidlna. Поскольку вы создаете списки воспроизведения в системе Debian, нет необходимости выполнять все преобразования путей к файлам из Windows в Unix.

Следующееsedкоманда удалит абсолютные пути *nix и Windows:

      sed -Ei 's/^\/.*\/|^.*\\//' playlist.m3u

Это может сочетаться сfindкоманда, как показано в следующем скрипте:

      #!/usr/bin/env bash

# This command removes both *nix and Windows absolute paths from all found .m3u playlists.

find . -type f -name '*.m3u' -readable -writable -exec sed -Ei 's/^\/.*\/|^.*\\//' {} \;
Другие вопросы по тегам