আমি দেখতে পাচ্ছি যে -threads <count>ffmpeg এ একটি কমান্ড লাইন বিকল্প রয়েছে। এই বিকল্পের ডিফল্ট মান কী?
আমি দেখতে পাচ্ছি যে -threads <count>ffmpeg এ একটি কমান্ড লাইন বিকল্প রয়েছে। এই বিকল্পের ডিফল্ট মান কী?
উত্তর:
এটি ব্যবহৃত কোডেক, ffmpeg সংস্করণ এবং আপনার সিপিইউ কোর গণনার উপর নির্ভর করে। কখনও কখনও এটি কোর প্রতি কেবল একটি থ্রেড। কখনও কখনও এটি আরও জটিল:
Libx264 এর সাথে এটি ফ্রেমের থ্রেডের জন্য 1.5 x এবং স্লাইস থ্রেডের জন্য কোর x 1 is
2014 হিসাবে এটি একটি অনুকূল নম্বর ব্যবহার করে।
আপনি সিপিইউ লোড (লিনাক্স top:, উইন্ডোজ: টাস্ক ম্যানেজার) ffmpeg বিভিন্ন বিকল্পের সাথে পরীক্ষা করে এটি একটি বহু-কোর কম্পিউটারে যাচাই করতে পারেন :
-threads 0 (অনুকূল);
-threads 1 (একক থ্রেড);
-threads 2 (উদাহরণস্বরূপ একটি ইন্টেল কোর 2 জুটির জন্য 2 টি থ্রেড);
কিছুই নয় (ডিফল্ট, সর্বোত্তমও)।
2015 সম্পাদনা: একটি 12-কোর সিপিইউতে, কিছু ffmpeg কমান্ডের লিনাক্স topসর্বাধিক 200% সিপিইউ (কেবলমাত্র 2 কোর) দেখায়, কোনও সংখ্যা দেওয়া হোক না কেন -threads। সুতরাং ডিফল্টটি এখনও "এই ffmpeg বাইনারি পেতে পারে হিসাবে ভাল" অর্থে অনুকূল হতে পারে, তবে "আমার লিট সিপিইউকে পুরোপুরি শোষণ করে দেওয়ার" অর্থে অনুকূল নয়।
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
এর মধ্যে কয়েকটি উত্তর কিছুটা পুরানো, এবং আমি কেবল যুক্ত করতে চাই যে আমার সাথে ffmpeg 4.1, এনকোডিংয়ের মাধ্যমে libx264আমার রাইজেন 5 2600 এক্স সিস্টেমের সমস্ত 6 টি কোরের / 12 থ্রেড কোনও -threadযুক্তি ছাড়াই সর্বাধিক সজ্জিত হয়েছিল ।
-vcodec libx264 -profile:v high444 -refs 14 -preset ultrafast -crf 18 -tune fastdecodeযাতে বিচ্ছিন্ন হওয়ার জন্য এটি কয়েকটি পরিবর্তনশীল ables যোগ করার -threads 12কোনও প্রভাব ছিল না।
আমি সেন্টোস 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বিকল্পটি ব্যবহার করা পারফরম্যান্স বাড়িয়ে তুলতে পারে তাই আপনার সেটআপগুলিকে মিষ্টি স্পট খুঁজতে বিভিন্ন স্তরে আপনার নির্দিষ্ট মেশিনে কিছু পরীক্ষা চালান।
আপনার থ্রেডিং সক্ষম করা আছে তা ধরে নিয়ে, এটি 1.5x সংখ্যক কোর বরাদ্দ করেছে।
-x264-params sliced-threads=1। বা ব্যবহারের মাধ্যমে -tune zerolatency।