FFmpeg में "-vb" और "मिनेट" / "अधिकतम" सेटिंग्स के साथ परिवर्तनीय बिट दर


12

प्रतिपादन के लिए, इसमें लगने वाला समय बहुत अलग है।

  • -b 3500K -minrate 0K -maxrate 8000K 1hr 17min लेता है
  • vb=3000k 2.5 घंटे लगते हैं

क्या है vb 3000kऔर यह कैसे अलग है -b 3500K -minrate 0K -maxrate 8000K? क्या ये परिवर्तनशील बिट दर सेटिंग्स हैं?

अगर मैं बदल गया -b 3500K -minrate 3500K -maxrate 3500K, तो क्या वह निरंतर बिट दर है?

जवाबों:


16

कृपया FFmpeg के लिए प्रलेखन पढ़ें , और ffmpeg -h fullविकल्पों की सूची के लिए दौड़ें । इसके अलावा, मेरे द्वारा लिखे गए इस लेख पर एक नज़र डालें, जो x264 और x265 जैसे एन्कोडर में दर नियंत्रण मोड के बीच के अंतर को दर्शाता है।

आमतौर पर, यहां विकल्पों का क्या मतलब है:

  • -b:v(या -vb, वही) एनकोडर का उपयोग करने के लिए लक्ष्य औसत बिट दर निर्दिष्ट करता है:

    -b <int> E..VA। बिटरेट (बिट्स / सेकेंड में) (0 से INT_MAX तक)

  • -minrate उपयोग की जाने वाली न्यूनतम सहिष्णुता निर्दिष्ट करता है:

    -minrate <int> E..VA। न्यूनतम बिटरेट सहिष्णुता (बिट्स / एस में) सेट करें। सीबीआर एनकोड स्थापित करने में सबसे उपयोगी। यह बहुत कम उपयोग है अन्यथा। (INT_MIN से INT_MAX तक)

  • -maxrateएक अधिकतम सहिष्णुता निर्दिष्ट करता है। हालाँकि, जैसा कि दस्तावेज़ीकरण इंगित करता है, यह केवल इसके साथ संयोजन में उपयोग किया जाता है bufsize:

    -maxrate <int> E..VA। अधिकतम बिटरेट सहिष्णुता (बिट्स / एस में) सेट करें। bufsizeसेट करने की आवश्यकता है। (INT_MIN से INT_MAX तक)

    -bufsize <int> E..VA। बिटक्वाँट्रल बफर साइज़ (बिट्स में) (INT_MIN से INT_MAX तक) सेट करें

    यह केवल चर बिट दर एन्कोडिंग के लिए समझ में आता है, जहां एक निरंतर बिट दर या निरंतर गुणवत्ता मॉडल का उपयोग करने के बजाय, एनकोडर डिकोडर पर एक आभासी बफर के साथ एक ट्रांसमिशन का अनुकरण करता है। -minrate/ -maxrate/ -bufsizeविकल्प है कि बफर आकार नियंत्रित करते हैं। आप आम तौर पर केवल स्ट्रीमिंग के लिए इस मोड का उपयोग करते हैं, क्योंकि तकनीक एक निश्चित मूल्य से अधिक नहीं होने के लिए बिट दर को विवश करेगी जो डिकोडर बफर को अधिक या कम प्रवाह का कारण होगा।

संक्षेप में, आपके पास बिटरेट को सीमित करने के लिए कई विकल्प हैं:

  1. सीबीआर प्रक्रिया स्थापित करने के लिए, आपको यह जांचना होगा कि एनकोडर क्या प्रदान करता है। आमतौर पर, आप एक "पूर्ण" निरंतर बिटरेट प्राप्त नहीं कर सकते, क्योंकि एनकोडर बिट्स को बर्बाद नहीं करेगा। उदाहरण के लिए, libx264 के लिए सेटिंग -b:v, -minrateऔर -maxrateसमान स्तर प्राप्त करेंगे:

    ffmpeg -i input.mp4 -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 1M -minrate 1M -maxrate 1M -bufsize 2M output.ts
    

    चेतावनी: इसका परिणाम उन वीडियो के लिए निम्न गुणवत्ता में हो सकता है, जिन्हें कूटना कठिन है, और यह बिट्स को बर्बाद कर देगा। जब तक आपको पूरी तरह से एक निरंतर दर आउटपुट प्राप्त करने की आवश्यकता नहीं है, तब तक इस विकल्प का उपयोग न करें।

  2. स्ट्रीमिंग के लिए एक विवश / परिवर्तनशील बिट दर प्रक्रिया सेट करें। -b:v 3500K -maxrate 3500K -bufsize 1000Kउदाहरण के लिए उपयोग करें । आपको स्पष्ट रूप से दर और बफर आकार को संदर्भ में समायोजित करना होगा। बफर आकार जितना अधिक होगा, अनुमत बिटरेट भिन्नता उतनी ही अधिक होगी।

  3. एक निरंतर गुणवत्ता लक्ष्य का उपयोग करें और केवल spikes को पकड़ने के लिए बिटरेट को सीमित करें। उदाहरण के लिए, -c:v libx264 -crf 23 -maxrate 4M -bufsize 4M23 के लक्ष्य CRF के साथ परिवर्तनीय बिटरेट पर सांकेतिक शब्दों में बदलना करने के लिए उपयोग करें, लेकिन आउटपुट को अधिकतम 4 MBit / s तक सीमित करें।


1
यह एक परिवर्तनीय बिट दर का उपयोग करके कैसे सांकेतिक शब्दों में बदलना होगा? सिंटैक्स के रूप में उपयोग करने के लिए?
स्कॉट डाउनी

आप किस एनकोडर का उपयोग करना चाहते हैं?
slhck

ffmpeg, I beleive kdenlive में प्रयोग किया जाता है
स्कॉट डाउनी

नहीं, मेरा मतलब है: X264 के लिए H.264 / MPEG-4 AVC वीडियो या MPEG-4 के लिए XviD, या Ogg थेरा, आदि, सीधे शब्दों में कहें, आपको कौन सी फाइल चाहिए? MP4?
slhck

3
FFmpeg में x264 के साथ एन्कोडिंग के बारे में अधिक जानकारी के लिए यहां देखें ; विशेष रूप से प्रीसेट्स को देखता है (मैं आम तौर पर बहुत अधिक पूर्व निर्धारित का उपयोग करता हूं, मेरे परीक्षणों में फाइलों में सबसे बड़ी ड्रॉपऑफ सुपरफास्ट और बहुत अधिक के बीच थी - उसके बाद अंतर बहुत अधिक वृद्धिशील थे। निश्चित रूप से वाईएमएमवी)।
15
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.