Skip to content

abkarada/NovaEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

49 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

# NovaEngine – Real-Time P2P Media Engine by NovaSafer

> πŸŽ₯ Ultra-low latency, native media engine for secure peer-to-peer communication.  
> Developed as the core transport layer for the NovaSafer platform (SafeRoom Project).

---

## πŸš€ What is NovaEngine?

NovaEngine is a high-performance C++ media core designed for **real-time, serverless audio/video streaming**.  
It works directly over **UDP**, integrates with NAT traversal (STUN/Hole Punching), and ensures full-duplex, low-latency transmission for decentralized communication.

Built for:
- πŸ” Secure environments
- πŸ•ΈοΈ Serverless P2P systems
- ⚑ Real-time responsiveness (<50ms)

---

## 🧱 Architecture Overview

+-------------------+ UDP +-------------------+
| NovaEngine (Peer) | <-------------> | NovaEngine (Peer) |
+-------------------+ +-------------------+
β–² β–²
🎀πŸŽ₯ Capture 🎀πŸŽ₯ Capture
β”‚ β”‚
πŸ”„ Encode & Packetize πŸ”„ Encode & Packetize
β”‚ β”‚
πŸ“‘ Send UDP πŸ“‘ Send UDP
β”‚ β”‚
πŸ“₯ Receive UDP πŸ“₯ Receive UDP
β”‚ β”‚
🧠 Depacketize & Decode 🧠 Depacketize & Decode
β”‚ β”‚
πŸ”ŠπŸŽ¬ Playback πŸ”ŠπŸŽ¬ Playback


---

## πŸ—‚οΈ Directory Structure

NovaEngine/
β”œβ”€β”€ include/
β”‚ β”œβ”€β”€ packet.hpp
β”‚ β”œβ”€β”€ audio_capture.hpp
β”‚ β”œβ”€β”€ video_capture.hpp
β”‚ β”œβ”€β”€ udp_sender.hpp
β”‚ └── udp_receiver.hpp
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ audio_capture.cpp
β”‚ β”œβ”€β”€ video_capture.cpp
β”‚ β”œβ”€β”€ udp_sender.cpp
β”‚ β”œβ”€β”€ udp_receiver.cpp
β”‚ └── NovaEngine.cpp
β”œβ”€β”€ libs/
β”‚ β”œβ”€β”€ libopus.a
β”‚ └── libjpeg.a
β”œβ”€β”€ CMakeLists.txt
└── README.md


---

## βš™οΈ Build Instructions

### 🧰 Dependencies

- C++17 or later
- OpenCV
- PortAudio
- libopus
- libjpeg (or ffmpeg for H.264/VP8 if needed)

### πŸ—οΈ Compile with CMake

```bash
mkdir build && cd build
cmake ..
make -j$(nproc)
πŸ§ͺ Usage
Run the media engine with:

It will:

Capture video/audio

Encode and fragment

Send over UDP

Receive incoming media

Decode and play

πŸ” Integration with NovaSafer (Java Signaling Layer)
NovaEngine is designed to work in sync with the Java-based NovaSafer signaling infrastructure.
The Java layer handles:

NAT traversal

Peer matching

IP:Port discovery

Session key exchange (if encryption is enabled)

NovaEngine assumes the peer's public IP and port are already known and directly streams media.

πŸ“Œ Roadmap
 MJPEG / PCM UDP streaming

 Opus codec integration

 Adaptive bitrate & error concealment

 Forward Error Correction (FEC)

 DTLS-SRTP encryption

 Hardware acceleration support (NVENC / VAAPI)

🧠 Authors
NovaSafer Engineering Team
Project System Engineer: Abdurrahman Karadağ
Project Tech Depart:Resul SarΔ±kaya