Перейти к содержимому

Кодек

Кодек — пара алгоритмов «кодер + декодер», которая упаковывает поток аудио, видео или изображения в компактное представление и разворачивает обратно. Кодек определяет качество и объём, контейнер (MP4, MKV, WebM) только хранит результат.

Кодер, декодер и что между ними происходит

Название собрано из двух слов: coder и decoder. Кодер получает исходный поток — например, 25 кадров в секунду по 1920×1080 пикселей, то есть примерно 1,5 Гбит/с сырых данных — и превращает его в компактную последовательность бит. Декодер на устройстве зрителя выполняет обратную операцию. Без этой пары ни потоковое видео, ни голосовой звонок, ни музыкальный сервис не работали бы: сырой поток не помещается ни в канал, ни в память.

Большинство медиакодеков относятся к семейству сжатия с потерями: они отбрасывают детали, которые слух и зрение почти не фиксируют. Существуют и обратимые: FLAC и ALAC для звука, PNG и режим lossless в WebP для картинок, FFV1 для архивного видео — они относятся к сжатию без потерь и возвращают исходный поток точно. Выбор между ними — это выбор между размером файла и точностью.

Внутри видеокодера работают три идеи. Предсказание: блок кадра описывается как сдвиг похожего блока из соседнего кадра (вектор движения) или как продолжение соседних пикселей внутри того же кадра. Преобразование: разница между предсказанием и реальностью раскладывается на частоты и грубо округляется. Энтропийное кодирование: получившиеся числа пакуются арифметическим кодером вроде CABAC. Аудиокодеки устроены похоже, только вместо кадров у них перекрывающиеся окна отсчётов, а вместо движения — модель маскирования звуков.

Кодек, контейнер и кодировка: три разные вещи

Расширение файла почти ничего не говорит о кодеке. MP4, MKV, WebM, AVI, MOV — это контейнеры: оболочки, в которых лежат дорожки, субтитры, главы, метаданные и таблица синхронизации. Один и тот же MP4 может содержать видео в H.264 или в HEVC, звук в AAC или в Opus. Отсюда классическая жалоба «файл открывается, но чёрный экран и есть звук»: контейнер плеер разобрал, а декодера для видеодорожки в системе не нашлось.

  • H.264 / AVC — самый совместимый видеокодек: играет практически везде, от телевизора до платёжного терминала с экраном.
  • H.265 / HEVC — экономит поток относительно H.264 при том же качестве, но обременён лицензионными сложностями.
  • VP9 и AV1 — открытые кодеки, AV1 сегодня даёт лучшую плотность и поддерживается крупными видеоплатформами; кодирование заметно дороже по процессорному времени.
  • AAC, Opus, MP3 — звук. Opus предпочтителен для связи и стримов из-за низкой задержки, AAC — для совместимости, MP3 остаётся ради старых устройств.

Третье понятие, которое путают с кодеком из-за созвучия, — кодировка текста. Windows-1251 и UTF-8 ничего не сжимают, они только сопоставляют символам числа; об этом подробнее в термине кодовая страница. Кодек работает с сигналом на выходе микрофона или матрицы, кодировка — с таблицей символов, и подменять одно другим в техническом задании — верный способ получить не тот результат.

Настройки, которые реально влияют на результат

Битрейт задаёт бюджет бит на секунду. Режим CBR держит его постоянным и нужен там, где канал жёсткий (эфир, спутник). VBR перераспределяет биты в пользу сложных сцен. Режим постоянного качества CRF в кодировщиках x264 и x265 работает от обратного: вы задаёте допустимый уровень искажений (у x264 разумный диапазон примерно 18–23, меньше — качественнее и тяжелее), а битрейт подбирается сам. Пресет скорости (ultrafast … veryslow) меняет глубину поиска: медленные пресеты при том же CRF дают файл заметно меньше.

Аппаратное кодирование NVENC, Quick Sync или AMF ускоряет процесс в разы и незаменимо для стримов в реальном времени, но при равном битрейте обычно проигрывает по качеству программному кодировщику. Практический компромисс: прямые эфиры — аппаратно, публикация готового ролика — программно. Рабочая лошадка для любых операций — FFmpeg: он содержит и декодеры, и кодеры, и умеет перепаковывать дорожки между контейнерами без перекодирования, когда менять кодек не требуется.

В QR-сценариях кодеки всплывают на стороне контента. Код на упаковке или афише ведёт на видеоинструкцию, отзыв клиента или видеооткрытку — и от кодека зависит, стартует ли ролик за секунду на мобильной сети. Разумная схема: H.264 как основной вариант ради совместимости, AV1 или HEVC как облегчённая альтернатива, вертикальный формат для телефона, отдельная лёгкая версия для медленного канала. Как связать код с роликом, описано в термине QR-код с видео, а сам код удобно собрать в генераторе QR-кодов. Важная деталь: сжимать с потерями стоит только видео за кодом, но не изображение самого кода — его экспортируют в PNG или SVG.

Частые вопросы

Чем кодек отличается от формата файла?

Формат файла — это контейнер: MP4, MKV, WebM, AVI. Он описывает, как дорожки уложены рядом и как они синхронизируются. Кодек определяет, каким алгоритмом сжата каждая дорожка. Поэтому два файла с одинаковым расширением могут требовать совершенно разных декодеров, а смена контейнера без перекодирования не меняет качества.

Нужно ли ставить пакеты кодеков в 2026 году?

Обычно нет. Современные браузеры и плееры вроде VLC несут декодеры внутри себя, а операционные системы поддерживают распространённые форматы штатно. Сборники кодеков сомнительного происхождения чаще создают конфликты, чем решают проблему. Если файл не играет, проще открыть его плеером с собственными декодерами или перепаковать через FFmpeg.

Какой кодек выбрать для видео по QR-коду?

Базовый вариант — H.264 в контейнере MP4 со звуком AAC: он воспроизводится на любом смартфоне без дополнительных условий. Если платформа отдаёт несколько версий, добавьте AV1 или HEVC для экономии трафика. Держите вертикальную версию для телефона и ограничивайте битрейт: ролик, который стартует дольше трёх секунд, теряет заметную часть зрителей.

Почему один и тот же ролик у разных сервисов весит по-разному?

Различаются кодек, пресет скорости, целевой уровень качества и разрешение выдачи. Медленный пресет ищет совпадения глубже и при том же CRF выдаёт файл меньше. Плюс платформы применяют свои профили: обрезают битрейт, меняют частоту кадров, пережимают звук. Поэтому сравнивать имеет смысл не размеры, а качество при фиксированном битрейте.

Портит ли кодек PDF или картинку с QR-кодом?

Кодек как таковой — нет, но внутри PDF изображения часто хранятся в JPEG, и агрессивные настройки «оптимизации» размывают границы модулей. Вставляйте код в документ вектором или растром без потерь и отключайте пережатие картинок при экспорте. В настройках экспорта из вёрстки ищите пункт про качество изображений и ставьте его на максимум.