RMN-Player OLED Ambilight & Video Engine Architecture by Raman Tondro (رامان تندرو)
Architecture Overview: MPV core video pipeline featuring dynamic GLSL ambilight edge shaders, automated Persian subtitle CP-1256 reconciliation, and true-black OLED preservation.
Systems Graphics · Lua · Video Pipelines

RMN-Player: Ultra-Optimized OLED Media Engine

A high-performance media environment built on the MPV core, specifically customized for high-refresh-rate OLED displays. Features dynamic edge ambilight simulation shaders, sub-pixel text rasterization, and automatic subtitle encoding reconciliation.

Core Engine MPV 0.38+ · libmpv backend
Scripting Language Lua 5.1 Embedded JIT
Hardware Acceleration D3D11VA · NVDEC · VA-API
Shader Pipeline Custom GLSL Ambilight Post-Process
RAM Consumption < 75 MB typical playback
Subtitle Handling Auto-detection (Windows-1256 to UTF-8)

1. The Engineering Rationale

Standard media players (VLC, MPC-HC, Windows Media Player) suffer from bloated UI overlays, sluggish seek times on 10-bit HDR/HEVC files, and poor handling of non-standard subtitle encodings common in Persian and Arabic locales (producing unreadable "mojibake" characters due to Windows-1256 ANSI conflicts).

Furthermore, modern OLED monitors require special consideration: harsh white static controls accelerate burn-in, while pure black content benefits significantly from subtle, hardware-calculated edge diffusion (ambilight) to reduce eye strain in darkened viewing environments. RMN-Player provides an integrated, zero-overhead solution using custom Lua automation and GLSL rendering.

2. Dynamic GLSL Ambilight Shader Pipeline

Instead of running CPU-intensive frame sampling, RMN-Player samples video perimeter pixels directly on the GPU within the render chain:

-- Lua Event Hook: Dynamic Window Geometry & Glow Adjustment
mp.register_event("video-reconfig", function()
    local w = mp.get_property_number("dwidth", 1920)
    local h = mp.get_property_number("dheight", 1080)
    local aspect = w / h
    
    -- Configure shader parameters dynamically based on viewport aspect
    mp.commandv("change-list", "glsl-shaders", "set", "~~/shaders/ambilight_glow.glsl")
    mp.msg.info(string.format("Configured ambilight for resolution: %dx%d (%.2f)", w, h, aspect))
end)

3. Automated Subtitle Encoding Reconciliation

Persian subtitles frequently use legacy Windows-1256 encoding without a Byte Order Mark (BOM). Standard UTF-8 parsers fail and display garbled symbols. RMN-Player features an automated byte-inspection script that samples the first 2KB of `.srt` files, detects high-order byte sequences characteristic of Persian/Arabic ANSI code pages, and automatically reloads the track with sub-codepage=cp1256 or utf-8 without user intervention.

4. Key Architectural Features

Zero-Overhead Hardware Pipeline

Direct copy hardware decoding (D3D11VA / NVDEC) minimizes CPU utilization to under 1% on modern multi-core processors, freeing bandwidth for complex colorimetry pipelines.

Smart Episode Sequencer

Automatically discovers and queues the next episode in sequential numbering schemes while skipping static intro chapters based on user preferences.

OLED Deep-Black Preservation

Ensures that pixel luminance values of zero map directly to true off-state OLED diodes, preventing elevated black levels (grey glow) and protecting the panel.

Sub-Millisecond Keyboard Scrubbing

Custom keybind configuration allowing precise frame-by-frame navigation and logarithmic time leaps (5s, 30s, 3m) with instant keyframe decoding.

گرافیک سیستمی · اسکریپت‌نویسی لوان · خط لوله ویدیو

پلیر سفارشی RMN-Player: بهینه‌سازی‌شده برای نمایشگرهای OLED

یک محیط پخش ویدیویی سبک و سریع بر پایه موتور MPV، مهندسی‌شده به طور اختصاصی برای نمایشگرهای OLED با نرخ نوسازی بالا. مجهز به شیدرهای شبیه‌سازی نور محیطی (Ambilight)، رندرینگ زیرپیکسلی فونت‌ها و اصلاح خودکار انکودینگ زیرنویس‌های فارسی.

معماری فنی پلیر RMN-Player برای نمایشگرهای OLED اثر رامان تندرو
معماری فنی RMN-Player: پلیر سفارشی مانیتورهای OLED با هاله نوری Ambilight شیدرهای GPU، دیکود سخت‌افزاری و اصلاح خودکار زیرنویس‌های فارسی.
موتور مرکزی هسته MPV نسخه ۰.۳۸+ با کتابخانه libmpv
زبان اسکریپت‌نویسی موتور تفسیری سریع Lua 5.1 JIT
شتاب‌دهنده سخت‌افزاری دیکود مستقیم D3D11VA / NVDEC / VA-API
پردازش شیدرها شیدر سفارشی GLSL برای نور حاشیه‌ای Ambilight
مصرف حافظه رم کمتر از ۷۵ مگابایت حین پخش ۴K HDR
مدیریت زیرنویس تشخیص هوشمند انکودینگ (Windows-1256 به UTF-8)

۱. ضرورت مهندسی و حل چالش‌های موجود

نرم‌افزارهای سنتی پخش ویدیو (نظیر VLC یا پات‌پلیر) دارای رابط‌های کاربری شلوغ و سنگین، تأخیر در جابجایی روی ویدیوهای سنگین ۱۰ بیتی HDR، و به‌ویژه مشکل دائمی به‌هم‌ریختگی حروف فارسی در فایل‌های زیرنویس ANSI (کدپیج Windows-1256) هستند.

علاوه بر این، در مانیتورهای مدرن OLED کنترل دقیق پیکسل‌ها اهمیت حیاتی دارد: عناصر ثابت سفید باعث سوختگی پیکسل‌ها (Burn-in) می‌شوند، در حالی که پیکسل‌های مشکی خالص در اتاق‌های تاریک کنتراست شدیدی ایجاد می‌کنند که ایجاد هاله نوری ملایم در لبه‌ها (Ambilight) از خستگی چشم جلوگیری می‌کند. پروژه RMN-Player این اهداف را بدون اتلاف منابع پردازنده و با اسکریپت‌های بهینه‌سازی‌شده پیاده کرده است.

۲. خط لوله شیدر GLSL برای هاله نوری پویا (Ambilight)

به جای خواندن پیکسل‌ها روی CPU که موجب افت فریم می‌شود، نمونه‌برداری از حاشیه فریم‌ها مستقیماً روی پردازنده گرافیکی (GPU) از طریق پایپ‌لاین GLSL انجام می‌شود:

-- ثبت رویداد تغییر وضعیت ویدیو و تنظیم پویا شیدر
mp.register_event("video-reconfig", function()
    local w = mp.get_property_number("dwidth", 1920)
    local h = mp.get_property_number("dheight", 1080)
    local aspect = w / h
    
    -- اعمال شیدرهای گرافیکی سفارشی بدون افت کارایی
    mp.commandv("change-list", "glsl-shaders", "set", "~~/shaders/ambilight_glow.glsl")
    mp.msg.info(string.format("Ambilight configured for resolution: %dx%d (%.2f)", w, h, aspect))
end)

۳. رفع خودکار ناهماهنگی انکودینگ زیرنویس فارسی

اکثر فایل‌های زیرنویس فارسی دانلود شده از اینترنت با فرمت قدیمی Windows-1256 ذخیره شده‌اند و در پلیرهای استاندارد به شکل کاراکترهای نامفهوم نمایش می‌یابند. اسکریپت هوشمند RMN-Player با بررسی الگوی بایت‌های ابتدایی فایل، به طور خودکار کدپیج صحیح را شناسایی کرده و بدون نیاز به دخالت کاربر زیرنویس را با چینش استاندارد و بدون حروف ناخوانا لود می‌کند.

۴. دستاوردهای کلیدی معماری

خط لوله سخت‌افزاری با مصرف صفر پردازنده

دیکود مستقیم کارت گرافیک از طریق D3D11VA و NVDEC که مصرف پردازنده مرکزی را به زیر ۱ درصد رسانده و از داغ شدن سیستم جلوگیری می‌کند.

پخش هوشمند قسمت بعدی سریال‌ها

تشخیص خودکار نام‌گذاری قسمت‌ها در پوشه و انتقال پیوسته به اپیزود بعدی با پرش از بخش‌های تکراری تیتراژ ابتدایی بر اساس فصل‌بندی فایل.

حفظ سیاهی مطلق در پنل‌های OLED

تضمین خاموش ماندن دیودهای پیکسل‌های سیاه واقعی (Zero-Luminance) برای افزایش کنتراست بی‌نهایت و جلوگیری از هدررفت انرژی و استهلاک پنل.

پرش‌های زمانی میلی‌ثانیه‌ای با کلیدهای میانبر

پیکربندی کلیدهای کیبورد برای پیمایش فریم به فریم و پرش‌های لگاریتمی (۵ ثانیه، ۳۰ ثانیه، ۳ دقیقه) بدون افت حتی یک فریم تصویر.