کدگذاری ویدیو در برنامه‌های موبایل: چیست، کدک‌ها و پارامترها

نویسنده: IT Sectr منتشر شده: 2026-05-24 زمان مطالعه: 8 دقیقه

کدگذاری ویدیو (encoding) فرآیند فشرده‌سازی سیگنال ویدیوی دیجیتال به فرمتی مناسب برای ذخیره‌سازی و انتقال از طریق شبکه با حداقل افت کیفیت است. بدون کدگذاری، یک دقیقه ویدیوی فشرده‌نشده با کیفیت 4K حدود 30 گیگابایت فضا اشغال می‌کند که انتقال از طریق اینترنت را غیرممکن می‌سازد. طبق گزارش Sandvine Global Internet Phenomena (2025)، ویدیو 65% از کل ترافیک اینترنت را تشکیل می‌دهد و کدگذاری فناوری کلیدی است که این امر را ممکن می‌سازد.

نکات اصلی

  • کدگذاری — فشرده‌سازی سیگنال ویدیو با استفاده از کدک‌ها برای کاهش حجم داده.
  • کدک‌های H.264 و H.265 — استانداردهای اصلی: AVC سازگاری را فراهم می‌کند، HEVC فشرده‌سازی بهتری دارد.
  • VP9 و AV1 — کدک‌های متن‌باز از Google و Alliance for Open Media، عاری از حق امتیاز.
  • نرخ بیت اندازه و کیفیت را تعیین می‌کند: 2–5 مگابیت/ثانیه برای 1080p، 15–40 مگابیت/ثانیه برای 4K.
  • کدک‌های صوتی AAC و Opus — استانداردهایی برای برنامه‌های موبایل با تأخیر کم و کیفیت بالا.

کدگذاری ویدیو چیست؟

کدگذاری ویدیو (encoding) فرآیند تبدیل سیگنال ویدیوی فشرده‌نشده به فرمت دیجیتال با استفاده از الگوریتم‌های فشرده‌سازی است. الگوریتم‌های پیاده‌سازی‌شده در کدک‌های ویدیو، اطلاعات اضافی را هم در حوزه مکانی (داخل یک فریم) و هم در حوزه زمانی (بین فریم‌های متوالی) حذف می‌کنند.

ویدیوی فشرده‌نشده دنباله‌ای از فریم‌هاست که هر کدام به عنوان آرایه‌ای از پیکسل‌ها در قالب RGB یا YUV ذخیره می‌شود. بدون فشرده‌سازی، یک ثانیه ویدیوی 1080p با 30 FPS حدود 1.5 گیگابایت حافظه نیاز دارد. کدک H.264 این جریان را به 3–5 مگابیت/ثانیه فشرده می‌کند که 2500 برابر کوچک‌تر از حجم اولیه است.

اصول فشرده‌سازی ویدیو

کدک‌های ویدیو از دو نوع فشرده‌سازی استفاده می‌کنند: درون‌فریمی (intra-frame) و بین‌فریمی (inter-frame). فشرده‌سازی درون‌فریمی به هر فریم به طور مستقل اعمال می‌شود و از الگوریتم‌های مشابه JPEG استفاده می‌کند: تبدیل کسینوسی گسسته (DCT)، کوانتیزاسیون و کدگذاری آنتروپی.

فشرده‌سازی بین‌فریمی تفاوت بین فریم‌های متوالی را تحلیل کرده و فقط تغییرات را کدگذاری می‌کند. اگر پس‌زمینه ثابت باشد، کدک فریم کامل را فقط یک بار ارسال می‌کند (I-frame) و سپس فقط تفاوت (فریم‌های P و B) را ارسال می‌کند که حجم داده را برای صحنه‌های با پویایی کم به طور قابل توجهی کاهش می‌دهد.

کدک‌های ویدیو: H.264، H.265، VP9، AV1

انتخاب کدک ویدیو نسبت کیفیت به اندازه فایل، سازگاری با دستگاه‌ها و هزینه‌های مجوز را تعیین می‌کند. در بازار برنامه‌های موبایل، چهار کدک اصلی غالب هستند: H.264 (AVC)، H.265 (HEVC)، VP9 و AV1.

کدکاستانداردسالفشرده‌سازی در مقایسه با H.264مجوزدهی
H.264/AVCMPEG-4 Part 1020031x (پایه)حق امتیاز (MPEG LA)
H.265/HEVCMPEG-H Part 2201340–50% کارآمدترحق امتیاز (دو مجموعه)
VP9Google201330–40% کارآمدتررایگان
AV1AOM201850–60% کارآمدتررایگان (بدون حق امتیاز)

H.264 — استاندارد جهانی

H.264 (AVC — Advanced Video Coding) همچنان سازگارترین کدک ویدیو است: از سال 2005 توسط تمام دستگاه‌های موبایل، مرورگرها و تلویزیون‌های هوشمند پشتیبانی می‌شود. شتاب‌دهی سخت‌افزاری رمزگشایی H.264 حتی در دستگاه‌های ارزان‌قیمت وجود دارد که آن را برای جریان جهانی ایده‌آل می‌کند.

نقص اصلی H.264 — کارایی نسبتاً پایین فشرده‌سازی در مقایسه با کدک‌های مدرن است. با نرخ بیت یکسان، H.265 و AV1 کیفیت قابل توجهی بالاتری ارائه می‌دهند که به ویژه برای محتوای HDR و 4K مهم است.

H.265 — کارایی برای 4K

H.265 (HEVC — High Efficiency Video Coding) 40–50% فشرده‌سازی بهتری نسبت به H.264 با همان کیفیت بصری ارائه می‌دهد. این امر با تقسیم‌بندی انعطاف‌پذیرتر فریم به بلوک‌ها (CTU تا 64×64 پیکسل به جای 16×16) و الگوریتم‌های بهبودیافته پیش‌بینی حرکت حاصل می‌شود.

HEVC در تمام دستگاه‌های Apple (از iPhone 6 به بعد)، در Android (از نسخه 5.0 با رمزگشایی سخت‌افزاری) و در اکثر تلویزیون‌های هوشمند پشتیبانی می‌شود. هزینه‌های مجوز HEVC بالاتر از H.264 است و توسط دو مجموعه حق امتیاز مدیریت می‌شود که استفاده قانونی را پیچیده می‌کند.

AV1 — استاندارد باز آینده

AV1 — کدک ویدیوی توسعه‌یافته توسط Alliance for Open Media (AOM)، کنسرسیومی به رهبری Google، Netflix، Amazon، Intel و Mozilla. AV1 50–60% فشرده‌سازی بهتری نسبت به H.264 ارائه می‌دهد و کاملاً عاری از حق امتیاز است که آن را برای خدمات استریمینگ جذاب می‌کند.

نقص اصلی AV1 — پیچیدگی محاسباتی بالای کدگذاری است. کدگذاری AV1 می‌تواند 5–10 برابر کندتر از H.264 روی همان سخت‌افزار باشد، اگرچه رمزگشایی سخت‌افزاری در دستگاه‌های 2024–2025 (Snapdragon 8 Gen 3، Apple A17 Pro) در حال ظهور است.

کدک‌های صوتی: AAC، MP3، Opus

کدک‌های صوتی در برنامه‌های موبایل کم‌اهمیت‌تر از کدک‌های ویدیو نیستند. برای استریمینگ ویدیو، صدایی با حداقل تأخیر، کیفیت بالا و سازگاری با کانتینرهای MP4 و WebM مورد نیاز است. سه کدک صوتی اصلی 99% برنامه‌های استریمینگ موبایل را پوشش می‌دهند.

AAC — استاندارد Apple و YouTube

AAC (Advanced Audio Coding) — جانشین MP3، توسعه‌یافته توسط MPEG در سال 1997 و تبدیل‌شده به کدک صوتی استاندارد برای iTunes، YouTube و Android. AAC کیفیت یکسان با MP3 را با نرخ بیت 30% پایین‌تر ارائه می‌دهد و صدای چندکاناله تا 7.1 را پشتیبانی می‌کند.

برای برنامه‌های موبایل، AAC-LC با نرخ بیت 128–192 کیلوبیت/ثانیه برای استریو و AAC-HE برای نرخ‌های بیت پایین 32–64 کیلوبیت/ثانیه توصیه می‌شود. رمزگشایی سخت‌افزاری AAC در تمام دستگاه‌های مدرن وجود دارد که مصرف انرژی را به حداقل می‌رساند.

Opus — کدک صوتی مدرن

Opus — کدک صوتی باز از IETF (RFC 6716)، که بهترین کیفیت را در میان تمام کدک‌های صوتی در نرخ‌های بیت 6 تا 510 کیلوبیت/ثانیه ارائه می‌دهد. Opus SILK (الگوریتم گفتار) و CELT (برای موسیقی) را ترکیب می‌کند و بسته به محتوا به طور خودکار حالت‌ها را تغییر می‌دهد.

Opus در WebRTC برای تماس‌های ویدیویی، در برنامه‌های Spotify و Discord استفاده می‌شود و از iOS 11 و Android 5.0 در HLS پشتیبانی می‌شود. تأخیر کم Opus (5–26 میلی‌ثانیه در مقابل 40–100 میلی‌ثانیه در AAC) آن را به انتخاب ترجیحی برای پخش زنده و کنفرانس ویدیویی تبدیل می‌کند.

پارامترهای کدگذاری: نرخ بیت، وضوح، FPS

پارامترهای کدگذاری اندازه نهایی فایل، کیفیت ویدیو و سازگاری با دستگاه‌ها را تعیین می‌کنند. توسعه‌دهنده برنامه موبایل باید تنظیمات بهینه را برای هر نوع محتوا انتخاب کند: فیلم‌ها، پخش‌های ورزشی، محتوای کاربری.

نرخ بیت و انواع آن

نرخ بیت — تعداد بیت‌های استفاده‌شده برای کدگذاری یک ثانیه ویدیو. CBR (نرخ بیت ثابت) برای پخش زنده، VBR (نرخ بیت متغیر) با کیفیت هدف برای ذخیره‌سازی آرشیوی و ABR (نرخ بیت متوسط) برای استریمینگ متمایز می‌شوند.

وضوحH.264 (توصیه‌شده)H.265/HEVCAV1
360p400–800 کیلوبیت/ثانیه250–500 کیلوبیت/ثانیه200–400 کیلوبیت/ثانیه
720p1.5–4 مگابیت/ثانیه1–2.5 مگابیت/ثانیه0.8–2 مگابیت/ثانیه
1080p3–8 مگابیت/ثانیه2–5 مگابیت/ثانیه1.5–4 مگابیت/ثانیه
4K (2160p)15–40 مگابیت/ثانیه10–25 مگابیت/ثانیه8–20 مگابیت/ثانیه

CRF — کنترل کیفیت

CRF (Constant Rate Factor) — پارامتر کدگذاری در x264 و x265 که کیفیت هدف را به جای نرخ بیت ثابت تعیین می‌کند. مقیاس CRF از 0 (بدون افت) تا 51 (بدترین کیفیت) است که 18–28 محدوده کاری است. برای برنامه‌های موبایل، CRF 23 برای x264 و CRF 25 برای x265 توصیه می‌شود.

CRF 18–20 کیفیت بالا را برای محتوای ارائه و مشاهده آفلاین فراهم می‌کند. CRF 24–28 برای استریمینگ و محتوای کاربری مناسب است، جایی که اندازه فایل مهم‌تر از کیفیت مطلق است.

پروفایل‌ها و سطوح کدک

استاندارد H.264 پروفایل‌ها (Baseline، Main، High) و سطوح (Level 1–5.2) را تعریف می‌کند که حداکثر پارامترهای ویدیو را محدود می‌کنند. Baseline Profile با تمام دستگاه‌ها سازگار است اما فریم‌های B را پشتیبانی نمی‌کند. High Profile حداکثر کیفیت را فراهم می‌کند و برای محتوای 1080p استفاده می‌شود.

برای استریمینگ 4K، Level 5.1 و بالاتر مورد نیاز است که توسط اکثر دستگاه‌های موبایل از سال 2018 پشتیبانی می‌شود. سطح کدک حداکثر وضوح، نرخ بیت و اندازه بافر را تعیین می‌کند و رمزگشایی صحیح را در تمام دستگاه‌های تأییدشده تضمین می‌کند.

کدگذاری برای استریمینگ

کدگذاری برای استریمینگ با کدگذاری آرشیوی در نیاز به ایجاد چندین گزینه کیفیت (ABR ladder) و بهینه‌سازی برای انتقال شبکه تفاوت دارد. ارائه‌دهندگان محتوا از ترانسکدگذاری بلادرنگ یا کدگذاری اولیه برای VOD استفاده می‌کنند.

مجموعه ABR معمول برای برنامه‌های موبایل شامل 4–6 گزینه است: از 144p (200 کیلوبیت/ثانیه) برای شبکه‌های ضعیف تا 1080p (8 مگابیت/ثانیه) برای Wi-Fi. وضوح‌های توصیه‌شده: 144p، 240p، 360p، 480p، 720p، 1080p. برای محتوای 4K، 1440p و 2160p اضافه می‌شود.

ترانسکدگذاری روی دستگاه موبایل

kotlin
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)

کدگذاری برای پخش زنده

برای پخش زنده به ویژه تأخیر کم مهم است. تنظیمات کدگذاری باید تأخیر ورودی/خروجی کدک را به حداقل برسانند: اندازه GOP 1–2 ثانیه (هر 30–60 فریم)، فریم‌های B غیرفعال یا حداقلی، برای H.264 از Baseline Profile استفاده می‌شود.

پروتکل‌های مدرن برای تأخیر کم — LL-HLS و CMAF-Low Latency — نیاز به کدگذاری تکه‌تکه با بخش‌های 1–2 ثانیه و امکان بارگذاری جزئی (Partial Segments) دارند. کدک باید از moof-box در هر بخش برای MP4 تکه‌تکه پشتیبانی کند.

بهینه‌سازی خط لوله کدگذاری

  • کدگذاری سخت‌افزاری از طریق MediaCodec (Android) یا VideoToolbox (iOS) برای بلادرنگ اجباری است.
  • کدگذاری چندنخی روی سرور با استفاده از libx264/libx265 در حالت ultrafast یا veryfast.
  • پریست‌های کدگذاری: placebo — بدترین برای VOD (حداکثر فشرده‌سازی)، ultrafast — برای پخش زنده.
  • Two-pass VBR — حالت ترجیحی برای VOD که اندازه و کیفیت قابل پیش‌بینی را فراهم می‌کند.

سوالات متداول

کدگذاری ویدیو در برنامه‌های موبایل چیست؟

کدگذاری ویدیو — فرآیند فشرده‌سازی سیگنال ویدیوی دیجیتال با استفاده از کدک‌ها برای کاهش حجم داده. در برنامه‌های موبایل، کدگذاری امکان انتقال و ذخیره ویدیو را با کاهش اندازه صدها برابری بدون افت کیفیت قابل توجه روی صفحه دستگاه فراهم می‌کند.

کدام کدک بهتر است: H.264 یا H.265؟

H.264 حداکثر سازگاری با دستگاه‌های قدیمی را فراهم می‌کند و H.265 با همان کیفیت 40–50% کارآمدتر است. برای محتوای 1080p و پایین‌تر، H.264 کافی است، برای 4K در صورت پشتیبانی دستگاه، H.265 یا AV1 توصیه می‌شود.

نرخ بیت چیست و چگونه آن را انتخاب کنیم؟

نرخ بیت — میزان داده در هر ثانیه ویدیو. برای 1080p، نرخ بیت بهینه 3–8 مگابیت/ثانیه برای H.264، 2–5 مگابیت/ثانیه برای H.265 است. انتخاب به محتوا بستگی دارد: صحنه‌های پویا (ورزش) به نرخ بیت بالاتر نیاز دارند، صحنه‌های ثابت (مصاحبه) — به نرخ بیت پایین‌تر.

VP9 چه تفاوتی با AV1 دارد؟

VP9 — پیشین AV1 از Google که فشرده‌سازی در سطح H.265 ارائه می‌دهد. AV1 20–30% کارآمدتر از VP9 فشرده می‌کند اما 5–10 برابر منابع بیشتری برای کدگذاری نیاز دارد. VP9 برای YouTube بهتر است، AV1 — برای Netflix و خدمات استریمینگ مدرن.

چگونه کدگذاری را برای پخش زنده تنظیم کنیم؟

برای پخش زنده از H.264 Baseline Profile با GOP 1–2 ثانیه، بدون فریم‌های B، نرخ بیت 2–4 مگابیت/ثانیه برای 1080p استفاده کنید. MP4 تکه‌تکه (CMAF) را برای LL-HLS فعال کنید و از کدگذاری سخت‌افزاری از طریق MediaCodec یا VideoToolbox استفاده کنید.

خلاصه

  • کدگذاری — فناوری بنیادینی که بدون آن انتقال ویدیو از طریق اینترنت به دلیل حجم عظیم داده‌های فشرده‌نشده غیرممکن است.
  • H.264 استاندارد سازگاری باقی می‌ماند و برای جریان جهانی در برنامه‌های موبایل توصیه می‌شود.
  • H.265 و AV1 40–60% فشرده‌سازی بهتری ارائه می‌دهند اما برای رمزگشایی کارآمد نیاز به پشتیبانی سخت‌افزاری دارند.
  • نرخ بیت و CRF — پارامترهای کلیدی: برای 1080p H.264 از 3–8 مگابیت/ثانیه، برای 4K H.265 از 10–25 مگابیت/ثانیه استفاده کنید.
  • AAC — کدک صوتی استاندارد، Opus به دلیل تأخیر حداقلی برای پخش زنده ترجیح داده می‌شود.
  • مجموعه ABR برای استریمینگ شامل 4–6 گزینه از 144p تا 1080p با نرخ بیت متفاوت است.
  • کدگذاری سخت‌افزاری برای بلادرنگ روی دستگاه‌های موبایل اجباری است.

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید