উত্তর:
sameq
"একই মানের" মানে নাওয়েবে বেশ কয়েকটি সংস্থানগুলি বিকল্প sameq
বা same_quant
বিকল্পের ব্যবহারকে প্রচার করে তবে সংক্ষেপে তারা ভুল। ব্যবহার sameq
আপনাকে ইনপুট হিসাবে একই মানের সাথে ফলাফল দেয় না।
কখনও এটি ব্যবহার করবেন না।
বিভ্রান্তির উত্সটি দুর্বলভাবে লিখিত দস্তাবেজ ছিল যা বোঝায় যে এই বিকল্পটি ব্যবহার করা একই মানের করবে। ভাগ্যক্রমে, বিকল্পটি সরানো হয়েছে।
এফএফম্পেগ ডকুমেন্টেশন যা বলেছিল তা এখানে :
মনে রাখবেন যে এটি একই মানের নয়। আপনার যদি প্রয়োজন না হয় তবে এই বিকল্পটি ব্যবহার করবেন না।
বস্তুত FFmpeg ডেভেলপারদের ছিল নাম পরিবর্তন থেকে sameq
থেকে same_quant
ঠিক নিশ্চিত করার জন্য, এবং তারপর মুছে sameq
/same_quant
পুরাপুরি; মানে এই সাম্প্রতিক এফএফপিপেতে এই বিকল্পটির অস্তিত্ব নেই, তবে এই নিবন্ধটি এখনও পুরানো এফএফএমপিগ বিল্ডগুলি ব্যবহার করে তাদের জন্য কার্যকর।
এখন আমরা এটি পরিষ্কার করেছি, আসুন কিছু প্রযুক্তিগত বিশদ বিবরণে যাওয়া যাক।
এটি নির্ভরযোগ্যভাবে কেন কাজ করে না তা বোঝার জন্য, একটি সাধারণ ভিডিও এনকোডারটির জন্য "মানের" অর্থ কী এবং গুণমানকে কী প্রভাবিত করে তা আমাদের উপলব্ধি করতে হবে। বিভিন্ন বিট রেট সংকুচিত করার সময় কেন একটি ভিডিও অন্যর চেয়ে ভাল দেখায়? কী রূপান্তরকে ক্ষতিকারক করে তোলে এবং এনকোডিংয়ের পরে ভিডিওটি কেন মূলের চেয়ে ছোট?
আপনি যখন ভিডিও এনকোড করবেন তখন আপনার ইনপুট ডেটাটিকে প্রথমে পিক্সেলের ব্লকে গাণিতিক রূপান্তর প্রয়োগ করে একটি ভিন্ন মাত্রায় রূপান্তরিত করা হবে। এই রূপান্তরটি, বেশিরভাগই একটি বিচ্ছিন্ন কোসিন ট্রান্সফর্ম , সংখ্যার একটি ম্যাট্রিক্স তৈরি করে যা ধরা যাক, ভিডিওতে 8 × 8 পিক্সেলের ক্ষেত্র বর্ণনা করে।
সুতরাং, আপনার 8 × 8 পিক্সেল এবং সংশ্লিষ্ট ম্যাট্রিক্সটি প্রাথমিকভাবে এর মতো দেখাবে: 1
তবে এটি খুব বেশি ডেটা! যদি আমরা ভিডিওটি সংকোচন করতে চাই তবে আমরা নীচের ডানদিকে সংখ্যাগুলি থেকে মুক্তি পেতে পারি। এটি হুবহু কেন তা আমি ব্যাখ্যা করব না, তবে আসুন কেবল এইভাবে বলি যে এই জাতীয় ব্লক বর্ণনা করার সময় উপরের বামে সংখ্যাগুলি আরও গুরুত্বপূর্ণ। মূলত রূপান্তরের পুরো ধারণাটি গুরুত্বপূর্ণ জিনিসটিকে উপরের বামে রাখা হয়।
নীচে ডানদিকে সংখ্যাগুলি সরাতে আমরা তাদের শূন্য করতে পারি। যদি কিছু "কিছুই না" হয়, বা কেবল 0
s হিসাবে পুনরাবৃত্তি করে থাকে তবে আমাদের এটিকে সংরক্ষণ করতে হবে না এবং সেইভাবে আমরা স্থান সংরক্ষণ করব। গাণিতিকভাবে, আমাদের আরেকটি ম্যাট্রিক্স, "কোয়ান্টাইজেশন ম্যাট্রিক্স" প্রয়োগ করে আমাদের এই প্রথম ম্যাট্রিক্সকে কোয়ান্টাইজ করা দরকার ।
এটি এমন ম্যাট্রিক্সের ফলাফল করবে যার মধ্যে এখন যথেষ্ট সংখ্যক সংখ্যা রয়েছে এবং প্রচুর শূন্য রয়েছে:
এর ফলাফল হ'ল আমরা প্রচুর সংখ্যার সাথে প্রথম, উচ্চ মানের ম্যাট্রিক্সকে একটি ম্যাট্রিক্সে পরিণত করেছি যা এখনও একই 8 × 8 পিক্সেলের অনুরূপ, তবে কম মানের সাথে কারণ এর পিক্সেলগুলি বর্ণনা করার জন্য এটির কম সংখ্যা রয়েছে। আপনি যদি ব্লকটি দৃষ্টিভঙ্গিভাবে তুলনা করেন তবে সেগুলি একই রকম, তবে আর এক রকম নয়।
এখানে, কোয়ান্টাইজেশন ম্যাট্রিক্স গুণমান নির্ধারণ করে । এটা গুরুত্বপূর্ণ. আমরা বিভিন্ন মানের জন্য বিভিন্ন কোয়ান্টাইজেশন ম্যাট্রিক ব্যবহার করতে পারি। কিছু পরিমাণ নির্ধারণের ম্যাট্রিকগুলি মূল ম্যাট্রিক্সটি প্রায় অক্ষত রেখে দেয়, অন্যরা তা করে না। আমরা যত বেশি সংখ্যা সরিয়ে দেব, গুণমান তত খারাপ পাবে, তবে আমরা ভিডিওটি আরও কমপ্রেস করতে পারি, কারণ আমরা মূলত এখানে শূন্যগুলিকে "ফেলে দিতে" পারি।
sameq
?আসুন ধরে নেওয়া যাক আপনি একটি ভিডিও এনকোড করেছেন এবং আপনি একটি নির্দিষ্ট গুণমান সেট করতে চান। যেমনটি আমরা ইতিমধ্যে শিখেছি, বিভিন্ন কোয়ান্টাইজেশন ম্যাট্রিকগুলি বিভিন্ন মানের দিকে পরিচালিত করে, তাই আমরা যখন আমাদের এনকোডারকে গুণমানটি ব্যবহার করতে বলি x
, এটি y
যে মানই হোক না কেন, সেই মানটি পাওয়ার জন্য উপযুক্ত কোয়ান্টাইজেশন ম্যাট্রিক্স নির্বাচন করবে । ফলাফলটি এমন একটি ভিডিও যা y
ম্যাট্রিক্স ব্যবহার করে সংকুচিত হয়েছিল । 2
এবং এখানে আকর্ষণীয় অংশ: sameq
মানে "একই কোয়ান্টিজার"। "একই মানের" নয়। আপনার যদি এফএফপিপিগের একটি অ-সাম্প্রতিক সংস্করণ থাকে তবে আপনি এটি এখনও এটিতে পেতে পারেন ffmpeg --help
:
ffmpeg --help 2>&1 | grep sameq
সুতরাং, যখন আপনি এখন সেই রূপান্তরিত ভিডিওটি নিয়ে যান এবং এটিকে আবার এনকোড করেন এবং আপনি sameq
বিকল্পটি প্রয়োগ করেন , তখন এফএফম্পেগ সরলভাবে বলতে গেলে, ইনপুট ভিডিওর জন্য ব্যবহৃত একই পরিমাণের ম্যাট্রিকগুলি নির্বাচন করবে es
এই কিছুটা কাজ করে যখন আপনি ইনপুট এবং আউটপুট, যেমন জন্য ঠিক একই কোডেক ব্যবহার যখন একটি Xvid ভিডিও থেকে একটি Xvid ভিডিওতে রূপান্তর, কিন্তু আপনি এখনও খারাপ মানের সঙ্গে আপ শেষ হয়ে যাবে। 3 এটি ইতিমধ্যে এনকোডযুক্ত এমন কিছু এনকোডিং যা আরও বেশি তথ্য ফেলে দেবে। উপরের উদাহরণে, আমরা আমাদের ম্যাট্রিক্সে আরও শূন্য তৈরি করব এবং ফলাফল আরও খারাপ দেখাবে।
এটি মোটেও বিভিন্ন ভিডিও কোডেক জুড়ে কাজ করে না । বলুন যে আপনি একটি XviD- এনকোডযুক্ত ভিডিওকে x264 এর সাথে রূপান্তর করছেন। 4 এই দুটি কোডেকের জন্য, অভ্যন্তরীণভাবে ব্যবহৃত কোয়ান্টাইজেশন ম্যাট্রিকগুলি পৃথক - তাদের একই সহগ নেই। সুতরাং এই বিকল্পটিও বোঝা যায় না! দুর্ভাগ্যক্রমে, FFmpeg এখনও আপনাকে এটি ব্যবহারের অনুমতি দেয়।
নীচের লাইন: আপনি কী করছেন তা নির্দিষ্টভাবে না জানলে দয়া করে সেই বিকল্পটি ব্যবহার করবেন না। আপনি যদি নিজের ভিডিওটিকে অন্য কোনও কোডেক দিয়ে এনকোড করতে চান তবে গুণটি ধরে রাখতে পারেন, তবে আপনাকে পরীক্ষা করতে হবে এবং কেবল নিজেরাই মানটি সেট করতে হবে। ফলাফলটি সন্তোষজনক কিনা তা দেখুন এবং যদি না হয় তবে একটি উচ্চমানের সেট করুন। এটি আপনি যতটা করতে পারেন প্রায়
শেষ অবধি, পুনরায় এনকোডিং করার সময় আপনি কীভাবে নিজের গুণমানটি বজায় রাখতে চান তা এই পোস্টগুলি দেখুন:
1) ম্যাট্রিক্স এখানে চিত্রের সাথে সামঞ্জস্য করে না, সত্যই। এইটা শুধুমাত্র একটা উদাহরণ.
2) আসলে, আজকাল, বেশিরভাগ এনকোডিং প্রক্রিয়া কেবল একটি ম্যাট্রিক্স ব্যবহার করে না । আপনি যখন একটি নির্দিষ্ট বিট রেট সেট করেন, এনকোডার প্রতি সেকেন্ডে গড়ে বিট রেট পেতে বিভিন্ন ম্যাট্রিক ব্যবহার করবে। একইভাবে, একটি নির্দিষ্ট গুণ নির্ধারণ করার সময়, আধুনিক এনকোডারগুলি বিষয়বস্তুর উপর নির্ভর করে বিভিন্ন ম্যাট্রিকগুলি নিয়োগ করে। এটি কারণ কিছু বিষয়বস্তু অন্যদের চেয়ে কমপ্রেস করা "সহজ" এবং একই সংকোচনের উপাদানটি পেতে কম পরিমাণে প্রয়োজন require
3) উদাহরণ: ffmpeg -i input.avi -sameq -c:v libxvid output.avi
। এটি ব্যবহার করবেন না। অনুগ্রহ.
4) উদাহরণ: ffmpeg -i input.avi -sameq -c:v libx264 output.mp4
। এটিও ব্যবহার করবেন না। আমি সিরিয়াস।
-sameq
বিকল্পটি অবচিত করা হয়েছে এবং তারপরে অ্যাভকনভি থেকে সরানো হয়েছে