ভিডিও এনকোডিং হল ন্যূনতম গুণমান হ্রাসসহ সংরক্ষণ এবং নেটওয়ার্কের মাধ্যমে প্রেরণের জন্য উপযুক্ত ফরম্যাটে ডিজিটাল ভিডিও সংকেত সংকুচিত করার প্রক্রিয়া। এনকোডিং ছাড়া, এক মিনিটের অসংকুচিত 4K ভিডিও প্রায় 30 GB জায়গা নেয়, যা ইন্টারনেটের মাধ্যমে প্রেরণ অসম্ভব করে তোলে। Sandvine Global Internet Phenomena (2025) রিপোর্ট অনুসারে, ভিডিও সমস্ত ইন্টারনেট ট্রাফিকের 65% গঠন করে, এবং এনকোডিং হল মূল প্রযুক্তি যা এটি সম্ভব করে।
মূল পয়েন্ট
ভিডিও এনকোডিং হল সংকোচন অ্যালগরিদম ব্যবহার করে অসংকুচিত ভিডিও সংকেতকে ডিজিটাল ফরম্যাটে রূপান্তর করার প্রক্রিয়া। এই অ্যালগরিদমগুলি, ভিডিও কোডেকে বাস্তবায়িত, স্থানিক ডোমেনে (একটি ফ্রেমের ভিতরে) এবং অস্থায়ী ডোমেনে (পরপর ফ্রেমের মধ্যে) উভয় ক্ষেত্রেই অপ্রয়োজনীয় তথ্য সরিয়ে দেয়।
অসংকুচিত ভিডিও হল ফ্রেমের একটি ক্রম, প্রতিটি RGB বা YUV ফরম্যাটে পিক্সেলের একটি অ্যারে হিসাবে সংরক্ষিত। সংকোচন ছাড়া, 30 FPS-এ 1080p ভিডিওর এক সেকেন্ডের জন্য প্রায় 1.5 GB মেমোরি প্রয়োজন। H.264 কোডেক এই স্ট্রিমটিকে 3–5 Mbps-এ সংকুচিত করে, যা মূল আকারের তুলনায় 2500 গুণ ছোট।
ভিডিও কোডেক দুই ধরনের সংকোচন ব্যবহার করে: ইন্ট্রা-ফ্রেম এবং ইন্টার-ফ্রেম। ইন্ট্রা-ফ্রেম সংকোচন প্রতিটি ফ্রেমে স্বাধীনভাবে প্রয়োগ করা হয়, JPEG-এর মতো অ্যালগরিদম ব্যবহার করে: বিচ্ছিন্ন কোসাইন রূপান্তর (DCT), কোয়ান্টাইজেশন এবং এনট্রপি কোডিং।
ইন্টার-ফ্রেম সংকোচন পরপর ফ্রেমের মধ্যে পার্থক্য বিশ্লেষণ করে এবং শুধুমাত্র পরিবর্তনগুলি এনকোড করে। যদি পটভূমি স্থির থাকে, কোডেক শুধুমাত্র একবার সম্পূর্ণ ফ্রেম (I-frame) প্রেরণ করে, এবং তারপরে শুধুমাত্র পার্থক্যগুলি (P- এবং B-frames) প্রেরণ করে, যা কম গতিশীল দৃশ্যের জন্য ডেটার পরিমাণ উল্লেখযোগ্যভাবে হ্রাস করে।
ভিডিও কোডেক নির্বাচন গুণমান-থেকে-আকার অনুপাত, ডিভাইস সামঞ্জস্য এবং লাইসেন্সিং ফি নির্ধারণ করে। চারটি প্রধান কোডেক মোবাইল অ্যাপ্লিকেশন বাজারে আধিপত্য বিস্তার করে: H.264 (AVC), H.265 (HEVC), VP9 এবং AV1।
| কোডেক | মান | বছর | H.264-এর তুলনায় সংকোচন | লাইসেন্সিং |
|---|---|---|---|---|
| H.264/AVC | MPEG-4 Part 10 | 2003 | 1x (ভিত্তি) | রয়্যালটি (MPEG LA) |
| H.265/HEVC | MPEG-H Part 2 | 2013 | 40–50% বেশি কার্যকর | রয়্যালটি (দুই পুল) |
| VP9 | 2013 | 30–40% বেশি কার্যকর | বিনামূল্য | |
| AV1 | AOM | 2018 | 50–60% বেশি কার্যকর | রয়্যালটি-মুক্ত |
H.264 (AVC — Advanced Video Coding) সবচেয়ে সামঞ্জস্যপূর্ণ ভিডিও কোডেক হিসাবে রয়ে গেছে: এটি 2005 সাল থেকে সমস্ত মোবাইল ডিভাইস, ব্রাউজার এবং স্মার্ট TV দ্বারা সমর্থিত। হার্ডওয়্যার-ত্বরিত H.264 ডিকোডিং বাজেট ডিভাইসেও উপলব্ধ, যা এটিকে সর্বজনীন স্ট্রিমের জন্য আদর্শ করে তোলে।
H.264-এর প্রধান ত্রুটি হল আধুনিক কোডেকের তুলনায় অপেক্ষাকৃত কম সংকোচন দক্ষতা। একই বিটরেটে, H.265 এবং AV1 উল্লেখযোগ্যভাবে উচ্চতর গুণমান প্রদান করে, যা বিশেষ করে HDR এবং 4K সামগ্রীর জন্য গুরুত্বপূর্ণ।
H.265 (HEVC — High Efficiency Video Coding) একই ভিজ্যুয়াল গুণমানে H.264-এর তুলনায় 40–50% ভালো সংকোচন প্রদান করে। এটি ফ্রেমকে ব্লকে আরও নমনীয় বিভাজন (16×16-এর পরিবর্তে 64×64 পিক্সেল পর্যন্ত CTU) এবং উন্নত গতি পূর্বাভাস অ্যালগরিদমের মাধ্যমে অর্জন করা হয়।
HEVC সমস্ত Apple ডিভাইস (iPhone 6 থেকে শুরু), Android (হার্ডওয়্যার ডিকোডিং সহ সংস্করণ 5.0 থেকে) এবং বেশিরভাগ স্মার্ট TV-তে সমর্থিত। HEVC লাইসেন্সিং ফি H.264-এর চেয়ে বেশি এবং দুটি পেটেন্ট পুল দ্বারা পরিচালিত হয়, যা আইনি ব্যবহারকে জটিল করে তোলে।
AV1 হল Alliance for Open Media (AOM) দ্বারা উন্নত একটি ভিডিও কোডেক, যা Google, Netflix, Amazon, Intel এবং Mozilla-এর নেতৃত্বে একটি কনসোর্টিয়াম। AV1 H.264-এর তুলনায় 50–60% ভালো সংকোচন প্রদান করে এবং সম্পূর্ণ রয়্যালটি-মুক্ত, যা এটিকে স্ট্রিমিং পরিষেবার জন্য আকর্ষণীয় করে তোলে।
AV1-এর প্রধান ত্রুটি হল এনকোডিংয়ের উচ্চ গণনামূলক জটিলতা। AV1 এনকোডিং একই হার্ডওয়্যারে H.264-এর তুলনায় 5–10 গুণ ধীর হতে পারে, যদিও হার্ডওয়্যার ডিকোডিং ইতিমধ্যে 2024–2025 ডিভাইসে (Snapdragon 8 Gen 3, Apple A17 Pro) উপস্থিত হচ্ছে।
মোবাইল অ্যাপ্লিকেশনে অডিও কোডেক ভিডিও কোডেকের চেয়ে কম গুরুত্বপূর্ণ নয়। স্ট্রিমিং ভিডিওর জন্য ন্যূনতম বিলম্ব, উচ্চ গুণমান এবং MP4 এবং WebM কন্টেইনারের সাথে সামঞ্জস্যসম্পন্ন অডিও প্রয়োজন। তিনটি প্রধান অডিও কোডেক 99% মোবাইল স্ট্রিমিং অ্যাপ্লিকেশন কভার করে।
AAC (Advanced Audio Coding) হল MP3-এর উত্তরসূরি, 1997 সালে MPEG দ্বারা উন্নত এবং iTunes, YouTube এবং Android-এর জন্য মানক অডিও কোডেকে পরিণত হয়েছে। AAC 30% কম বিটরেটে MP3-এর সমান গুণমান প্রদান করে এবং 7.1 পর্যন্ত মাল্টি-চ্যানেল অডিও সমর্থন করে।
মোবাইল অ্যাপ্লিকেশনের জন্য, স্টিরিওর জন্য 128–192 kbps-এ AAC-LC এবং কম বিটরেট 32–64 kbps-এর জন্য AAC-HE সুপারিশ করা হয়। হার্ডওয়্যার AAC ডিকোডিং সমস্ত আধুনিক ডিভাইসে উপলব্ধ, যা বিদ্যুৎ খরচ কমিয়ে দেয়।
Opus হল IETF (RFC 6716)-এর একটি ওপেন অডিও কোডেক, যা 6 থেকে 510 kbps বিটরেটে সমস্ত অডিও কোডেকের মধ্যে সেরা গুণমান প্রদান করে। Opus SILK (বক্তৃতার জন্য অ্যালগরিদম) এবং CELT (সঙ্গীতের জন্য) একত্রিত করে এবং সামগ্রীর উপর নির্ভর করে স্বয়ংক্রিয়ভাবে মোড পরিবর্তন করে।
Opus WebRTC-তে ভিডিও কলের জন্য, Spotify এবং Discord অ্যাপ্লিকেশনে ব্যবহৃত হয় এবং iOS 11 এবং Android 5.0 থেকে HLS-এ সমর্থিত। Opus-এর কম বিলম্ব (AAC-এর 40–100 ms-এর তুলনায় 5–26 ms) এটিকে লাইভ সম্প্রচার এবং ভিডিও কনফারেন্সিং-এর জন্য পছন্দের বিকল্প করে তোলে।
এনকোডিং প্যারামিটার চূড়ান্ত ফাইলের আকার, ভিডিও গুণমান এবং ডিভাইস সামঞ্জস্য নির্ধারণ করে। মোবাইল অ্যাপ্লিকেশন ডেভেলপারকে প্রতিটি ধরনের সামগ্রীর জন্য অনুকূল সেটিংস বেছে নিতে হবে: চলচ্চিত্র, খেলাধুলার সম্প্রচার, ব্যবহারকারী-নির্মিত সামগ্রী।
বিটরেট হল ভিডিওর এক সেকেন্ড এনকোড করতে ব্যবহৃত বিটের সংখ্যা। লাইভ সম্প্রচারের জন্য CBR (স্থির বিটরেট), আর্কাইভাল সংরক্ষণের জন্য লক্ষ্য গুণমানসহ VBR (পরিবর্তনশীল বিটরেট) এবং স্ট্রিমিংয়ের জন্য ABR (গড় বিটরেট) রয়েছে।
| রেজোলিউশন | H.264 (সুপারিশকৃত) | H.265/HEVC | AV1 |
|---|---|---|---|
| 360p | 400–800 kbps | 250–500 kbps | 200–400 kbps |
| 720p | 1.5–4 Mbps | 1–2.5 Mbps | 0.8–2 Mbps |
| 1080p | 3–8 Mbps | 2–5 Mbps | 1.5–4 Mbps |
| 4K (2160p) | 15–40 Mbps | 10–25 Mbps | 8–20 Mbps |
CRF (Constant Rate Factor) হল x264 এবং x265-এ একটি এনকোডিং প্যারামিটার যা নির্দিষ্ট বিটরেটের পরিবর্তে লক্ষ্য গুণমান নির্ধারণ করে। CRF স্কেল 0 (লসলেস) থেকে 51 (সবচেয়ে খারাপ গুণমান) পর্যন্ত, যেখানে 18–28 কর্মক্ষম পরিসর। মোবাইল অ্যাপ্লিকেশনের জন্য, x264-এর জন্য CRF 23 এবং x265-এর জন্য CRF 25 সুপারিশ করা হয়।
CRF 18–20 উপস্থাপনা সামগ্রী এবং অফলাইন দেখার জন্য উচ্চ গুণমান প্রদান করে। CRF 24–28 স্ট্রিমিং এবং ব্যবহারকারী-নির্মিত সামগ্রীর জন্য উপযুক্ত, যেখানে ফাইলের আকার পরম গুণমানের চেয়ে বেশি গুরুত্বপূর্ণ।
H.264 মান প্রোফাইল (Baseline, Main, High) এবং স্তর (Level 1–5.2) নির্ধারণ করে যা সর্বোচ্চ ভিডিও প্যারামিটার সীমিত করে। Baseline Profile সমস্ত ডিভাইসের সাথে সামঞ্জস্যপূর্ণ কিন্তু B-frames সমর্থন করে না। High Profile সর্বোচ্চ গুণমান প্রদান করে এবং 1080p সামগ্রীর জন্য ব্যবহৃত হয়।
4K স্ট্রিমিংয়ের জন্য, Level 5.1 এবং তার উপরে প্রয়োজন, যা 2018 সাল থেকে বেশিরভাগ মোবাইল ডিভাইস দ্বারা সমর্থিত। কোডেক স্তর সর্বোচ্চ রেজোলিউশন, বিটরেট এবং বাফার আকার নির্ধারণ করে, সমস্ত প্রত্যয়িত ডিভাইসে সঠিক ডিকোডিং নিশ্চিত করে।
স্ট্রিমিংয়ের জন্য এনকোডিং আর্কাইভাল এনকোডিং থেকে ভিন্ন কারণ এতে একাধিক গুণমান ভেরিয়েন্ট (ABR ladder) তৈরি এবং নেটওয়ার্ক ট্রান্সমিশনের জন্য অপ্টিমাইজেশন প্রয়োজন। সামগ্রী প্রদানকারীরা VOD-এর জন্য রিয়েল-টাইম ট্রান্সকোডিং বা প্রি-এনকোডিং ব্যবহার করে।
মোবাইল অ্যাপ্লিকেশনের জন্য একটি সাধারণ ABR ladder-এ 4–6 ভেরিয়েন্ট অন্তর্ভুক্ত থাকে: দুর্বল নেটওয়ার্কের জন্য 144p (200 kbps) থেকে Wi-Fi-এর জন্য 1080p (8 Mbps) পর্যন্ত। সুপারিশকৃত রেজোলিউশন: 144p, 240p, 360p, 480p, 720p, 1080p। 4K সামগ্রীর জন্য, 1440p এবং 2160p যোগ করা হয়।
val mediaCodec = MediaCodec.createEncoderByType(
MediaFormat.MIMETYPE_VIDEO_AVC
)
val format = MediaFormat.createVideoFormat(
MediaFormat.MIMETYPE_VIDEO_AVC,
1280, 720
).apply {
setInteger(MediaFormat.KEY_BIT_RATE, 3_000_000)
setInteger(MediaFormat.KEY_FRAME_RATE, 30)
setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 2)
setInteger(MediaFormat.KEY_PROFILE,
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh)
setInteger(MediaFormat.KEY_LEVEL,
MediaCodecInfo.CodecProfileLevel.AVCLevel31)
}
mediaCodec.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)
লাইভ সম্প্রচারের জন্য, কম বিলম্ব বিশেষভাবে গুরুত্বপূর্ণ। এনকোডিং সেটিংস কোডেক ইনপুট/আউটপুট বিলম্ব কমাতে হবে: 1–2 সেকেন্ডের GOP আকার (প্রতি 30–60 ফ্রেম) সুপারিশ করা হয়, B-frames নিষ্ক্রিয় বা ন্যূনতম করা উচিত এবং H.264-এর জন্য Baseline Profile ব্যবহার করা হয়।
আধুনিক কম-বিলম্ব প্রোটোকল — LL-HLS এবং CMAF-Low Latency — 1–2 সেকেন্ডের সেগমেন্ট এবং আংশিক ডাউনলোড (Partial Segments) সমর্থনসহ খণ্ডিত এনকোডিং প্রয়োজন। কোডেককে খণ্ডিত MP4-এর জন্য প্রতিটি সেগমেন্টে moof-box সমর্থন করতে হবে।
সচরাচর জিজ্ঞাসিত প্রশ্ন
ভিডিও এনকোডিং হল ডেটার পরিমাণ কমানোর জন্য কোডেক ব্যবহার করে ডিজিটাল ভিডিও সংকেত সংকুচিত করার প্রক্রিয়া। মোবাইল অ্যাপ্লিকেশনে, এনকোডিং ভিডিও প্রেরণ এবং সংরক্ষণের অনুমতি দেয়, ডিভাইস স্ক্রিনে লক্ষণীয় গুণমান হ্রাস ছাড়াই আকার শতগুণ হ্রাস করে।
H.264 পুরানো ডিভাইসের সাথে সর্বোচ্চ সামঞ্জস্য প্রদান করে, যখন H.265 একই গুণমানে 40–50% বেশি কার্যকর। 1080p এবং নীচের জন্য, H.264 যথেষ্ট; 4K-এর জন্য H.265 বা AV1 সুপারিশ করা হয় যদি ডিভাইস সমর্থন করে।
বিটরেট হল ভিডিওর প্রতি সেকেন্ডে ডেটার পরিমাণ। 1080p-এর জন্য, H.264-এর জন্য অনুকূল বিটরেট 3–8 Mbps এবং H.265-এর জন্য 2–5 Mbps। পছন্দ সামগ্রীর উপর নির্ভর করে: গতিশীল দৃশ্য (খেলাধুলা) উচ্চতর বিটরেট প্রয়োজন, স্থির দৃশ্য (সাক্ষাৎকার) কম বিটরেট প্রয়োজন।
VP9 হল Google-এর AV1-এর পূর্বসূরি, H.265-এর স্তরে সংকোচন প্রদান করে। AV1, VP9-এর তুলনায় 20–30% বেশি কার্যকরভাবে সংকুচিত করে, কিন্তু 5–10 গুণ বেশি এনকোডিং সংস্থান প্রয়োজন। VP9 YouTube-এর জন্য ভালো, AV1 Netflix এবং আধুনিক স্ট্রিমিং পরিষেবার জন্য।
লাইভ সম্প্রচারের জন্য, 1–2 সেকেন্ডের GOP-সহ H.264 Baseline Profile ব্যবহার করুন, B-frames ছাড়া, 1080p-এর জন্য 2–4 Mbps বিটরেট। LL-HLS-এর জন্য খণ্ডিত MP4 (CMAF) সক্ষম করুন এবং MediaCodec বা VideoToolbox-এর মাধ্যমে হার্ডওয়্যার এনকোডিং ব্যবহার করুন।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন