Кодиране на видео в мобилни приложения: какво е, кодеци и параметри

Автор: IT Sectr Публикувано: 2026-05-24 Време за четене: 8 мин

Кодирането на видео (encoding) е процес на компресиране на цифров видео сигнал във формат, подходящ за съхранение и предаване по мрежа с минимална загуба на качество. Без кодиране една минута некомпресирано видео в резолюция 4K заема около 30 GB, което прави предаването през интернет невъзможно. Според доклада Sandvine Global Internet Phenomena (2025), видеото съставлява 65% от целия интернет трафик, а кодирането е ключовата технология, която прави това възможно.

Накратко

  • Кодиране — компресиране на видео сигнал с помощта на кодеци за намаляване на обема от данни.
  • Кодеци H.264 и H.265 — основните стандарти: AVC осигурява съвместимост, HEVC — по-добра компресия.
  • VP9 и AV1 — отворени кодеци от Google и Alliance for Open Media, без роялти.
  • Битрейт определя размера и качеството: 2–5 Mbps за 1080p, 15–40 Mbps за 4K.
  • Аудио кодеци AAC и Opus — стандарти за мобилни приложения с ниска латентност и високо качество.

Какво е кодиране на видео?

Кодиране на видео (encoding) е процес на преобразуване на некомпресиран видео сигнал в цифров формат с помощта на алгоритми за компресия. Алгоритмите, имплементирани във видео кодеците, премахват излишната информация както в пространствената област (вътре в един кадър), така и във времевата област (между последователни кадри).

Некомпресираното видео представлява последователност от кадри, всеки от които се съхранява като масив от пиксели във формат RGB или YUV. Без компресия една секунда видео 1080p при 30 FPS изисква около 1,5 GB памет. Кодекът H.264 компресира този поток до 3–5 Mbps, което е 2500 пъти по-малко от първоначалния обем.

Принципи на компресия на видео

Видео кодеците използват два типа компресия: вътрешнокадрова (intra-frame) и междукадрова (inter-frame). Intra-frame компресия се прилага към всеки кадър независимо, използвайки алгоритми, подобни на JPEG: дискретна косинусова трансформация (DCT), квантуване и ентропийно кодиране.

Inter-frame компресия анализира разликата между последователните кадри и кодира само промените. Ако фонът е статичен, кодекът изпраща пълния кадър само веднъж (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% по-ефективенБезплатно (Royalty-free)

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 kbps за стерео и AAC-HE за ниски битрейтове 32–64 kbps. Хардуерното декодиране на AAC е налично на всички съвременни устройства, което минимизира консумацията на енергия.

Opus — модерен аудио кодек

Opus — отворен аудио кодек от IETF (RFC 6716), който осигурява най-добро качество сред всички аудио кодеци при битрейтове от 6 до 510 kbps. Opus комбинира SILK (алгоритъм за реч) и CELT (за музика) и автоматично превключва режими в зависимост от съдържанието.

Opus се използва в WebRTC за видео разговори, в приложенията Spotify и Discord, и се поддържа в HLS от iOS 11 и Android 5.0. Ниската латентност на Opus (5–26 ms срещу 40–100 ms при AAC) го прави предпочитан избор за живи предавания и видеоконференции.

Параметри на кодиране: битрейт, резолюция, FPS

Параметрите на кодиране определят крайния размер на файла, качеството на видеото и съвместимостта с устройства. Разработчикът на мобилно приложение трябва да избере оптимални настройки за всеки тип съдържание: филми, спортни предавания, потребителско съдържание.

Битрейт и неговите типове

Битрейт — броят битове, използвани за кодиране на една секунда видео. Различават се CBR (Constant Bitrate) — постоянен битрейт за живи предавания, VBR (Variable Bitrate) — променлив с целево качество за архивно съхранение и ABR (Average Bitrate) — среден за стрийминг.

РезолюцияH.264 (препоръчан)H.265/HEVCAV1
360p400–800 kbps250–500 kbps200–400 kbps
720p1,5–4 Mbps1–2,5 Mbps0,8–2 Mbps
1080p3–8 Mbps2–5 Mbps1,5–4 Mbps
4K (2160p)15–40 Mbps10–25 Mbps8–20 Mbps

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 kbps) за слаби мрежи до 1080p (8 Mbps) за 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 Mbps за H.264, 2–5 Mbps за 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 Mbps за 1080p. Включете фрагментиран MP4 (CMAF) за LL-HLS и използвайте хардуерно кодиране чрез MediaCodec или VideoToolbox.

Обобщение

  • Кодиране — фундаментална технология, без която предаването на видео през интернет е невъзможно поради огромния обем некомпресирани данни.
  • H.264 остава стандартът за съвместимост и се препоръчва за универсален поток в мобилни приложения.
  • H.265 и AV1 осигуряват 40–60% по-добра компресия, но изискват хардуерна поддръжка за ефективно декодиране.
  • Битрейт и CRF — ключови параметри: за 1080p H.264 използвайте 3–8 Mbps, за 4K H.265 — 10–25 Mbps.
  • AAC — стандартен аудио кодек, Opus е за предпочитане за живи предавания поради минимална латентност.
  • ABR набор за стрийминг включва 4–6 варианта от 144p до 1080p с различен битрейт.
  • Хардуерно кодиране е задължително за реално време на мобилни устройства.

Ще разработим мобилно приложение под ключ

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също