2011-09-11 16 views
22

मैं वीडियो FFmpeg का उपयोग कर परिवर्तित जबकि H264 के लिएएच 264 में फास्टस्ट रूपांतरण के लिए एफएफएमपीईजी में थ्रेड गिनती विकल्प?

  • किसी भी इनपुट प्रारूप स्रोत वीडियो के
  • उपयोगकर्ता की मशीन कोर
  • पावर और स्मृति की खपत के किसी भी संख्या हो सकती है अधिकतम गति करने की जरूरत है गैर-मुद्दे

बेशक, विकल्प का एक पूरा समूह है एस को tweaked किया जा सकता है लेकिन यह सवाल विशेष रूप से सर्वोत्तम -thread <count> विकल्प चुनने के बारे में है। मैं

  • संख्या के फ़ंक्शन के रूप में एक आदर्श थ्रेड गिनती खोजने की कोशिश कर रहा हूं। कोर
  • इनपुट वीडियो प्रारूप
  • एच 264-अनुकूल मूल्य शायद?
  • और कुछ भी ऊपर याद किया?

मुझे पता है कि डिफ़ॉल्ट -thread 0 एक-थ्रेड-प्रति-कोर दृष्टिकोण का पालन करता है जो इष्टतम माना जाता है। लेकिन मुझे यकीन नहीं है कि यह समय या स्थान-अनुकूलित है या नहीं। इसके अलावा, कुछ टेस्टकेसेस पर, मैंने और अधिक धागे देखे हैं (मेरी दोहरी कोर टेस्ट मशीन पर 4 धागे कहते हैं) डिफ़ॉल्ट से तेज़ी से खत्म होते हैं।

कोई अन्य दिशा, कॉन्फ़िगरेशन विकल्प w.r.t. कहें धागे, पीछा लायक?

+4

यह है- थ्रेड x नहीं- थ्रेड एक्स। – Gp2mv3

उत्तर

1

यदि आपके 'ड्यूल-कोर' में हाइपरथ्रेडिंग है, तो 2x कोर शायद सही होंगे। वर्चुअल कोर (इंक। हाइपरथ्रेडिंग) की संख्या से आगे बढ़ने की संभावना नहीं है, लेकिन शायद एफएफएमपीईजी में आंतरिक मुद्दों के कारण यह सच हो सकता है।

13

मुझे पता चला है कि threads सभी कोरों का उपयोग करने का अच्छा काम न करें, हाइपर-थ्रेड का उपयोग बिल्कुल नहीं किया जाता है। एक समाधान जो मैं साथ आ सकता हूं, समानांतर में 3 से 4 एफएमपीईपीजी प्रक्रियाओं को चलाने के लिए है, देखें: https://superuser.com/questions/538164/how-many-instances-of-ffmpeg-commands-can-i-run-in-parallel/547340#547340 यह दृष्टिकोण पूरी तरह से सभी कोरों का उपयोग करके समाप्त होता है और एकल इनपुट से तेज़ होता है, एकल कमांड विकल्प में एकाधिक आउटपुट।

+0

क्या आप स्पष्ट रूप से 'थ्रेड' को 1 पर लॉक करते हैं या आप इसे 0 पर छोड़ देते हैं (ऑटो या 'इष्टतम' जैसे कुछ इसे कॉल करते हैं)? – emkman

0

मैंने धागे 0, 6, 12, 24 के साथ अच्छी तरह से प्रयोग किया है और यह फ्रेम दर, समग्र प्रसंस्करण समय या CPU उपयोग में कोई फर्क नहीं पड़ता है। ध्यान दें कि मेरे सिस्टम में 12 भौतिक कोर भी हैं। आम तौर पर यह थ्रेड निर्दिष्ट किए बिना आपकी प्रोसेसिंग पावर का उपयोग करने का अच्छा काम करता प्रतीत होता है जहां मेरे 12 कोर मूल रूप से 98-99% उपयोग के दौरान उपयोग किए जाते हैं जबकि शीर्ष/सिस्टम मॉनिटर देखते हैं।

मेरी इच्छा है कि वहां एक जादू बुलेट था लेकिन अब चीजों को गति देने का कोई और तरीका नहीं है क्योंकि ffmpeg वर्तमान में मेरी राय में बहुत अच्छी तरह अनुकूलित है। एकमात्र विकल्प बस अधिक कंप्यूटिंग पावर या वितरित प्रसंस्करण करने के लिए है।

* ध्यान दें कि मेरे सभी परीक्षण ffmpeg संस्करण 3.3.1