Ffmpeg का उपयोग करके सबसे छोटी गुणवत्ता के नुकसान के साथ 1080p से वीडियो को परिवर्तित करना


45

मैं अपनी उच्च गुणवत्ता वाली फिल्म के साथ ढेर हो गया: 1080p 60fps के साथ। खेलते समय परेशानी बहुत होती है।

मैंने इसे ffmpeg के साथ 720p में बदलने की कोशिश की:

ffmpeg -i MyMovie.mkv -r 60 -s hd720 MyMovie_720p.mkv

लेकिन मुझे महत्वपूर्ण गुणवत्ता नुकसान है क्योंकि बिट दर 32.3 एमबीपीएस से घटकर 2.8 एमबीपीएस हो गई है। मैं वीडियो स्ट्रीम के लिए सही बिट दर कैसे निर्दिष्ट कर सकता हूं, और अन्य सभी स्ट्रीम कॉपी किए गए प्राचीन को छोड़ दिया है?

इनपुट फ़ाइल mediainfo:

ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L4.2
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 2h 58mn
Bit rate                                 : 32.3 Mbps
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 59.940 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.260
Stream size                              : 40.2 GiB (92%)
Writing library                          : x264 core 116 r2019 9cc407d
Encoding settings                        : cabac=1 / ref=4 / deblock=1:-2:-1 / analyse=0x3:0x113 / me=umh / subme=10 / psy=1 / psy_rd=0.80:0.20 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-3 / threads=6 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=6 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=crf / mbtree=0 / crf=14.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=50000 / vbv_bufsize=62500 / crf_max=0.0 / nal_hrd=none / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:0.60
Language                                 : English
Default                                  : Yes
Forced                                   : No
Matrix coefficients 

                 : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177

जवाबों:


93

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

ffmpeg -i MyMovie.mkv -vf scale=-1:720 -c:v libx264 -crf 0 -preset veryslow -c:a copy MyMovie_720p.mkv

"नेत्रहीन दोषरहित" गुणवत्ता प्राप्त करने के लिए, आप इसका उपयोग कर सकते हैं:

ffmpeg -i MyMovie.mkv -vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow -c:a copy MyMovie_720p.mkv

अब देखते हैं कि हमारे यहाँ क्या है:

पैमाने वीडियो फिल्टर वीडियो का आकार बदलने के लिए है। आप बस एक आकार निर्धारित करते हैं - जो इस उदाहरण में ऊँचाई है - और -1दूसरे आयाम के लिए उपयोग करें । एफएफएमपी पहलू अनुपात को संरक्षित करते हुए स्वचालित रूप से सही मूल्य को पुनर्गणना करेगा।

-crfविकल्प के साथ नियंत्रित गुणवत्ता :

क्वांटाइज़र स्केल की सीमा 0-51 है: जहां 0 दोषरहित है, 23 डिफ़ॉल्ट है, और 51 सबसे खराब संभव है। एक कम मूल्य एक उच्च गुणवत्ता है और एक विषयगत समझदार सीमा 18-28 है। 18 को दृष्टिहीन दोष रहित मानें या लगभग ऐसा ही: इसे इनपुट के समान या लगभग समान दिखना चाहिए, लेकिन यह तकनीकी रूप से दोषरहित नहीं है।

सीमा घातीय है, इसलिए CRF मान +6 बढ़ाना लगभग आधा बिटरेट है, जबकि -6 लगभग बिटरेट से दोगुना है। सामान्य उपयोग उच्चतम सीआरएफ मूल्य चुनना है जो अभी भी एक स्वीकार्य गुणवत्ता प्रदान करता है। यदि आउटपुट अच्छा लगता है, तो एक उच्च मूल्य का प्रयास करें और यदि यह खराब दिखता है तो कम मूल्य चुनें।

आप x264 एन्कोडिंग गाइड में अधिक जानकारी पा सकते हैं ।

आप -presetविकल्पों के साथ वीडियो एन्कोडिंग गति और संपीड़न दक्षता के बीच ट्रेडऑफ़ को नियंत्रित करते हैं। वे अल्ट्राफास्ट, सुपरफास्ट, बहुत अधिक, तेज, तेज, मध्यम, धीमे, धीमे, अतिशय हैं । डिफ़ॉल्ट माध्यम हैVeryslow विकल्प प्रदान करता है सबसे अच्छा संपीड़न दक्षता (समान गुणवत्ता के लिए एक छोटा फ़ाइल आकार में जिसके परिणामस्वरूप), लेकिन यह बहुत धीमी है - जैसा कि नाम से कहते हैं।

ऑडियो बिना किसी बदलाव के सीधे इनपुट फाइल से आउटपुट फाइल में स्ट्रीम हो जाएगा ।


2
लॉर्डनेकरबर्ड - संपादन के लिए धन्यवाद। मेरे पास सभी विवरणों को टाइप करने के लिए पर्याप्त समय नहीं था
निकोला दिमित्रिजेविक

1
आप उदाहरण के लिए ऊंचाई 720 नहीं चौड़ाई निर्धारित कर रहे हैं।
chovy

क्या आप यह पश्चगामी वीडियो
विलियम

2
परिवर्तित किए बिना mkv में सबटाइटल कॉपी करने के लिए, आप जोड़ सकते हैं -scodec copy
कैस्पर

2
मुझे लगता है कि 720p पाने के लिए आपको चौड़ाई 1280 पर सेट करनी होगी, -vf scale=-1:720लेकिन नहीं -vf scale=1280:-1
cdlvcdlv

0

यदि आप एक अलग आकार में स्केल करना पसंद करते हैं, तो FFMPEG स्केलिंग आयामों पर कुछ सीमाएं हैं। यह प्रत्येक ऊंचाई को स्वीकार नहीं करता है, यहां आयामों के लिए सबसे अच्छी सिफारिशों की एक छोटी सूची है।

पिक्सल में चौड़ाई और ऊंचाई 16 गुना होने पर वीडियो कोडेक्स बेहतर प्रदर्शन करते हैं। जब आप अपनी एन्कोडिंग सेटिंग्स में किसी भी चौड़ाई और ऊंचाई का उपयोग कर सकते हैं, तो गैर-इष्टतम आयामों का परिणाम खराब छवि गुणवत्ता और कम फ्रेम दर हो सकता है। सबसे अच्छी छवि गुणवत्ता और प्लेबैक के लिए, आपको अपने वीडियो के लिए चौड़ाई और ऊंचाई आयामों का उपयोग करना चाहिए जो 16 के गुणक हैं; आपकी अगली सबसे अच्छी पसंद 8 का गुणक है और उसके बाद 4 का गुणक है।

Recommended width and height for videos with 16:9 aspect ratios:

Best Choice:     2nd Best:        3rd Best:
Multiples of 16  Multiples of 8   Multiples of 4
1920 x 1080      1792 x 1008      1856 x 1044
1280 x 720       1152 x 648       1216 x 684
1024 x 576        896 x 504       1088 x 612
 768 x 432        640 x 360        960 x 540
 512 x 288        384 x 216        832 x 468
 256 x 144        128 x 72         704 x 396
                                   576 x 324
                                   448 x 252
                                   320 x 180
                                   192 x 108
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.