FFmpeg विकल्पों में मैं हैंडब्रेकब्लसीआई विकल्पों का अनुवाद कैसे करूं?


13

मेरे पास कमांडलाइन सेटिंग्स का एक गुच्छा है जो हैंडब्रेक के लिए काम करता है, लेकिन कभी-कभी कुछ वीडियो पर (मुझे नहीं पता कि क्यों) हैंडब्रेक "मेमोरी अपवाद से बाहर" फेंकता है। मैं सोच रहा था कि क्या मैं एक ही विकल्प कुंजी पा सकता हूं और इसे FFmpeg के साथ कर सकता हूं, लेकिन ऐसा करना आसान नहीं है।

FFmpeg में कभी-कभी या तो उन विकल्प नहीं होते हैं या डिफ़ॉल्ट रूप से सामान होता है। उदाहरण के लिए मुझे नहीं पता कि FFmpeg के साथ कस्टम एनामॉर्फिक कैसे किया जाता है। मेरे लिए यह बहुत महत्वपूर्ण है कि परिणामी वीडियो उतने ही अच्छे होंगे, जितने वे हैंडब्रेक के साथ किए जाते हैं। यहाँ हैंडब्रेक के लिए लाइन है:

HandBrakeCLI.exe --input "d:\input.mpg" --output "d:\output.mp4" --rate 29.97 --cfr --arate 44.1 --format mp4 --width 1920 --height 1080 --custom-anamorphic --display-width 1920 --keep-display-aspect --modulus 8 --crop 0:0:0:0 --encoder x264 --vb 5200 --aencoder faac --ab 128 --mixdown stereo -x bitrate=5200:vbv-bufsize=5200:vbv-maxrate=5200:level=42:bframes=2:min-keyint=60:keyint=60:ref=4:me=umh:merange=64:subme=7:8x8dct:cabac=1  -v3 -2 -a none

मैं इसे FFmpeg कमांड में कैसे बदलूं?

जवाबों:


20

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

बुनियादी हैंडब्रेक विकल्पों में से कई (जैसे फ्रेम दर) x264 के लिए विशिष्ट नहीं हैं, और वे FFmंदी ऑनलाइन दस्तावेज़ में बिखरे हुए हैं ।

शुरू करने से पहले, कृपया जांच लें कि आप हाल ही में FFmpeg संस्करण का उपयोग करते हैं। उनकी डाउनलोड साइट में सभी प्रमुख ऑपरेटिंग सिस्टम के लिए स्थिर बिल्ड हैं।

चलो चलते हैं:

  • --input "d:\input.mpg" --output "d:\output.mp4"

    FFmpeg सिंटैक्स है ffmpeg -i input.mpg … d:\output.mp4

  • --rate 29.97

    के साथ वीडियो फ्रेम दर निर्दिष्ट करें -r 29.97। (हैंडब्रेक --cfrबस एक स्थिर फ्रेम दर निर्धारित करता है। यहां आवश्यक नहीं है)।

  • --arate 44.1

    ऑडियो नमूना दर -ar 44100(हर्ट्ज में) के साथ सेट करें ।

  • --format mp4

    जरूरत नहीं है क्योंकि FFmpeg जानता है कि आप MP4 चाहते हैं।

  • --width 1920 --height 1080 --custom-anamorphic --display-width 1920 --keep-display-aspect --modulus 8 --crop 0:0:0:0

    यह 1920 × 1080 के आकार को सेट करने के अलावा कुछ नहीं करता है। FFmpeg में, इसे करें -s:v 1920x1080, या यदि आप फ़िल्टर का उपयोग करना चाहते हैं, तो -filter:v "scale=1920:1080"

  • --encoder x264 --vb 5200

    साथ एनकोडर -c:v libx264और बिट दर को स्थिर करने के लिए सेट करें -b:v 5200K। ध्यान दें कि जब हम गुणवत्ता सेटिंग्स की बात करते हैं तब तक हम वहां नहीं होते हैं।

  • --aencoder faac --ab 128 --mixdown stereo

    ऊपर के समान, साथ -c:a libfaac -b:a 128K -ac 2। ध्यान दें कि एफएएसीएफपी में एफएएसी समर्थित नहीं है; इसके बजाय, अंतर्निहित FFmpeg एन्कोडर का -c:a aac -b:a 128Kउपयोग करें।

  • -x bitrate=5200:vbv-bufsize=5200:vbv-maxrate=5200

    यह VBV को एन्कोडिंग मोड सेट करता है जो एक निरंतर बिटरेट या स्थिर गुणवत्ता के बजाय एक स्ट्रीमिंग परिदृश्य को लक्षित करता है। लगातार गुणवत्ता को CRF भी कहा जाता है , x264 के लिए डिफ़ॉल्ट - इसे हैंडब्रेक में "रेट फैक्टर" कहा जाता है। जबकि CRF आमतौर पर आपको सर्वोत्तम गुणवत्ता वाले एनकोड देता है, VBV मोड आपको एक फाइल देता है जो ऑनलाइन स्ट्रीमिंग के लिए या सीमित क्षमताओं वाले कुछ उपकरणों के लिए बेहतर है।

    VBV सेट करने के लिए, का उपयोग करें -maxrate 5200Kऔर -bufsize 5200Kffmpeg में विकल्प।

    CRF सेट करने के लिए -crf 23, ffmpeg में उपयोग करें ।

  • level=42

    का उपयोग करें -level 42। यह H.264 लेवल है

  • bframes=2:min-keyint=60:keyint=60:ref=4

    के साथ बी-फ्रेम्स की संख्या निर्धारित करें -bf 2। न्यूनतम कीफ़्रेम अंतराल के साथ सेट किया गया है -keyint_min 60, और अधिकतम अंतराल के साथ -g 60। संदर्भ चित्रों की संख्या के साथ सेट किया गया है -refs 4

  • me=umh:merange=64:subme=7:8x8dct:cabac=1

    ये ऐसे विकल्प हैं जिन्हें आप ffmpeg में अतिरिक्त रूप से सेट कर सकते हैं -x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1- जैसे कि कोई भी अन्य x264 एनकोडर सेटिंग जो सीधे ffmpeg विकल्पों में मैप नहीं की जाती है।

    यदि आप आलसी हैं, तो "TL; DR" संस्करण यहां दें, विवरणों की परवाह न करें, या यदि चीजें काम नहीं करती हैं: तो -preset:v medium(या इसे बाहर छोड़ दें, क्योंकि मध्यम पूर्व निर्धारित डिफ़ॉल्ट है)। X264 प्रीसेट संपीडन दक्षता के लिए एन्कोडिंग गति का व्यापार करने वाले विकल्पों का एक समूह चुनते हैं। वे आसानी से से नामित कर रहे हैं ultrafast, superfast, veryfast, faster, fast, mediumकरने के लिए slow, slowerऔर veryslow। जो भी आपको सहज लगे, उसे चुनें।

तो, संक्षेप में, लंबा संस्करण:

ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -b:v 5200K -maxrate 5200K -bufsize 5200K -level 42 -bf 2 -keyint_min 60 -g 60 -refs 4 -x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1 -c:a aac -b:a 128K -ar 44100 d:\output.mp4

या मेरे द्वारा उपयोग किए जाने वाले लघु (VBV एन्कोडिंग और हटाए गए कुछ विस्तार विकल्पों के साथ):

ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -b:v 5200K -maxrate 5200K -bufsize 5200K -c:a aac -b:a 128K -ar 44100 d:\output.mp4

एक सर्व-प्रयोजन रूपांतरण के लिए निरंतर गुणवत्ता एन्कोडिंग में बदलना, इसका उपयोग करें और -crfपैरामीटर को 18 से 28 तक बदल दें , जहां कम का मतलब बेहतर गुणवत्ता और 23 डिफ़ॉल्ट है:

ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -crf 23 -c:a aac -b:a 128K -ar 44100 d:\output.mp4

हाहा @slhck, जैसे ही मैं अपने जवाब पर फिनिशिंग टच दे रहा था, तुम जाओ और एक बेहतर दे दो।
21
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.