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
Клиенты получают события:
screenlive
Это позволяет обновлять экран без перезагрузки страницы.
🎥 Использование в OBS или vMix
Добавить Browser Source:
http://SERVER_IP:65100/stream
Рекомендуемые настройки:
Resolution:
3840x2160
Background:
Transparent
📜 Лицензия
Free for church streaming use.