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.
گرافیک سیستمی · اسکریپت‌نویسی لوان · خط لوله ویدیو

پلیر سفارشی 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) برای افزایش کنتراست بی‌نهایت و جلوگیری از هدررفت انرژی و استهلاک پنل.

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

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