Медиаплеер для Linux (идеально для архитектуры ARM) с веб-интерфейсом, который воспроизводит мультимедиа на сервере, а не на клиенте.

Я ищу идеальное приложение с открытым исходным кодом для моего следующего проекта умного дома своими руками, этот интерфейс является веб-интерфейсом и воспроизводит мультимедиа на сервере, а не на клиенте. В идеале приложение должно быть независимым от платформы, например, веб-приложение на основе Java, поскольку мой сервер будет либо SBC на базе ARM, либо SBC на базе Intel с Linux в качестве операционной системы. Хранилище может быть любым, вроде ФС или БД, значения не имеет.

Мой вариант использования: когда я открываю «http://my.media.local» в браузере своего телефона и выбираю медиафайл, например аудиофайл для воспроизведения, медиафайл воспроизводится на сервере, а не на моем мобильном телефоне. телефон или в браузере моего мобильного телефона, чтобы звук/видео/изображение выходили с аудио/дисплея моего сервера, а не с аудио/дисплея моего телефона. Очевидно, что он будет иметь другие основные функции, такие как регулировка громкости, эквалайзер и так далее.

Есть ли что-то подобное на рынке? Я нашел несколько медиабиблиотек, но не уверен, как они работают. Любые советы будут приветствоваться.


person ben    schedule 25.10.2020    source источник


Ответы (1)


Потенциальным решением является VLC (https://www.videolan.org/). VLC имеет дополнительный веб-интерфейс, где можно управлять медиаплеером, работающим на сервере. Это очень просто, но воспроизводит аудиофайл. Если вы знаете другие решения, пожалуйста, оставьте другой ответ.

Как включить веб-интерфейс VLC:

  1. Откройте «Настройки» из меню
  2. В левом нижнем углу нажмите «Показать все». Это покажет вам всю конфигурацию VLC
  3. Выберите «Интерфейс»/«Основной интерфейс» из списка.
  4. Отметьте «Интернет»
  5. Выберите «Интерфейс»/«Основной интерфейс»/«Lua» из списка.
  6. Добавьте пароль в разделе «Lua HTTP». Вы будете использовать этот пароль без имени пользователя — да, я не нашел способа установить имя пользователя, но пароль обязателен — для доступа к веб-интерфейсу.
  7. Перезапустите VLC
  8. Откройте браузер с устройства из вашей локальной сети
  9. Введите «http://your_IP:8080» в браузере. Например, http://192.168.1.2:8080
  10. Введите свой пароль, который вы установили на шаге 6., но оставьте имя пользователя пустым.

Я тестировал это с помощью:

  • Сервер: Raspberry PI 3
  • ОС: Raspbian GNU/Linux 10 (бастер)
  • VLC: 3.0.11 Vetinari
    • Works with VLC running as GUI application (/usr/bin/vlc)
    • Работает с VLC, работающим как фоновый процесс (/usr/bin/cvlc/)
  • Звук: Ну, у моего экрана есть какой-то динамик. Звук выходил через HDMI моего RPI
  • Client, where the VLC was successfully controlled from
    • My laptop
    • Мой смартфон

Некоторые плюсы:

  • Бесплатно, с открытым исходным кодом
  • Настройка и запуск просты
  • Интерфейс доступен как для настольных компьютеров, так и для мобильных устройств.

Некоторые минусы:

  • Эквалайзер пока не поддерживается
  • Фронтенд очень простой
  • Громкость не может правильно регулироваться с телефона: не удалось сдвинуть ползунок, но устанавливает громкость в положение, в котором вы нажимаете на ползунок.
  • Телефон: не удается воспроизвести все медиафайлы в папке при нажатии на папку. Он только что воспроизвел первую, поэтому пришлось написать сценарий оболочки для создания файлов списка воспроизведения для каждой папки.
  • Не удалось найти в VLC конфигурацию для изменения порта по умолчанию с 8080 на 80 или на 443 для SSL.

Дополнительные рекомендации по настройке:

  • Файлы веб-интерфейса хранятся в папке /usr/share/vlc/lua/http. Он использует html, json, xml, js, jquery и подобные вещи, поэтому вы сможете настроить его для себя, если вы понимаете основы этих технологий и языков.
  • В веб-интерфейсе есть кнопка, которая показывает все ваши файлы в вашей домашней папке. С его помощью вы можете перемещаться куда угодно, что вызывает проблемы с безопасностью. Ну и не слишком приятно блуждать вдали от своих медиафайлов.
  • Здесь вы можете установить папку по умолчанию: /usr/share/vlc/lua/http/js/controllers.js
#197: dir = dir == undefined ? 'file:///path/to/my/default/folder' : dir;
  • Здесь можно отключить навигацию для перехода к родительской папке вашей по умолчанию (знаю-знаю, но это работает и удобнее таким образом с минимальными усилиями :)): /usr/share/vlc/lua/http/js/common.js
 #79:     if( type == "dir" && name == '..' ) {
 #80:         icon = "Back-48.png";
 #81:         if (dir == "file:///path/to/my/default/folder/..")
 #82:             dir = "file:///path/to/my/default/folder";
 #83:     }
 #84:     else ...
person ben    schedule 26.10.2020