कृपया 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
विकल्प है कि बफर आकार नियंत्रित करते हैं। आप आम तौर पर केवल स्ट्रीमिंग के लिए इस मोड का उपयोग करते हैं, क्योंकि तकनीक एक निश्चित मूल्य से अधिक नहीं होने के लिए बिट दर को विवश करेगी जो डिकोडर बफर को अधिक या कम प्रवाह का कारण होगा।
संक्षेप में, आपके पास बिटरेट को सीमित करने के लिए कई विकल्प हैं:
सीबीआर प्रक्रिया स्थापित करने के लिए, आपको यह जांचना होगा कि एनकोडर क्या प्रदान करता है। आमतौर पर, आप एक "पूर्ण" निरंतर बिटरेट प्राप्त नहीं कर सकते, क्योंकि एनकोडर बिट्स को बर्बाद नहीं करेगा। उदाहरण के लिए, 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
चेतावनी: इसका परिणाम उन वीडियो के लिए निम्न गुणवत्ता में हो सकता है, जिन्हें कूटना कठिन है, और यह बिट्स को बर्बाद कर देगा। जब तक आपको पूरी तरह से एक निरंतर दर आउटपुट प्राप्त करने की आवश्यकता नहीं है, तब तक इस विकल्प का उपयोग न करें।
स्ट्रीमिंग के लिए एक विवश / परिवर्तनशील बिट दर प्रक्रिया सेट करें। -b:v 3500K -maxrate 3500K -bufsize 1000K
उदाहरण के लिए उपयोग करें । आपको स्पष्ट रूप से दर और बफर आकार को संदर्भ में समायोजित करना होगा। बफर आकार जितना अधिक होगा, अनुमत बिटरेट भिन्नता उतनी ही अधिक होगी।
एक निरंतर गुणवत्ता लक्ष्य का उपयोग करें और केवल spikes को पकड़ने के लिए बिटरेट को सीमित करें। उदाहरण के लिए, -c:v libx264 -crf 23 -maxrate 4M -bufsize 4M
23 के लक्ष्य CRF के साथ परिवर्तनीय बिटरेट पर सांकेतिक शब्दों में बदलना करने के लिए उपयोग करें, लेकिन आउटपुट को अधिकतम 4 MBit / s तक सीमित करें।