Кодирование видео в мобильных приложениях: что это, кодеки и параметры

Автор: 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). 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 кбит/с для стерео и 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 (Constant Bitrate) — постоянный битрейт для живых трансляций, VBR (Variable Bitrate) — переменный с целевым качеством для архивного хранения и ABR (Average Bitrate) — усреднённый для стриминга.

Разрешение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 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

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