← Back

ServerMedia

🎬 ServerMedia

ServerMedia — лёгкий Node.js сервер для вывода контента из OpenLP на экран трансляции и стрим‑оверлей.

Приложение автоматически получает текущий активный слайд из OpenLP (песни или Библия) и отображает его на веб‑странице в формате 4K (3840×2160).
Если текст не активен — показывается фоновая заставка.


✨ Возможности

✅ вывод песен из OpenLP
✅ вывод стихов из Библии
✅ отдельная страница для стрим‑оверлея
✅ автоматическое переключение при смене слайда
✅ fallback экран при отсутствии текста
✅ WebSocket подключение к OpenLP
✅ обновление экрана без перезагрузки (SSE)


🧠 Как это работает

ServerMedia подключается к OpenLP через:

  • WebSocket — состояние сцены
  • HTTP API — активный элемент и текст

После этого сервер:

1️⃣ получает текущий live‑item
2️⃣ определяет режим (show / blank / theme / desktop)
3️⃣ проверяет тип контента (song / bible / другое)
4️⃣ генерирует HTML экран
5️⃣ отправляет обновление клиентам через SSE (EventSource)


📁 Структура проекта

ServerMedia
│
├── server.js
├── song.js
├── bible.js
├── stream.js
│
├── inactive_bg.png
├── bible_bg.jpg
│
└── package.json
Файл Назначение
server.js основной сервер
song.js рендер песен
bible.js рендер стихов
stream.js стрим‑оверлей

⚙️ Требования

  • Node.js 18+
  • OpenLP с включённым API

🚀 Установка

Скачать проект:

ServerMedia.zip

Установить зависимости:

npm install ws

▶️ Запуск

node server.js

После запуска сервер будет доступен:

http://localhost:65100/

Страница для стрима:

http://localhost:65100/stream

🔧 Настройка

Можно использовать переменные окружения.

Переменная Значение по умолчанию
PORT 65100
OPENLP_HOST 192.168.50.39
OPENLP_HTTP_PORT 4316
OPENLP_WS_PORT 4317
OPENLP_POLL_MS 200
FALLBACK_BG_FILE inactive_bg.png

Пример запуска:

PORT=65100 OPENLP_HOST=192.168.50.39 node server.js

🖥 Основные страницы

Главный экран

http://localhost:65100/

Показывает:

  • песни
  • стихи
  • fallback экран

Страница стрима

http://localhost:65100/stream

Прозрачная страница для OBS / vMix.

Показывает только:

📖 стих Библии


🖼 Фоновые изображения

Fallback экран:

inactive_bg.png

Используется если:

  • режим blank
  • режим theme
  • активный элемент не текст

Фон Библии:

bible_bg.jpg

Доступен через:

/bg

🔄 Поток данных

OpenLP
│
├─ WebSocket (state)
│
├─ HTTP API
│
└─ ServerMedia
      │
      ├─ Main screen (/)
      │
      └─ Stream overlay (/stream)

📡 SSE обновления

ServerMedia использует Server‑Sent Events.

Endpoint:

/events

Клиенты получают события:

  • screen
  • live

Это позволяет обновлять экран без перезагрузки страницы.


🎥 Использование в OBS или vMix

Добавить Browser Source:

http://SERVER_IP:65100/stream

Рекомендуемые настройки:

Resolution:

3840x2160

Background:

Transparent

📜 Лицензия

Free for church streaming use.