কীভাবে বিটেরেট, -ম্যাক্সেট এবং ওয়েবের জন্য কোনও ভিডিওর আকার বিবেচনা করবেন


13

আমি আমার ভিডিওগুলিকে ওয়েবে আপলোড করতে এনকোড করতে ffmpeg ব্যবহার করছি। আমি ffmpeg ব্যবহার সম্পর্কে এই পোস্টটি দেখেছি , তবে মানগুলি কীভাবে বিবেচনা করা যায় তা সম্পর্কে যথেষ্ট ধারণা পাইনি।

ধরুন আমার কাছে 4 মিনিটের সময়কাল সহ 70 মেগাবাইটের একটি ভিডিও রয়েছে। আমি এই পতাকার জন্য মান কিভাবে বিবেচনা হবে: -b:v, -maxrateএবং -bufsizeএই কমান্ড জন্য?

ffmpeg -i input -codec:v libx264 -profile:v main -preset slow -b:v ? -maxrate ? -bufsize ? -vf "scale=720:trunc(ow/a/2)*2" -threads 0 -codec:a libfdk_aac -movflags +faststart output

অথবা crfমানগুলির মতো 19-24 এর মতো কোনও সাধারণ মান আছে ? আমি সত্যিই আপনার সহায়তা এবং দিকনির্দেশনা কৃতজ্ঞ হবে।


ভিডিও এনকোডিং একটি শিল্প, এবং মাস্টার করার জন্য এখানে কয়েকশ পরামিতি রয়েছে। লক্ষ্য করুন যে দ্বি-পাসের এনকোডিং বিটরেটগুলির সাথে খেলার চেয়ে বেশিরভাগ পরিস্থিতিতে আরও ভাল মানের এবং সংকোচন সরবরাহ করবে। চূড়ান্তভাবে চূড়ান্ত আকার এবং ভিডিও বিটরেট মূলত ভিডিও আউটপুট আকারের উপর নির্ভর করে। আপনি যদি একই ভিডিওর গুণমান রাখার কথা বলেন তবে ffmpeg সর্বোচ্চভাবে এবং বিটরেট চয়ন করতে যথেষ্ট পরিমাণে স্মার্ট। আরও লক্ষ করুন যে 480px প্রস্থের ভিডিও তৈরি করা বেশিরভাগ পরিস্থিতিতে যথেষ্ট ভাল, এবং এটি বিট্রেটসের সাথে খেলে আরও অনেক বেশি ব্যান্ডউইথকে সাশ্রয় করবে।
ইরিজন

1
@ আইরিজন আমি সম্মত, ভিডিও এনকোডিং একটি শিল্প এবং 480 সাধারণত যথেষ্ট ভাল। তবে আমি আরও উচ্চতর রেজোলিউশনগুলি পাওয়া পছন্দ করি কারণ আমি আর 640x480 এ কোনও সিআরটি ব্যবহার করি না। বিট্রেটসের সাথে ফিডিংয়ের চেয়ে আকারগুলি হ্রাস করার এটি অবশ্যই একটি ভাল উপায়, তবে আবার, আমি বিকল্পগুলি পছন্দ করি।
Wyatt8740

উত্তর:


21

এটি সত্যিই আপনার আপলোডের গতির উপর নির্ভর করে।

bufsizeআপনার বিটরেটকে অবিচ্ছিন্ন রাখার বিষয়ে ধর্মীয় ffmpeg কতটা তা নির্ধারণ করবে। আপনি যদি FFmpeg উইকি: আউটপুট বিটরেট সীমাবদ্ধ করেbufsize , 64k এর একটি সেট করে থাকেন তবে এটি তার বর্তমান বিটরেট প্রতি 64 কিলোবাইট গণনা করবে এবং সেই অনুযায়ী সামঞ্জস্য করবে। ছোট আকারের জন্য এটি মানের জন্য ক্ষতিকারক হতে পারে যাতে তারা হঠাৎ পরিবর্তন করতে x264 এর জন্য চেকগুলির মধ্যে পর্যাপ্ত স্থানের অনুমতি দেয় না - আপনি ব্লকনেস পাবেন getbufsize

যদি আপনার maxrate640 কেবিপিএস হয় এবং আপনার 64k bufsizeহয়, তবে দ্বিতীয় x264 এর প্রতি দশমাংশটি পরীক্ষা করে দেখবে । এটি উপ-অনুকূল - এফএফম্পেগ উইকি: স্ট্রিমিং সাইটগুলির জন্য এনকোডিং প্রতি 1 থেকে 2 সেকেন্ডে এটি চালানোর পরামর্শ দেয়। যদি এটি অর্থবোধ করে না, তবে এটিকে চেকের ফ্রিকোয়েন্সি maxrate/ bufsize= হিসাবে ভাবেন । থাম্বের নিয়ম হিসাবে এই ফ্রিকোয়েন্সিটি 1 এবং 2 সেকেন্ডের মধ্যে রাখুন।

আপনি উভয় সেট করেন তাহলে maxrateএবং bufsizeতোমার উচিত:

  • maxrateআপনার সর্বনিম্ন আপলোডের গতি সম্ভবত যাই হোক না কেন সেট করুন ( ffmpeg উইকির উদাহরণে , এটি মোট আপলোডের গতির ৮০% তবে আপনার মাইলেজটি পৃথক হতে পারে)।
  • bufsizeআপনার maxrate(এক সেকেন্ড) এবং আপনার দ্বিগুণ maxrate(2 সেকেন্ড) এর মাঝে কোথাও সেট করুন । যদি এটি এখনও পর্যাপ্ত পরিমাণে না থাকে maxrateতবে আপনার কম করুন এবং তারপরে পুনরায় সেট করুন bufsize

তারপরে, আপনাকে কিছুটা খেলতে হবে, তবে যেহেতু আপনাকে কোথাও শুরু করতে হবে আমি কেবল maxrateপ্রায় 600k এর কাছাকাছি শুরু করব , যা আমার crfসমস্ত কিছুর জন্য ব্যবহার করার আগে সাধারণত আমার পক্ষে যথেষ্ট সন্তুষ্ট ছিল ।

আপনি যদি চান তবে bufsizeপ্রতি তিন বা চার সেকেন্ডের মতো আপনিও নীচের মানগুলি চেষ্টা করতে পারেন , কেবলমাত্র আপনার আউটপুটটি কেমন দেখায় মানটি কীভাবে পরিবর্তিত হয় তা দেখতে। তারপরে আপনি আপনার ভিডিওর জন্য এটি সম্পর্কে কতটা চিন্তা করা উচিত তা নির্ধারণ করতে পারেন।

সত্যিকার অর্থে কোনও সাধারণ মান নেই, যা crfযা মনে করে তার উপর ভিত্তি করে আউটপুট অনুকূলিতকরণ যা তার হার নির্ধারণ করা হয় তা বজায় রাখার জন্য সেরা বাফার আকার। এটি মাঝে মাঝে স্পাইকের ব্যয়ে কিছু গুণমান বজায় রাখার সময় কোনও ফাইলের আকার কম রাখার চেষ্টা করে।


1
"আপনার ম্যাক্স্রেট (এক সেকেন্ড) এর সমান এবং আপনার ম্যাক্রেটের অর্ধেক (2 সেকেন্ড) এর মধ্যে কোথাও বুফসাইজ সেট করা উচিত নয়" আপনার "(মেক্রেট (এক সেকেন্ড) এবং দ্বিগুণ আপনার ম্যাক্স্রেট (2) এর মাঝে কোথাও বুফসাইজ সেট করা উচিত" সেকেন্ড) "?
এলী

@ ইলি আমি মনে করি তুমি ঠিক আছ আমার প্রতি অর্ধেক সেকেন্ডে এটি করত। আমি ঠিক করব!
Wyatt8740

@ Wyatt8740 দুঃখিত, আমি খুব ব্যস্ত ছিলাম। শুধু একটি প্রশ্ন যদিও। আমি যদি ব্যবহার করি crf, তবে আমার নির্দিষ্ট করার দরকার নেই bitrate, buffsizeএবং maxrate? এবং যদি তাই হয় তবে কোনটি আরও কার্যকর (ব্যবহার crfবা bitrate, buffsizeএবং maxrate)?
রবিন

@ রবিন আপনি বুফসাইজ ব্যবহার করতে পারেন এবং ক্রাফের সাহায্যে ম্যাক্রেট করতে পারেন। মনে রাখবেন, সিআরএফ নির্দিষ্ট মানের সাথে মেলে ফ্লাইতে বিটরেট সামঞ্জস্য করবে এবং যদি ভিডিওর কিছু অংশ খুব জটিল হয় তবে বিটরেট আকাশে উচ্চতর অঙ্কুরিত হবে এবং আপনি সম্ভবত এটি চান না, তাই বুফসাইজের সাথে আরও ভাল "একটি লক লাগান" better এবং সর্বাধিক বাড়িয়ে তোলা (তবে খুব কড়া নয়, বা আপনার ভিডিওটি ক্রেপের মতো দেখবে! :))
এলি

@ রবিন সঠিক, আপনার অন্যদের সাথে ক্রাফ ব্যবহার করার দরকার নেই। তবে আপনি এটি সীমাবদ্ধ করতে চাইলে পারেন can সিআরএফ স্থির মানের বজায় রাখার চেষ্টা করে - আপনি bufsizeএবং এর সাথে সীমাবদ্ধতার মধ্যে এটি করতে বাধ্য করতে পারেন maxratebitrateযদিও আপনার দরকার নেই। এলি যেমন বলেছেন, এটি স্ট্রিমিংয়ের জন্য আরও ভাল করে তুলবে।
Wyatt8740
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.