ডিফল্টরূপে ffmpeg কত থ্রেড ব্যবহার করে?


46

আমি দেখতে পাচ্ছি যে -threads <count>ffmpeg এ একটি কমান্ড লাইন বিকল্প রয়েছে। এই বিকল্পের ডিফল্ট মান কী?

উত্তর:


24

এটি ব্যবহৃত কোডেক, ffmpeg সংস্করণ এবং আপনার সিপিইউ কোর গণনার উপর নির্ভর করে। কখনও কখনও এটি কোর প্রতি কেবল একটি থ্রেড। কখনও কখনও এটি আরও জটিল:

Libx264 এর সাথে এটি ফ্রেমের থ্রেডের জন্য 1.5 x এবং স্লাইস থ্রেডের জন্য কোর x 1 is


ধন্যবাদ। আপনার কাছে কি ffmpeg দ্বারা সমর্থিত কিছু স্ট্যান্ডার্ড কোডেকের ডিফল্টগুলির একটি রেফারেন্স রয়েছে?
এডওয়ার্ড ডেল

6
এটির উপর নির্ভর করবেন না। লিনাক্সে আমার ffmpeg 0.7.8 ডিফল্টরূপে 1 থ্রেড ব্যবহার করে যাই হোক না কেন।
বড়ফু আলবিনো

ভাল ফলাফল পেতে কোন মান ব্যবহার করা যেতে পারে? PS আমি এন্ড্রয়েড ফ্রেমওয়ার্ক এফএফএমপেইগ ব্যবহার করছি।
খুনি

23

2014 হিসাবে এটি একটি অনুকূল নম্বর ব্যবহার করে।

আপনি সিপিইউ লোড (লিনাক্স top:, উইন্ডোজ: টাস্ক ম্যানেজার) ffmpeg বিভিন্ন বিকল্পের সাথে পরীক্ষা করে এটি একটি বহু-কোর কম্পিউটারে যাচাই করতে পারেন :

  • -threads 0 (অনুকূল);

  • -threads 1 (একক থ্রেড);

  • -threads 2 (উদাহরণস্বরূপ একটি ইন্টেল কোর 2 জুটির জন্য 2 টি থ্রেড);

  • কিছুই নয় (ডিফল্ট, সর্বোত্তমও)।

2015 সম্পাদনা: একটি 12-কোর সিপিইউতে, কিছু ffmpeg কমান্ডের লিনাক্স topসর্বাধিক 200% সিপিইউ (কেবলমাত্র 2 কোর) দেখায়, কোনও সংখ্যা দেওয়া হোক না কেন -threads। সুতরাং ডিফল্টটি এখনও "এই ffmpeg বাইনারি পেতে পারে হিসাবে ভাল" অর্থে অনুকূল হতে পারে, তবে "আমার লিট সিপিইউকে পুরোপুরি শোষণ করে দেওয়ার" অর্থে অনুকূল নয়।


1
নোট করুন যে এটি কেবলমাত্র এনকোডিংয়ের জন্যই সত্য বলে মনে হচ্ছে, সাধারণ প্রক্রিয়াজাতকরণের জন্য নয়। যদি এটি আসলে আউটপুট ফ্রেম তৈরি না করে তবে এটি সমান্তরাল হবে না। উদাহরণস্বরূপ, যদি আপনি 02:00 এর পরে ডি-কাঁপুনি থাকেন তবে আপনি কেবল 02:00 থেকে সামান্ত্রিকতা পাবেন তবে 02:00 অবধি সমস্ত কিছু এখনও সিরিয়ালি প্রক্রিয়া করা দরকার।
মেহরদাদ

6

2015 সালে উবুন্টু 14.04 এ ffmpeg 0.8.10-6 সহ, এটি একটি 4 কোর সিস্টেমে 1 কোর ব্যবহার করেছে। htopএটি দেখিয়েছে; শুধুমাত্র একটি কোর ব্যবহৃত হয়েছিল এবং আমি ফুলএইচডি ভিডিওর জন্য 16 টি fps রূপান্তর হার পেয়েছি।

ব্যবহার -threads 4করেছেন সব আমার সিপিইউ কোর 100% এ যান এবং আমি 47 FPS একটি রূপান্তরের হার পেয়েছিলাম।

আমি নিম্নলিখিত কমান্ডটি ব্যবহার করেছি:

$ ffmpeg -i foo.mp4 -y -target pal-dvd -aspect 16:9 dvd-out.mpg

6

এর মধ্যে কয়েকটি উত্তর কিছুটা পুরানো, এবং আমি কেবল যুক্ত করতে চাই যে আমার সাথে ffmpeg 4.1, এনকোডিংয়ের মাধ্যমে libx264আমার রাইজেন 5 2600 এক্স সিস্টেমের সমস্ত 6 টি কোরের / 12 থ্রেড কোনও -threadযুক্তি ছাড়াই সর্বাধিক সজ্জিত হয়েছিল ।


আমার 1800X রয়েছে এবং আমি এটির 16 টি থ্রেডে ছড়িয়ে পড়া প্রায় 20% ব্যবহার লক্ষ্য করছি না, তবে আমি কয়েকটি alচ্ছিক যুক্তিও ব্যবহার করছি: -vcodec libx264 -profile:v high444 -refs 14 -preset ultrafast -crf 18 -tune fastdecodeযাতে বিচ্ছিন্ন হওয়ার জন্য এটি কয়েকটি পরিবর্তনশীল ables যোগ করার -threads 12কোনও প্রভাব ছিল না।
এলাসকানোটার

3

আমি সেন্টোস 6.5 ভিএম (রাইজেন 1700 8c / 16t - ভিএম 16 ​​কোরের 12 টি নির্ধারিত) রূপান্তর করে খেলছিলাম। 480p চলচ্চিত্রের পরীক্ষা নিরীক্ষণ করেছে:

থ্রেড বিকল্প / রূপান্তর হার (fps @ 60 সেকেন্ড)

(none/default)/130fps
-threads 1/70fps
-threads 2/120fps
-threads 4/185fps
-threads 6/228fps
-threads 8/204fps
-threads 10/181fps

আকর্ষণীয় অংশটি ছিল সিপিইউ লোডিং ( htopএটি দেখার জন্য ব্যবহার করে)। নিম্ন-লোড স্তরে সমস্ত কোর জুড়ে ছড়িয়ে লোড সহ 130fps পরিসীমাতে
কোনও -threadsবিকল্প ব্যবহার না করা।
1 থ্রেড ব্যবহার করে ঠিক এটি করা হয়েছিল, একটি কোর 100% এ লোড করা হয়েছিল। অন্য যে কোনও কিছু ব্যবহারের ফলে আরও একটি স্প্রেড-লোড পরিস্থিতির সৃষ্টি হয়েছিল।

আপনি দেখতে পাচ্ছেন, রিটার্ন হ্রাস করার একটি বিষয়ও রয়েছে, সুতরাং আপনাকে আপনার নির্দিষ্ট মেশিনের জন্য-থ্রেডস বিকল্পটি সামঞ্জস্য করতে হবে। আমার সেটআপের জন্য, বিশেষত-থ্রেডস 6 (একটি 12 টি মেশিনে) ব্যবহার করে ভিডিও রূপান্তর করার সময় সর্বোত্তম এফপিএস হয়েছে (এইচ 264 থেকে এক্স 264 তে রূপান্তর করার জন্য আলাদা বিটরেটে) এবং রিটার্নগুলি আসলে যে আরও থ্রেড আমি ফেলেছিলাম তা হ্রাস পেয়েছে এটা।

এটি মেমরির সমস্যাও হতে পারে - এটিতে কেবল ভিএমকে 1GB বরাদ্দ করা হয়েছিল। আমি এটি টুইট করতে এবং দেখতে পারেন যে এটি কিছু পরিবর্তন করে। তবুও - এটি দেখায় যে -threadsবিকল্পটি ব্যবহার করা পারফরম্যান্স বাড়িয়ে তুলতে পারে তাই আপনার সেটআপগুলিকে মিষ্টি স্পট খুঁজতে বিভিন্ন স্তরে আপনার নির্দিষ্ট মেশিনে কিছু পরীক্ষা চালান।


আপনি "রূপান্তর" বলতে কী বোঝাতে চান দয়া করে? আদর্শভাবে, সঠিক আদেশ।
ওন্দ্র ŽiŽka

4.1.3 উবুন্টু 18.04 এ এবং খুব অনুরূপ ফলাফল। ডিফল্টটি ছিল "সমস্ত কোরের উপর কম লোড"।
রোল ভ্যান ডি পার

আমি অনুমান করি যে আপনি কেন "12 কোর" মেশিনে 6 টি থ্রেডে সর্বোত্তম হয়ে উঠলেন (সিপিইউ নির্দিষ্ট নয়, প্রথম তালিকাভুক্তের চেয়ে আলাদা) এটি কি 6 টি সত্যিকারের প্রকৃত সংখ্যা এবং 12 টি থ্রেডের সংখ্যা হতে পারে?
রোল ভ্যান দে পার

1

আপনার থ্রেডিং সক্ষম করা আছে তা ধরে নিয়ে, এটি 1.5x সংখ্যক কোর বরাদ্দ করেছে।


ফ্রেমের থ্রেডগুলির জন্য 1.5 x সংখ্যার কোর। স্লাইস থ্রেডগুলির জন্য 1 টি সংখ্যার কোর। এটি (lib) x264 এর জন্য নির্দিষ্ট। আমি নিশ্চিত নই যে অন্যান্য এনকোডারদের জন্য বরাদ্দ কী।
লগন

@ লর্ডনেকবার্ড ফ্রেম থ্রেডিং এবং স্লাইস থ্রেডিংয়ের মধ্যে কীভাবে পরিবর্তন করবেন !?
ডাঃ জ্যাকি

1
@ মিঃ হাইড সম্ভবত সাথে -x264-params sliced-threads=1। বা ব্যবহারের মাধ্যমে -tune zerolatency
লগন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.