Back to Projects
Linux Linux Native (C++23)
4K / 8K / 16K Ultra-HD @ 120+ FPS
OpenGL 3.3 Core · VA-API / NVDEC · Headless CLI Suite

VMP — Ultra-Native Linux Video Engine & Benchmarking Suite

VMP is an ultra-native, high-performance C++ media engine and benchmarking suite for Linux. Engineered for flawless 4K/8K/16K playback, zero frame drops, microsecond-accurate audio sync, and GPU hardware decoding (VA-API / NVDEC), featuring both a modern OpenGL GUI and a standalone headless CLI.

VMP - Video Max Player
Architecture Showcase
OpenGL 3.3 Core Profile + Real-Time Telemetry HUD

Architectural & Engineering Highlights

Dual-Target Modular Architecture

Clean separation between VMP Desktop (Modern OpenGL 3.3 Core GUI player) and VMP CLI (Zero-dependency headless decoding, benchmarking, and video telemetry tool).

Hot-Toggle Smart Hardware Routing

Auto-detects VA-API (Intel/AMD) and NVDEC/CUDA (NVIDIA). Instant hot-toggling via Shift+H with smart automated fallback to AVX2 CPU decode on driver stalls.

Deep Dynamic Ring Buffer

Dedicated 64 to 96 frames raw decoded buffer queue. Eliminates desktop compositor stutter and maintains locked 55–60 FPS (up to 120+ FPS) playback stability under multitasking loads.

Microsecond Audio Clock Sync

SDL2 audio backend delivering ±0.3 ms audio clock jitter — 28× tighter synchronization precision than standard generic media players.

GLSL Post-Processing Shaders

Real-time shader cycle (S): ACES Filmic HDR Tone Mapping, AMD Contrast-Adaptive Sharpening (CAS), Warm, Cool, and retro CRT scanlines.

Live Telemetry & JSON Benchmarks

On-screen HUD (T) graphing FPS, 1% Lows, frame decode latency in ms, active bitrate, and headless automated benchmarking with JSON export.

Empirical Performance Benchmark

Tested on native Linux x86_64 playing high-bitrate 4K 60FPS / 120FPS streams (VP9 / AV1 / H.265).

Metric & Benchmark Target VMP v0.0.4-beta VLC Media Player (v3.0.x) Improvement Factor
Startup / First Frame Latency 42 ms ~280 ms 6.6× Faster
4K 120 FPS Frame Stability 0 Dropped Frames (Locked) Frequent micro-stutters under load Zero Stutter
Audio Clock Synchronization Jitter ±0.3 ms (Microsecond clock) ±8.5 ms 28× Tighter Sync
Max Unlocked Decoding Throughput 144.5+ FPS (Headless CLI) N/A (No built-in CLI benchmark) Native CLI Suite
Runtime Decoder Switching Instant Hot-Toggle (Shift+H) Requires stopping playback & restarting Real-Time Zero-Drop
Decoded Frame Buffer Queue 64 to 96 Frames (Deep Ring Buffer) 3 to 4 Frames Pool 24× Deep Buffer
Post-Processing Shader Filters ACES Filmic HDR, AMD CAS, CRT Basic generic XVideo/OpenGL sink Direct OpenGL 3.3 Core

Headless CLI Power Tools (`vmp_cli`)

The standalone `vmp_cli` utility provides terminal-based video probing, speed benchmarks, and hardware driver diagnostics without requiring an X11/Wayland display server:

1. Technical Metadata Probe JSON/Info
# Probe codecs, bitrates, resolutions, audio tracks
vmp_cli info /path/to/video.mp4
2. High-Throughput Benchmark 1000 Frames
# Unlocked benchmark with exported JSON report
vmp_cli benchmark video.mp4 --frames 1000 --export-stats report.json
3. Hardware Decoder Audit GPU Discovery
# Audit VA-API, NVDEC, and DRM backends
vmp_cli hw-accel
4. Playback Resume History Timestamps
# Manage saved playback position timestamps
vmp_cli resume --list

Desktop GUI Controls & Shortcuts

Play / Pause Space / Click
Seek ±5s ← / →
Volume ±5% ↑ / ↓
Toggle HW ↔ CPU Shift + H
Cycle Shader Filters S
Telemetry HUD T
Cycle Subtitle Tracks C
Toggle Fullscreen F / F11
VLC Context Menu Right-Click

Build & Installation Instructions

Method 1: Automated 1-Click Desktop Installer (Recommended)

Compiles the engine in Release mode, sets up your application menu launcher, registers multi-resolution icons, configures video MIME associations, and installs `vmp_cli` into your user PATH:

git clone https://github.com/hamzabellouch/vmp.git
cd vmp/desktop && chmod +x install.sh && ./install.sh
Method 2: Standalone CLI Build (Headless Servers / CI/CD)
cd vmp/cli
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
cp build/vmp_cli ~/.local/bin/

Ready to experience ultra-native video playback?

Explore the open-source C++20 codebase or download the latest binaries.