Гид по технологиям

Кодирование видео в H.265 с помощью ffmpeg

6 min read Видео Обновлено 02 Dec 2025
H.265 (HEVC) кодирование с ffmpeg
H.265 (HEVC) кодирование с ffmpeg

Краткое определение терминов

  • Кодек — программа или алгоритм для сжатия/распаковки аудио или видео в файле. (одна строка)
  • Битрейт — количество битов в секунду, которое используется для передачи/хранения данных; влияет на размер файла и качество. (одна строка)

Зачем нужна компрессия видео

Почти всё видео, которое мы смотрим по эфирному ТВ, кабелю, спутнику или в интернете, предварительно сжато. Сырые, несжатые видеопотоки занимают слишком много места и пропускной способности. Исторически форматы развивались от VCD (MPEG-1) до DVD (MPEG-2/H.262), Blu-ray (H.264/MPEG-4 AVC) и далее к HEVC (H.265), который стал первым широкодоступным стандартом, рассчитанным на 4K и 8K разрешения.

Краткая история форматов

  • MPEG-1: использовался для Video CD на дисках диаметром 120 мм; видео кодировалось под ~1,5 Мбит/с.
  • MP3 (MPEG-1 Audio Layer III): часть стандарта MPEG-1, до сих пор в ходу для аудио.
  • MPEG-2 / H.262: стандарт для DVD и цифрового эфирного/спутникового вещания.
  • MPEG-4 Part 10 / H.264: широко применялся в Blu-ray и в потоковом видео.
  • MPEG-H / H.265 (HEVC): следующий шаг для 4K/8K, более эффективен по сжатие.

Логотипы H.265 и других видеоформатов

Почему H.265 (HEVC) важен

H.265 повышает эффективность компрессии примерно в 2 раза по сравнению с H.264 при сопоставимом качестве. Это значит, что при том же качестве требуется вдвое меньший битрейт (и размер файла), либо при том же битрейте можно получить заметно лучшее качество. Это критично для 4K/8K, где объём данных резко увеличивается.

  • Поддерживаемые разрешения: до 8192×4320 пикселов.
  • Практический эффект: меньше трафика и место на диске, либо лучшее качество при том же трафике.

Получение ffmpeg на Linux

ffmpeg — популярный набор утилит для кодирования и работы с мультимедиа. В дистрибутивах он часто есть в репозиториях, но версии могут быть устаревшими или собраны без поддержки H.265 (libx265). Удобный способ — скачать статически скомпилированные сборки.

  1. Скачайте 32‑ или 64‑битный .tar.xz. Если не уверены — берите 32‑битную версию.
  2. В каталоге с файлом выполните распаковку:
tar xvf ffmpeg-2.4-32bit-static.tar.xz

Это создаст каталог с именем вроде ffmpeg-2.4-32bit-static, где будут двоичные файлы ffmpeg и ffprobe и другие утилиты.

Важно: имена файлов и каталоги сохраняйте без изменений, если следуете инструкциям разработчика сборки.

Логотип ffmpeg

Пример кодирования в H.265

После распаковки перейдите в каталог с бинарниками и запустите ffmpeg. Простой пример — скопировать аудиопоток и перекодировать видео в H.265:

./ffmpeg -i video.mp4 -c:a copy -c:v libx265 video-h265.mp4

Пояснения к параметрам:

  • -i video.mp4 — входной файл (ffmpeg поддерживает .avi, .mp4, .mov и другие).
  • -c:a copy — скопировать аудио без перекодирования (быстро и без потерь аудио).
  • -c:v libx265 — перекодировать видеопоток с помощью кодека x265 (реализация HEVC).
  • Последний параметр — имя выходного файла. ffmpeg поддерживает контейнеры .mp4, .mov, .mkv и т.д.

После окончания кодирования сравните размер исходного и перекодированного файлов:

ls -lh video.mp4 video-h265.mp4

Для проверки содержимого и кодеков используйте ffprobe:

ffprobe video-h265.mp4

Вывод ffprobe для H.265

В выводе будет видно, что видеопоток (обычно stream#0) использует кодек hevc (H.265), а аудиопоток — формат исходного файла, если вы использовали -c:a copy.

Полезные параметры и «шпаргалка» по x265

  • Качество через CRF (рекомендуемый подход): -c:v libx265 -crf 28 -preset medium.
    • Меньшее значение CRF → выше качество/больше битрейт (типично 18–28; 23 — среднее для H.264, для H.265 можно использовать 24–28 как стартовую точку).
  • Предустановки скорости: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow — от скорости к качеству.
  • Пример для лучшего качества (медленнее):
./ffmpeg -i input.mp4 -c:v libx265 -crf 24 -preset slow -c:a aac -b:a 128k output.mp4
  • Аппаратное ускорение (на поддерживаемых GPU) — отдельные кодеки/параметры, например -hwaccel/NVENC/QuickSync, но они часто кодируют в H.264/H.265 с другой реализацией (проверьте совместимость и качество).

Когда H.265 не подойдёт (ограничения и подводные камни)

  • Лицензирование и патенты: HEVC покрыт патентами, что может создать юридические или коммерческие ограничения для распространения контента.
  • Совместимость плееров: старые устройства и браузеры могут не поддерживать H.265, особенно в MP4 контейнере. В таких случаях нужно использовать H.264 или дублировать варианты.
  • Кодирование медленнее: x265 даёт лучшую компрессию ценой более высокой загрузки CPU и длительности кодирования по сравнению с x264.
  • Качество на низких битрейтах: в некоторых сценах альтернативы (например, AV1) могут показывать лучшие результаты при очень низких битрейтах.

Альтернативные подходы

  • AV1: современный формат с ещё лучшей компрессией, но более медленным кодированием и пока менее широкой аппаратной поддержкой.
  • VP9: открытый формат от Google, хорош в потоках и на YouTube; поддержка в браузерах лучше, чем у HEVC в некоторых случаях.
  • Дублирование форматов: подготовьте два варианта видео — H.265 для новых устройств и H.264 для старых.

Совместимость контейнеров и плееров (микросводка)

  • MP4: обычно совместим, но некоторые старые плееры не распознают HEVC в MP4.
  • MKV: гибкий контейнер, хорош для хранения HEVC и дополнительных дорожек, чаще совместим с медиаплеерами.
  • WEBM: преимущественно для VP9/AV1, не для HEVC.

Ускорение и ресурсы (кейсы)

  • Серверы перекодирования: используйте предварительные расчёты CRF/предсеты и профиль качества для стандартизации.
  • На клиенте: отдавайте адаптивные потоки (HLS/DASH) с несколькими качествами и кодеками.

Критерии приёмки

  • Видеопоток в контейнере должен иметь кодек hevc (проверяется ffprobe).
  • Качество должно соответствовать опорному CRF/битрейту для данного профиля.
  • Время кодирования и использование CPU/GPU не должны превышать заранее установленных SLA для проекта.
  • Плееры целевой аудитории корректно воспроизводят итоговый файл.

Роль‑ориентированные чек‑листы

  • Контент‑продюсер:
    • Выбрать целевой CRF и preset.
    • Проверить, нужны ли разные версии для совместимости.
  • Инженер по трансляциям:
    • Настроить очереди перекодирования и мониторинг CPU/GPU.
    • Тестировать воспроизведение на эталонных устройствах.
  • Системный администратор:
    • Автоматизировать скачивание статических сборок и обновления.
    • Обеспечить резервирование и хранение исходников.

Тестовые случаи и приёмка

  • Перекодировать короткий клип с высокодетализированной сценой и сравнить визуально и по размеру.
  • Проверить воспроизведение на 3 типах устройств: мобильный, десктоп, медиаплеер/TV.
  • Измерить время кодирования и пиковую загрузку CPU/GPU.

Безопасность и лицензии

HEVC покрыт патентами. Перед коммерческим распространением узнайте лицензионные ограничения в вашем регионе и у поставщика контента. Технических угроз в самих контейнерах немного, но всегда проверяйте входные файлы на целостность и вредоносный код, когда получаете исходник из ненадёжного источника.

Частые ошибки и как их исправлять

  • Ошибка: файл не воспроизводится на целевом устройстве. Решение: подготовьте вариант в H.264 или поставьте копию в MKV, проверьте профиль и совместимость.
  • Ошибка: очень медленное кодирование. Решение: смените preset на более быстрый или используйте аппаратное ускорение.
  • Ошибка: неправильный контейнер. Решение: используйте совместимый контейнер (например, MKV) или конвертируйте контейнер без перекодирования: ffmpeg -i in.mkv -c copy out.mp4 (если форматы потоков совместимы).

Сводка

H.265 (HEVC) — эффективный стандарт для хранения и доставки видео высокого разрешения. На Linux оптимальным инструментом является ffmpeg с поддержкой libx265. Используйте CRF и пресеты для баланса качества и скорости, тестируйте совместимость с целевыми устройствами и учитывайте лицензионные аспекты.

Если у вас остались вопросы по конкретным командам, настройкам CRF/bitrate или автоматизации потоковой обработки — задавайте в комментариях, и я помогу с настройкой под ваш кейс.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Разблокировка iPhone голосом — инструкция и риски
Мобильная безопасность

Разблокировка iPhone голосом — инструкция и риски

Исправление зависающей установки Windows 10 Build 15042
Windows

Исправление зависающей установки Windows 10 Build 15042

BitDefender Rescue CD: очистка заражённого ПК
Кибербезопасность

BitDefender Rescue CD: очистка заражённого ПК

Как сохранить Google Maps офлайн
Навигация

Как сохранить Google Maps офлайн

Как эффективно исследовать сабреддит
Руководство

Как эффективно исследовать сабреддит

Поделиться интернетом и паролем Wi‑Fi с Mac
How-to

Поделиться интернетом и паролем Wi‑Fi с Mac