আমি একটি লক্ষ্য বা সর্বোচ্চ 10 এমবি আকারের , 60 সেকেন্ড দৈর্ঘ্যের একটি ভিডিও এনকোড করতে চাই ।
আমি জানি দুটি উপায় আছে। এর একটি এফএফএমপিইগ-উইকিতে ব্যাখ্যা করা হয়েছে, এবং অন্যটি আমি নথিতে পেয়েছি। দুর্ভাগ্যক্রমে, কখন কোন পদ্ধতিটি ব্যবহার করবেন সে সম্পর্কে আমি কোনও ব্যাখ্যা পাইনি।
এই পদ্ধতির কোনও প্রস্তাবিত হয়? যদি তা না হয় তবে প্রতিটি পদ্ধতির আপসাইড / ডাউনসাইডগুলি কী কী?
1) ffmpeg-wiki তে বর্ণিত ভিডিওর দৈর্ঘ্যের সাথে মেলানোর জন্য বিট্রেট গণনা করুন এবং সেট করুন
(10 এমবি * 8192 [এমবিকে কিলোবাইটে রূপান্তর করে]) / 60 সেকেন্ড = ~ 1365 কেবিট / গুলি মোট বিটরেট 1365 কে - 128 কে (পছন্দসই অডিও বিটরেট) = 1237 কে ভিডিও বিটরেট
ffmpeg -y -i input -c:v copy -preset medium -b:v 1237k -pass 1 -c:a copy -b:a 128k -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -preset medium -b:v 1237k -pass 2 -c:a libfdk_aac -b:a 128k output.mp4
2) -fs
প্যারামিটারটি ব্যবহার করুন এবং ffmpeg এটি বের করার সুযোগ দিন।
ffmpeg -i input -c:v copy -c:a copy -preset medium -crf 23 -fs 10485760 output.mp4
libx264
হিসাবে ব্যবহার করা উচিতc:v
। ইনfs
উদাহরণস্বরূপ, আপনি ভিডিও ট্রান্সকোডিং করা হয় না, যেহেতু-c:v copy
ব্যবহার করা হয়। সুতরাং,preset
এবংcrf
এরও কোনও প্রভাব নেই।