Skip to content

urstark/NovaStream

Repository files navigation

NovaStream

A powerful, offline-capable browser media player with cinematic glassmorphism design.

Stream direct URLs, play large local MKV files with advanced HEVC hardware decoding, and convert subtitles on the fly with a sleek, theater-grade interface.

Node.js React GPL 3.0 FFmpeg

✨ Features

  • Direct MKV Proxy Streaming: Seamlessly stream remote MKV files right within the browser without having to download them completely.
  • Zero-Latency HEVC/H.264 Handling: Native support for high-efficiency video coding. Hardware decoding for crisp, lag-free playback.
  • Offline Capability: Directly stream large local files from your server or through the browser sandbox.
  • On-the-fly Transmuxing: Real-time conversion of MKV containers using FFmpeg backend integration. Supports real-time HEVC to H.264 transcoding fallback.
  • Subtitle Parsing & Track Switching: Automatically converts standard SRT subtitle files to WebVTT on the fly. Switch between multiple embedded audio tracks effortlessly.
  • Cinematic Theater Mode: An immersive, auto-hiding UI wrapped in a premium Glassmorphism design language.
  • Real-Time Telemetry: Monitor bandwidth speed and buffer health instantly with the built-in speedometer.

🛠️ Tech Stack & Architecture

  • Frontend: React 19, Vite, Lucide Icons. Pure custom CSS for dynamic cinematic and glassmorphic aesthetics.
  • Backend: Node.js, Express.js. Handles URL probing, CORS bypassing, direct stream proxying, and spawns FFmpeg processes for real-time transmuxing.
  • Transmuxer Engine: FFmpeg is utilized to map video and audio streams seamlessly to browser-compatible fragmented MP4.

Check out our STRUCTURE.md for a detailed breakdown of the codebase and file structure.


🚀 Deployment & Installation

NovaStream can be deployed natively using Node.js or easily containerized with Docker.

Prerequisites

  • Node.js (v18+)
  • FFmpeg installed and available in the system PATH.

Standard Node.js Setup

  1. Clone the repository:

    git clone https://github.com/urstark/NovaStream.git
    cd NovaStream
  2. Install dependencies:

    npm install

    (Note: For development, use npm run dev to start concurrently)

  3. Build the Frontend:

    npm run build
  4. Start the Server:

    npm start

The application will be running on port 7860 (or process.env.PORT).

Docker Setup

docker build -t novastream .
docker run -p 7860:7860 novastream

👨‍💻 Developer Credits


⚖️ License

NovaStream is open-source software licensed under the GPL-3.0 License. See the LICENSE file for more details.

About

NovaStream is a powerful, offline-capable browser media player. Stream direct URLs, play large local MKV files with advanced HEVC hardware decoding, and convert subtitles on the fly with a sleek, theater-grade interface.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Contributors

Languages