About this project
NymphCast is a software solution that transforms your choice of hardware into an audio and video source for a television or powered speakers. It enables streaming of audio and video over the network from a client device or media server, as well as internet media streaming to a NymphCast server, controlled by a client device or directly on the receiver. The server supports NymphCast apps (currently in preview) written in AngelScript to extend functionality, such as third-party audio/video streaming protocol support on the server side and customizable UIs in the client application.
NymphCast requires a client device in all but the GUI ('Smart TV') mode. The server application (receiver) runs on a target device, while the client device functions as a remote control. Client-side core functionality is provided through the NymphCast library.
## Usage Scenarios
- **NymphCast Audio**: Audio-only receiver mode with profile `nymphcast_audio_config.ini`.
- **NymphCast Video**: Audio & Video receiver mode with profile `nymphcast_video_config.ini`.
- **NymphCast ScreenSaver**: Like video mode but with image-based screensaver when not playing content, using `nymphcast_screensaver_config.ini`.
- **NymphCast GUI**: Like video mode but with stand-alone GUI mode (smart TV) enabled (experimental), using `nymphcast_gui_config.ini`.
## Network Ports
NymphCast Server uses UDP port 4004 for discovery and TCP port 4004 for playback. Systems running NymphCast MediaServer also need UDP & TCP ports 4005 reachable. Ensure these ports are whitelisted in firewall rules if applicable.
## Features & Status
- **File Streaming** (100%): Streaming media files from client to server.
- **Subtitles & Streams** (75%): Subtitle & stream selection support; supports embedded bitmap (e.g., PGS) subtitles. Text & external subtitles will be added in v0.2.
- **Multi-cast** (85%): Synchronised multi-room playback (experimental in v0.1).
- **MediaServer** (100%): Streaming from NymphCast MediaServer instances.
- **URL Streaming** (100%): Streaming from URLs.
- **Codec Support** (100%): Supports all codecs supported by ffmpeg.
**Experimental Features:**
- **SmartTV** (75%): Stand-alone GUI mode with EmulationStation-based GUI integrated.
- **Apps** (25%): AngelScript-based apps with CLI and HTML-based GUI implementations.
- **Local Media** (25%): Playback of local media with basic implementation in v0.2-alpha0.
## NymphCast Ecosystem
- **NymphCast Server**: Receiver end-point for clients.
- **LibNymphCast**: Library for developing NymphCast clients.
- **NymphCast Client**: CLI-based client.
- **NymphCast Player**: Graphical, Qt-based client and SDK reference implementation.
- **NymphCast MediaServer**: Server application for making media content available to clients.
## Platform Support
The NymphCast Player client has been compiled and used on Windows (7, 10), Linux (x86, ARM: Arch, Debian), Android (8+), FreeBSD (14.1), and Haiku (R1 Beta 5). The server works on any platform supported by a C++17 toolchain and LibPoco & ffmpeg dependencies, including Windows, MacOS, Linux, and BSD. Tested platforms include x86_64 Windows, Linux, FreeBSD, Haiku, Raspberry Pi 4 (up to 1080p at 24 FPS h.264), and others with varying hardware acceleration support.
## Getting Started
To start using NymphCast, you need a device for the server (likely an SBC or Linux system). Releases are available on GitHub, with packages for FreeBSD, Alpine Linux, and PostmarketOS. Pre-compiled binaries for Android and Windows are also available. The server binary can be started with a configuration flag, e.g., `./nymphcast_server -c nymphcast_audio_config.ini`. The server listens on all network interfaces and supports options like `-v` for version output.
## Building From Source
Building instructions are provided for the server and player in the `doc/` folder. The repository contains the server, client SDK, and NymphCast Player client sources.
## Developer's Guide
Development focuses on the server and protocol. Third parties are encouraged to contribute server-side app support. Documentation is hosted at the Nyanko website.
## License
NymphCast is fully open source under the 3-clause BSD license. The project relies on donations via Ko-Fi or direct donation to support continued development.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.