Кодування відео в мобільних додатках: що це, кодеки та параметри

Автор: IT Sectr Опубліковано: 2026-05-24 Час читання: 8 хв

Кодування відео — це процес стиснення цифрового відеосигналу у формат, придатний для зберігання та передачі мережею з мінімальними втратами якості. Без кодування одна хвилина нестисненого відео в роздільній здатності 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 — стандарти для мобільних додатків з низькою затримкою та високою якістю.

Що таке кодування відео?

Кодування відео — це процес перетворення нестисненого відеосигналу в цифровий формат з використанням алгоритмів стиснення. Алгоритми, реалізовані у відеокодеках, видаляють надлишкову інформацію як у просторовій області (всередині одного кадру), так і в часовій (між послідовними кадрами).

Нестиснене відео являє собою послідовність кадрів, кожен з яких зберігається як масив пікселів у форматі 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.

КодекСтандартРікКомпресія vs 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) залишається найсуміснішим відеокодеком: він підтримується всіма мобільними пристроями, браузерами та Smart TV починаючи з 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 з апаратним декодуванням) та на більшості Smart TV. Ліцензійні відрахування 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, і підтримується в HLS починаючи з iOS 11 та Android 5.0. Низька затримка 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 (lossless) до 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.

Оптимізація encode-пайплайну

  • Апаратне кодування через 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 створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також