मेरे अपने अनुभव से, यदि आप गुणवत्ता में कोई कमी नहीं चाहते हैं, तो - बिना किसी कारण के आप देख रहे हैं।
के बारे में निश्चित नहीं है, avconv
लेकिन आपके द्वारा लिखी गई कमांड मेरे साथ क्या करती है, इसके समान है FFmpeg
। में FFmpeg
आप इस तरह पैरामीटर पारित कर सकते हैं:
ffmpeg -i INPUT.mkv -c:v libx265 -preset ultrafast -x265-params lossless=1 OUTPUT.mkv
अधिकांश x265
स्विच (बिना मूल्य वाले विकल्प) इस तरह निर्दिष्ट किए जा सकते हैं (उन सीएलआई-केवल लोगों को छोड़कर, जिनका उपयोग केवल x265
बाइनरी के साथ सीधे किया जाता है )।
उस रास्ते से, मैं x265
एन्कोडिंग के साथ अपना अनुभव साझा करना चाहता हूं । अधिकांश वीडियो के लिए (यह WMV, या MPEG, या AVC / H.264 हो) मैं उपयोग करता हूं crf=23
। x265
बाकी मापदंडों को तय करता है और आमतौर पर यह एक अच्छा काम करता है।
हालाँकि अक्सर इससे पहले कि मैं किसी वीडियो को उसकी संपूर्णता में बदलने के लिए प्रतिबद्ध हूं, मैं वीडियो में एक छोटे से हिस्से को परिवर्तित करके अपनी सेटिंग्स का परीक्षण करता हूं। यहाँ एक उदाहरण है, मान लें कि एक mkv फ़ाइल है जिसमें स्ट्रीम 0 वीडियो है, धारा 1 डीटीएस ऑडियो है, और धारा 2 एक उपशीर्षक है:
ffmpeg -hide_banner \
-ss 0 \
-i "INPUT.mkv" \
-attach "COVER.jpg" \
-map_metadata 0 \
-map_chapters 0 \
-metadata title="TITLE" \
-map 0:0 -metadata:s:v:0 language=eng \
-map 0:1 -metadata:s:a:0 language=eng -metadata:s:a:0 title="Surround 5.1 (DTS)" \
-map 0:2 -metadata:s:s:0 language=eng -metadata:s:s:0 title="English" \
-metadata:s:t:0 filename="Cover.jpg" -metadata:s:t:0 mimetype="image/jpeg" \
-c:v libx265 -preset ultrafast -x265-params \
crf=22:qcomp=0.8:aq-mode=1:aq_strength=1.0:qg-size=16:psy-rd=0.7:psy-rdoq=5.0:rdoq-level=1:merange=44 \
-c:a copy \
-c:s copy \
-t 120 \
"OUTPUT.HEVC.DTS.Sample.mkv"
ध्यान दें कि बैकस्लैश सिग्नल लाइन एक लंबी कमांड में टूटती है, मैं इसे एक जटिल सीएलआई इनपुट के विभिन्न बिट्स का ट्रैक रखने में मेरी मदद करने के लिए करता हूं। इससे पहले कि मैं इसे लाइन-बाय-लाइन समझाऊं, वह हिस्सा जहां आप केवल एक वीडियो का एक छोटा सा हिस्सा कन्वर्ट करते हैं, दूसरी लाइन और दूसरी आखिरी लाइन: -ss 0
इसका मतलब है कि इनपुट को डिकोड करना शुरू करने से पहले 0 सेकंड की तलाश करें, और -t 120
आउटपुट के लिए लिखना बंद करें 120 सेकंड के बाद। आप hh: mm: ss या hh: mm: ss.sss टाइम फॉर्मेट का भी उपयोग कर सकते हैं।
अब लाइन-बाय-लाइन:
-hide_banner
FFmpeg
प्रारंभ पर बिल्ड जानकारी दिखाने से रोकता है। जब मैं कंसोल में स्क्रॉल करता हूं तो मैं इसे देखना चाहता हूं;
-ss 0
इनपुट को डीकोड करने से पहले 0 सेकंड का प्रयास करता है। ध्यान दें कि यदि यह पैरामीटर इनपुट फ़ाइल के बाद और आउटपुट फ़ाइल से पहले दिया जाता है, तो यह आउटपुट विकल्प बन जाता है ffmpeg
और एक्स सेकंड तक इनपुट को डीकोड और अनदेखा करने के लिए कहता है, और फिर आउटपुट पर लिखना शुरू करता है। इनपुट विकल्प के रूप में यह कम सटीक है (क्योंकि अधिकांश कंटेनर स्वरूपों में मांग सटीक नहीं है), लेकिन लगभग कोई समय नहीं लगता है। एक आउटपुट विकल्प के रूप में यह बहुत सटीक है, लेकिन निर्दिष्ट समय से पहले सभी स्ट्रीम को डीकोड करने में काफी समय लगता है, और परीक्षण के उद्देश्य के लिए आप समय बर्बाद नहीं करना चाहते हैं;
-i "INPUT.mkv"
: इनपुट फ़ाइल निर्दिष्ट करें;
-attach "COVER.jpg"
: आउटपुट में एक कवर आर्ट (थंबनेल चित्र, पोस्टर, जो भी हो) संलग्न करें। कवर आर्ट आमतौर पर फ़ाइल खोजकर्ताओं में दिखाया जाता है;
-map_metadata 0
: किसी भी और सभी मेटाडेटा पर इनपुट 0 से कॉपी करें, जो उदाहरण में सिर्फ इनपुट है;
-map_chapters 0
: इनपुट से अध्याय की जानकारी (यदि मौजूद है) पर कॉपी;
-metadata title="TITLE"
: वीडियो का शीर्षक सेट करें;
-map 0:0 ...
: इनपुट ० का मैप स्ट्रीम ०, जिसका अर्थ है कि हम इनपुट से पहला स्ट्रीम आउटपुट पर लिखना चाहते हैं। चूंकि यह स्ट्रीम एक वीडियो स्ट्रीम है , इसलिए यह आउटपुट में पहला वीडियो स्ट्रीम है , इसलिए स्ट्रीम निर्दिष्ट करता है । इसका भाषा टैग अंग्रेजी में सेट करें;:s:v:0
-map 0:1 ...
: पंक्ति 8 के समान, दूसरी स्ट्रीम (DTS ऑडियो) को मैप करें, और इसकी भाषा और शीर्षक (खिलाड़ियों से चयन करते समय आसान पहचान के लिए) सेट करें;
-map 0:2 ...
: पंक्ति 9 के समान, इस धारा को छोड़कर एक उपशीर्षक है;
-metadata:s:t:0 ...
: कवर कला के लिए मेटाडेटा सेट करें। यह mkv कंटेनर प्रारूप के लिए आवश्यक है;
-c:v libx265 ...
: वीडियो कोडेक विकल्प। यह इतना लंबा है कि मैंने इसे दो लाइनों में तोड़ दिया है। यह सेटिंग उच्च गुणवत्ता वाले धुंधला वीडियो (1080p) के लिए ढाल में न्यूनतम बैंडिंग के साथ अच्छा है (जो x265 पर बेकार है)। यह डीवीडी और टीवी शो और फोन वीडियो के लिए सबसे अधिक संभावना है। यह सेटिंग ज्यादातर इस Doom9 पोस्ट से चुराई गई है ;
crf=22:...
: वीडियो कोडेक मापदंडों की निरंतरता। ऊपर उल्लिखित फोरम पोस्ट देखें;
-c:a copy
: ऑडियो पर कॉपी;
-c:s copy
: उपशीर्षक पर प्रतिलिपि;
-t 120
: 120 सेकंड के बाद आउटपुट पर लिखना बंद करें, जो हमें ट्रांसकोडिंग गुणवत्ता का पूर्वावलोकन करने के लिए 2 मिनट की क्लिप देता है;
"OUTPUT.HEVC.DTS.Sample.mkv"
: आउटपुट फ़ाइल नाम। मैं वीडियो कोडेक और प्राथमिक ऑडियो कोडेक के साथ अपनी फ़ाइल नाम टैग करता हूं।
वाह। यह मेरा पहला उत्तर है इसलिए यदि कोई चीज छूट गई है तो कृपया टिप्पणी छोड़ दें। मैं एक वीडियो प्रोडक्शन विशेषज्ञ नहीं हूं, मैं सिर्फ एक लड़का हूं जो खिलाड़ी को डिस्क डालकर फिल्म देखने के लिए बहुत आलसी है।
पुनश्च। हो सकता है कि यह सवाल कहीं और का है क्योंकि यह यूनिक्स और लिनक्स से दृढ़ता से संबंधित नहीं है।
--lossless
वास्तव में फ़ाइल का विस्तार हो सकता है, अगर यह पहले के हानिपूर्ण कोडेक को डिकोड करता है और फिर इसे खो देता है जो इसे दोषरहित रूप से डिकोड करता है। गुणवत्ता इनपुट के समान ही रहेगी।