FFmpeg और HandBrake सपोर्ट, कई तरह के curves, और GPU पर असली BT.2390 वाला एक डेस्कटॉप टोन-मैपिंग टूल। 10-बिट और 12-बिट आउटपुट मुफ़्त शामिल है।
फ़िल्म असल में कैसी दिखती है यह पूरी तरह इस बात पर निर्भर करता है कि यह कैसे किया गया है — कोई कन्वर्ज़न न होना, किसी मीडिया प्लेयर का खुद का जल्दबाज़ी में लगाया अंदाज़ा, या एक असली BT.2390 प्रक्रिया।
किसी ऐसी डिस्प्ले या प्रोजेक्टर पर एक बिना छेड़ी HDR फ़ाइल चलाना जो HDR को समझता ही नहीं — PQ/HLG curve को ऐसे दिखाया जाता है जैसे वह SDR हो, इसलिए सब कुछ धूसर, चपटा और फीका दिखता है।
VLC जैसे प्लेयर अपना जल्दबाज़ी वाला टोन-मैप लगाते हैं ताकि प्लेबैक कम से कम देखने लायक रहे — आमतौर पर एक सीधी, फिक्स्ड curve जो हाइलाइट्स को क्लिप कर देती है या रंग बदल देती है, न कि आपकी चुनी हुई curve के साथ एक सोच-समझकर किया गया BT.2390 प्रोसेस।
libplacebo के ज़रिए GPU पर चलने वाला असली ITU-R BT.2390 EETF — नियंत्रित हाइलाइट rolloff और सटीक रंग, आउटपुट एक असली SDR फ़ाइल के रूप में जो किसी भी स्टैंडर्ड डिस्प्ले के लिए तैयार है।
एक ही सोर्स वीडियो, तीन सच में अलग-अलग पाइपलाइन। कुछ भी "ऑटो" बटन के पीछे छुपाया नहीं गया है — आपने जो बैकएंड और curve चुनी है, बिल्कुल वही चलती है।
क्लासिक tonemap फ़िल्टर। तेज़, जहाँ भी FFmpeg काम करता है वहाँ काम करता है, GPU की ज़रूरत नहीं।
libplacebo के ज़रिए GPU पर असली ITU-R BT.2390 EETF चलाता है, वही रेफ़रेंस curve जिसके आस-पास ज़्यादातर HDR-से-SDR ग्रेड बनाए जाते हैं।
HandBrakeCLI के ज़रिए एक वैकल्पिक एन्कोड रास्ता, उन मामलों के लिए जहाँ किसी खास सोर्स पर उसकी अपनी पाइपलाइन बेहतर काम करती है।
असली फ़ुटेज पर टोन-मैपिंग के काम में सच में जो गलत हो सकता है उसी के इर्द-गिर्द बनाया गया: गलत curve, गलत encoder, या ऐसा प्रोसेस जो चलते समय पूरी मशीन को अपने कब्ज़े में ले ले।
Source (कोई स्केलिंग नहीं), 4K, 1440p, 1080p, 720p, या 480p। स्केलिंग ऊँचाई के हिसाब से होती है, चौड़ाई अपने आप कैलकुलेट होती है ताकि सोर्स का aspect ratio कभी न बिगड़े।
एक सोर्स चुनें और वह तुरंत पढ़ ली जाती है — transfer characteristics, bit depth, अवधि, HDR10+/Dolby Vision मेटाडेटा — उस खास फ़ाइल के लिए सुझाई गई curve के साथ। SDR आउटपुट path अपने आप भर जाता है, और विंडो पर कहीं भी वीडियो फ़ाइल ड्रैग करना Browse जैसा ही काम करता है।
आपके सोर्स से एक असली डिकोड और टोन-मैप किया गया फ़्रेम, जो सेटिंग्स बदलते ही अपडेट होता है, साथ में shadow/highlight clipping चेक ताकि detail बिगाड़ने वाली curve पूरी एन्कोडिंग से पहले ही पकड़ में आ जाए। इसे पूरे आकार में देखें या फ़्रेम को सीधे डिस्क पर सेव करें।
quality, resolution, या encoder बदलते ही अपने आप अपडेट होता है, ताकि कोई अनपेक्षित CRF/resolution combination Start दबाने से पहले ही दिख जाए।
किसी भी टोन-मैपिंग curve पर hover करें और उसके असली trade-offs की सीधी-सादी भाषा में जानकारी पाएं — मार्केटिंग की बातें नहीं।
CPU पर x264/x265, या NVIDIA NVENC, AMD AMF, या Apple VideoToolbox के ज़रिए हार्डवेयर एन्कोडिंग, H.264 या H.265 में।
मुफ़्त, बिना लाइसेंस, बिना अलग बिल्ड के। 10-बिट किसी भी H.265 encoder (CPU या हार्डवेयर) के साथ काम करता है; 12-बिट CPU पर libx265 के ज़रिए उपलब्ध है — ऐप सिर्फ़ वही encoders दिखाता है जो आपकी चुनी हुई bit depth को सच में सपोर्ट करते हैं।
पूरी CRF/CQ रेंज (0–51), एक brightness offset कंट्रोल, और अतिरिक्त टोन-मैप curves खोलता है — जब तक ज़रूरत न हो, यह सामने नहीं आता।
FFmpeg बैकएंड के लिए CUDA / DXVA2 / VideoToolbox डिकोड, ताकि GPU पढ़ने और टोन-मैपिंग दोनों का काम करे।
Efficiency, Balanced, या Performance, साथ ही एक live CPU-core सीमा — दोनों Start पर लागू होते हैं और कन्वर्ज़न चलते समय एडजस्ट किए जा सकते हैं, ताकि लंबा batch आपकी बाकी मशीन को न रोके।
एक collapsible live log असली FFmpeg/HandBrake आउटपुट और प्रोग्रेस दिखाता है; एक System पैनल कन्वर्ट करने से पहले बताता है कि आपके सिस्टम पर क्या पाया गया — FFmpeg, Vulkan, HandBrakeCLI।
गायब FFmpeg या HandBrakeCLI ऐप के अंदर से ही winget के ज़रिए इंस्टॉल हो जाता है — System पैनल से, या उसके बगल में मौजूद "Quick install" शॉर्टकट से — इंस्टॉल आउटपुट Activity में लाइव दिखता है।
अगर आप सिर्फ़ चलाना चाहते हैं तो Windows बिल्ड, या अगर आप macOS/Linux पर हैं या पहले कोड पढ़ना चाहते हैं तो सोर्स।
सिंगल-फ़ाइल बिल्ड, Python की ज़रूरत नहीं। FFmpeg फिर भी अलग से चाहिए — या इसे ऐप के अंदर winget के ज़रिए इंस्टॉल करें।
हमेशा सबसे नया रिलीज़ · Windows 10/11
Python 3.10+ और pip install -r requirements.txt चाहिए। Windows, macOS, और Linux पर चलता है।
MIT लाइसेंस · main branch
यह ऐप एक ही PySide6 स्क्रिप्ट है। कोई इंस्टॉलर नहीं, कोई बैकग्राउंड सर्विस नहीं — आप इसे चलाते हैं, और यह सीधे FFmpeg (और वैकल्पिक रूप से HandBrakeCLI) को कॉल करता है।
लॉन्च करने से पहले मशीन पर क्या होना चाहिए।
| घटक | किसलिए ज़रूरी |
|---|---|
| Python 3.10+ | ऐप को खुद चलाने के लिए |
| PySide6 | Qt-आधारित UI |
| FFmpeg | स्टैंडर्ड और GPU टोन-मैपिंग बैकएंड |
| Vulkan-सक्षम GPU + ड्राइवर | ख़ासतौर पर libplacebo/BT.2390 बैकएंड |
| HandBrakeCLI (वैकल्पिक) | HandBrake बैकएंड |
| psutil (वैकल्पिक) | लाइव pause/resume, CPU-core कंट्रोल, और CPU/GPU resource आँकड़े |
तीन कमांड, और आप विंडो देख रहे होंगे।
# 1. स्क्रिप्ट और उसकी Python dependencies पाएं pip install PySide6 psutil # 2. सुनिश्चित करें कि FFmpeg आपके PATH में है ffmpeg -version # 3. लॉन्च करें python hdr_to_sdr_gui_qt.py
HDR सोर्स फ़ाइल से SDR आउटपुट तक।
ये सभी असली, दस्तावेज़ीकृत FFmpeg/libplacebo टोन-मैपिंग विकल्प हैं — यहाँ कुछ भी गढ़ा नहीं गया है।
| Curve | बैकएंड | कब इस्तेमाल करें |
|---|---|---|
| BT.2390 | GPU | डिफ़ॉल्ट चुनाव — रेफ़रेंस EETF जिसे ज़्यादातर HDR-से-SDR ग्रेड टारगेट करते हैं |
| Hable | CPU | Filmic rolloff, GPU ज़रूरी नहीं |
| Reinhard / Mobius | CPU | Hable के मुक़ाबले नरम highlight rolloff विकल्प |
| BT.2446A | GPU · Pro | BT.2390 का broadcast-केंद्रित विकल्प |
| ST2094-10 / ST2094-40 | GPU · Pro | Dynamic टोन-मैपिंग; ST2094-40 मौजूद होने पर HDR10+ मेटाडेटा इस्तेमाल करता है |
| Linear / Gamma / Clip / None | CPU · Pro | Diagnostic या manual-grading पास, सामान्य इस्तेमाल के लिए नहीं |
System पैनल पहला पड़ाव है — इसे bug के तौर पर रिपोर्ट करने से पहले यह बताता है कि असल में क्या पहचाना गया।