मूल गुणवत्ता को बनाए रखते हुए MKV को MP4 में परिवर्तित करने के लिए हैंडब्रेक सेटिंग्स


44

मेरे पास MKV फ़ाइलों की एक टन है जिसे मुझे MP4 में बदलने की आवश्यकता है और मेरा चुना हुआ सॉफ्टवेयर हैंडब्रेक है।

मैं इस बात पर अड़ा हुआ हूं कि रूपांतरण के लिए कौन सी सेटिंग सबसे अच्छी होगी। मैं पूरी गुणवत्ता बनाए रखना चाहता हूं। क्या मैं सिर्फ मूल सेटिंग्स के साथ परिवर्तित करता हूं और कुछ भी नहीं बदलता है या क्या कोई विशिष्ट चीज है जिसे मुझे बदलने की आवश्यकता है?



मुझे कुछ फ़ाइलों पर त्रुटि मिल रही है (mkv से mp4 और mp4 से mkv के लिए): आउटपुट फ़ाइल # 0 में कोई स्ट्रीम नहीं है। किसी को भी किसी भी विचार है इसका क्या मतलब है?
PrimitiveNom

जवाबों:


85

हैंडब्रेक में क्या समस्या है?

जब आप हैंडब्रेक का उपयोग एक कंटेनर प्रारूप से दूसरे में परिवर्तित करने के लिए कर रहे हैं (यानी आपके मामले में MKV से MP4), हैंडब्रेक वीडियो को फिर से एनकोड करेगा। संबंधित सुविधा अनुरोध भी देखें जो वीडियो सक्षम हो गया है:

क्षमा करें, वीडियो passthrough जोड़ने की योजना नहीं है। हैंडब्रेक को वीडियो ट्रांसकोडर के रूप में बनाया गया है। यह passthrough अनुमति देने के लिए डिज़ाइन नहीं किया गया था।

इसलिए, जब भी आप हैंडब्रेक वाले कंटेनरों को बदल रहे हैं, तो आपका वीडियो फिर से एन्कोडेड होने जा रहा है, जिसका अर्थ है कि ए) में समय लगता है और बी) गुणवत्ता में कमी ला सकता है।

क्या मुझे फिर से एनकोड करना है? मैं सिर्फ कंटेनर स्वैप नहीं कर सका?

चूँकि passthrough संभव नहीं है, अपने आप से पूछें: क्या मुझे फिर से एनकोड करने की आवश्यकता है? यदि आप केवल MKV से MP4 में कंटेनर बदलना चाहते हैं, तो आपको आमतौर पर कुछ भी एन्कोड करने की आवश्यकता नहीं है , आप बस वीडियो के चारों ओर "रैपिंग" बदलते हैं। इससे गुणवत्ता नहीं खोती है, और यह बहुत तेज़ प्रक्रिया होगी।

आप FFmpeg के साथ कंटेनरों को आसानी से स्वैप कर सकते हैं - आपको इसे वीडियो और ऑडियो स्ट्रीम को कॉपी करने के लिए बताना होगा:

ffmpeg -i input.mkv -c copy -map 0 output.mp4

MP4Box जैसे टूल भी हैं जो MP4 कंटेनर भी बना सकते हैं - वही MKVtoolnix के साथ MKV के लिए मौजूद है ।

हालांकि, एक बड़ा चेतावनी है: यह केवल तभी काम करता है जब ऑडियो और वीडियो कोडेक्स को लक्ष्य (MP4) कंटेनर में समर्थित किया जाता है, जो कि H.264 / H.265 और AAC के लिए मामला है, उदाहरण के लिए, लेकिन कई अन्य लोगों के लिए नहीं। इसके अलावा, MP4 के लिए उपशीर्षक प्रारूप का समर्थन MKV से अलग है, और वास्तव में काफी प्रतिबंधित है, इसलिए यह आदेश विफल हो सकता है।

यदि यह कमांड काम नहीं करता है, और यदि आपका इनपुट आउटपुट कंटेनर के लिए गलत कोडेक्स का उपयोग करता है, तो आपको संभवतः फिर से एनकोड करना होगा । इस मामले में, कोडेक्स आउटपुट कंटेनर में अनुकूलित किए जाएंगे।

यह समझने के लिए कि यह क्यों आवश्यक है, वीडियो कोडेक्स और कंटेनरों के बीच अंतर सीखना महत्वपूर्ण है । यह आपको यह समझने में मदद करेगा कि कंटेनर बदलना क्यों काम करता है और कंटेनर MP4 और MKV का वीडियो कोडेक्स के साथ बहुत कम संबंध क्यों है।

वैसे भी फिर से एन्कोडिंग खराब क्यों है?

जब आप पहले से एन्कोड किए गए वीडियो को एन्कोडिंग करते हैं, तो आप (आमतौर पर) पूरी गुणवत्ता नहीं रख सकते । इसका कारण यह है कि जानकारी को फेंकने से मूल पहले से ही संकुचित हो गया है, और इसे फिर से करके आप पीढ़ी नुकसान का परिचय दे रहे हैं ।

अक्सर, आप वीडियो को फिर से एनकोड करना चाहते हैं जब उदाहरण के लिए उसके आयाम बदलते हैं, या आपको अपने वीडियो स्ट्रीम को निचोड़ने के लिए एक विशिष्ट बिट दर की आवश्यकता होती है, या आपका मूल वीडियो एक कोडेक का उपयोग करता है जिसे आप किसी भी कारण से नहीं खेल सकते।

इसलिए, यदि आप अपने MKV वीडियो को हैंडब्रेक में लोड करते हैं, और इसे x264 के साथ फिर से एनकोड करते हैं, तो एच .264 एनकोडर हैंडब्रेक का उपयोग करता है, इसे एक MP4 कंटेनर में स्टोर करें, आप गुणवत्ता में कोई फर्क नहीं खोने जा रहे हैं, जब तक कि आप बिटरेट सेट न करें या गुणवत्ता कारक इतना अधिक है कि आप (वास्तव में) अंतर नहीं देखेंगे। लेकिन फिर, फ़ाइल का आकार बड़ा हो जाएगा।

आदर्श मामले में, आप वीडियो को एक असम्पीडित वीडियो में बदल देंगे, जो आपको कोई भी गुणवत्ता नहीं खोएगा, लेकिन आपको एक दर्जन गीगाबाइट की फ़ाइलों को आकार में देता है, यहां तक ​​कि वीडियो सामग्री के कुछ मिनटों के लिए भी।

ठीक है, लेकिन मुझे वास्तव में फिर से एनकोड करना है!

यदि आपको वास्तव में फिर से एनकोड करना है, तो सुनिश्चित करें कि एक औसत बिटरेट सेट न करें, लेकिन एक कॉन्स्टेंट रेट फैक्टर चुनें , जो "निरंतर गुणवत्ता" जैसा कुछ है। एमपी 3 के लिए "वैरिएबल बिट रेट" की तरह: यह उन वीडियो भागों पर बिट्स खर्च करने के लिए सुनिश्चित करेगा जो उन्हें ज़रूरत है और एक ही फ़ाइल आकार में - समग्र गुणवत्ता को बेहतर बनाते हैं।

साने सीआरएफ मूल्य 19 से 24 तक हैं, जहां निचले का मतलब "बेहतर" है। तो, आप 19 के रेट फैक्टर के साथ प्रयास कर सकते हैं। इसके अलावा, "हाई" प्रोफाइल को सेट करना सुनिश्चित करें, जो एनकोडर को सभी घंटियाँ और सीटी का उपयोग करने में सक्षम बनाता है और किसी दिए गए बिट दर के लिए गुणवत्ता का अनुकूलन करता है।


धन्यवाद! ऐसा लगता है कि आप केवल एक हैं जो इस प्रश्न की परवाह करते हैं और मेरी मदद करते हैं, मैंने आपकी सलाह का पालन किया और लगता है कि गुणवत्ता मूल के समान है! :)
नारंगी

कुछ mkv फ़ाइलों के लिए यह असफल हो जाएगा (आउटपुट फ़ाइल के लिए हेडर नहीं लिख सकता ... गलत कोडेक)। Ffprobe -i file.mkv का उपयोग करके देखें कि a / v किस प्रारूप में है, आपको x264 वीडियो और aac / ac3 ऑडियो के साथ पुन: संग्रह करने की आवश्यकता होगी
स्की_सक्वा

यू 100% निश्चित है कि फाइलों को फिर से खोना गुणवत्ता के नुकसान का कारण नहीं है ??
प्रिमिटिवनोम

1
@ बॉलपॉइंट नहीं संभव, नहीं: github.com/HandBrake/HandBrake/issues/…
slhck

1
@ हाशिम ने अनुरोध के अनुसार पद को स्पष्ट करने का प्रयास किया। और आपके प्रश्न के बारे में, चूंकि हैंडब्रेक पस्चथ्रू की अनुमति नहीं देता है, इसलिए MP4 से MKV में कनवर्ट करने से गुणवत्ता हानि होगी । और इसमें बहुत समय लगेगा। बस करो ffmpeg -i input.mp4 -c copy output.mkvऔर तुम ठीक हो जाओ।
slhck

4

यह मेरे लिए बहुत अच्छा काम करता है। नीचे सभी .mkv से .mp4 फ़ाइलों को विंडोज़ में बदलने के लिए कोड है।

  • आपको अपने पथ पर ffmpeg जोड़ने की आवश्यकता हो सकती है। आप बस पूरा रास्ता ffmpeg को निष्पादन योग्य, D: \ apps \ ffmpeg \ bin \ ffmpeg.exe में डाल सकते हैं
  • विंडोज़ के लिए ffmpeg डाउनलोड करें।
  • उपयोग: उस पर एक .mkv फ़ाइल छोड़ें। यह पूरी डायरेक्टरी करेगी।

Convert.bat नामक फ़ाइल में सहेजें।

for %%a in ("*.mkv") do ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
pause

एक जादू की तरह काम करता है।
किट जॉनसन

मैंने इसे for %%a in ("*.mkv") do %~dp0ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
ffmpeg.exe के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.