Об этом проекте

NymphCast — это программное решение, которое превращает выбранное вами оборудование в источник аудио и видео для телевизора или активных колонок. Оно обеспечивает потоковую передачу аудио и видео по сети с клиентского устройства или медиасервера, а также потоковую передачу интернет-медиа на сервер NymphCast, управляемый клиентским устройством или напрямую на приёмнике. Сервер поддерживает приложения NymphCast (в настоящее время в предварительной версии), написанные на AngelScript, для расширения функциональности, например, поддержку сторонних протоколов потоковой передачи аудио/видео на стороне сервера и настраиваемые пользовательские интерфейсы в клиентском приложении. NymphCast требует клиентское устройство во всех режимах, кроме режима GUI («Smart TV»). Серверное приложение (приёмник) работает на целевом устройстве, а клиентское устройство функционирует как пульт дистанционного управления. Базовая функциональность на стороне клиента обеспечивается библиотекой NymphCast. ## Сценарии использования - **NymphCast Audio**: режим приёмника только для аудио с профилем `nymphcast_audio_config.ini`. - **NymphCast Video**: режим приёмника для аудио и видео с профилем `nymphcast_video_config.ini`. - **NymphCast ScreenSaver**: как режим видео, но с заставкой на основе изображений, когда контент не воспроизводится, с использованием `nymphcast_screensaver_config.ini`. - **NymphCast GUI**: как режим видео, но с включённым автономным режимом GUI (smart TV) (экспериментально), с использованием `nymphcast_gui_config.ini`. ## Сетевые порты Сервер NymphCast использует UDP-порт 4004 для обнаружения и TCP-порт 4004 для воспроизведения. Системы, работающие с NymphCast MediaServer, также должны иметь доступные UDP и TCP порты 4005. Убедитесь, что эти порты внесены в белый список в правилах брандмауэра, если это применимо. ## Возможности и статус - **Потоковая передача файлов** (100%): потоковая передача медиафайлов с клиента на сервер. - **Субтитры и потоки** (75%): поддержка выбора субтитров и потоков; поддержка встроенных растровых (например, PGS) субтитров. Текстовые и внешние субтитры будут добавлены в v0.2. - **Многокомнатная передача** (85%): синхронизированное воспроизведение в нескольких комнатах (экспериментально в v0.1). - **MediaServer** (100%): потоковая передача с экземпляров NymphCast MediaServer. - **URL-потоковая передача** (100%): потоковая передача по URL-адресам. - **Поддержка кодеков** (100%): поддержка всех кодеков, поддерживаемых ffmpeg. **Экспериментальные функции:** - **SmartTV** (75%): автономный режим GUI с интегрированным GUI на основе EmulationStation. - **Приложения** (25%): приложения на основе AngelScript с реализациями CLI и HTML-интерфейса. - **Локальные медиа** (25%): воспроизведение локальных медиа с базовой реализацией в v0.2-alpha0. ## Экосистема NymphCast - **NymphCast Server**: приёмник для клиентов. - **LibNymphCast**: библиотека для разработки клиентов NymphCast. - **NymphCast Client**: клиент на основе CLI. - **NymphCast Player**: графический клиент на Qt и эталонная реализация SDK. - **NymphCast MediaServer**: серверное приложение для предоставления медиаконтента клиентам. ## Поддержка платформ Клиент NymphCast Player был скомпилирован и использовался на Windows (7, 10), Linux (x86, ARM: Arch, Debian), Android (8+), FreeBSD (14.1) и Haiku (R1 Beta 5). Сервер работает на любой платформе, поддерживаемой инструментарием C++17 и зависимостями LibPoco и ffmpeg, включая Windows, MacOS, Linux и BSD. Протестированные платформы включают x86_64 Windows, Linux, FreeBSD, Haiku, Raspberry Pi 4 (до 1080p при 24 FPS h.264) и другие с различной поддержкой аппаратного ускорения. ## Начало работы Чтобы начать использовать NymphCast, вам понадобится устройство для сервера (вероятно, SBC или система Linux). Релизы доступны на GitHub, с пакетами для FreeBSD, Alpine Linux и PostmarketOS. Также доступны предварительно скомпилированные бинарные файлы для Android и Windows. Серверный бинарный файл можно запустить с флагом конфигурации, например, `./nymphcast_server -c nymphcast_audio_config.ini`. Сервер прослушивает все сетевые интерфейсы и поддерживает такие опции, как `-v` для вывода версии. ## Сборка из исходного кода Инструкции по сборке предоставлены для сервера и плеера в папке `doc/`. Репозиторий содержит исходные коды сервера, клиентского SDK и клиента NymphCast Player. ## Руководство разработчика Разработка сосредоточена на сервере и протоколе. Сторонним лицам рекомендуется вносить вклад в поддержку серверных приложений. Документация размещена на сайте Nyanko. ## Лицензия NymphCast полностью открыт под лицензией BSD с 3 пунктами. Проект полагается на пожертвования через Ko-Fi или прямые пожертвования для поддержки дальнейшего развития.