Как выполнить бес lossless транс kodirovanie в hevc с помощью кодировщика hevc_qsv в ffmpeg?

Вопрос или проблема

Я использую ffmpeg -hwaccel qsv -c:v h264_qsv -i Intro.mkv -strict -2 -c:v hevc_qsv -preset veryslow -c:a copy Intro-hevc.mp4, чтобы транскодировать видео h264 mkv в hevc mp4. Хотя размер файла уменьшается, качество изображения очень плохое. Как я могу транскодировать в hevc без потерь, используя кодек hevc_qsv?

Попробуйте задать разрешение и битрейт видео.

Я не знаю про hevc, но у h264 qsv есть опция профиля. Попробуйте применить ее, не говоря уже о том, что вам нужно поставить hevcqsv (или h265 qsv, я не знаю, проверьте документацию ffmpeg и документы медиа SDK) вместо h264qsv в флаге -c:v, иначе кодирование будет происходить в h264.

С hevc_qsv невозможно транскодировать без потерь.

Но вы можете задать -global_quality с значениями от 1 (почти без потерь) до 51 (не подходит для просмотра), чтобы контролировать качество. Это включает режим ICQ, который ведет себя аналогично фактору -crf, где crf 23 примерно соответствует тому же качеству, что и global_quality 25.

Другой вариант – использовать libx265, но тогда вы не получите преимущества аппаратного ускорения. В реальности нет видимой разницы в качестве между любым фактором меньше 15 и версией без потерь. Даже 20 выглядит действительно хорошо. Это только увеличивает размер файла.

Я не знаю, как это сделать с FFMPEG, но вы можете использовать HandBrake.

кодеки
Как вы можете видеть на скриншоте, здесь перечислены все кодеки, которые я могу использовать. Просто выберите H.265 (Intel QSV) и задайте качество как 0.

Ответ или решение

Транскодирование в HEVC без потерь с использованием FFmpeg и кодека hevc_qsv

Введение

Транскодирование видеофайлов в формате HEVC (H.265) может быть сложной задачей, особенно когда требуется сохранить качество изображения. В данной статье мы рассмотрим, как использовать FFmpeg и аппаратное ускорение Intel QSV (Quick Sync Video) для эффективного преобразования видео в HEVC с оптимизацией качества.

Проблема

Вы упомянули, что при использовании команды:

ffmpeg -hwaccel qsv -c:v h264_qsv -i Intro.mkv -strict -2 -c:v hevc_qsv -preset veryslow -c:a copy Intro-hevc.mp4

результирующий файл имеет низкое качество, что является распространенной проблемой при работе с видеокодеками. Причины могут варьироваться от неправильно выбранных параметров кодирования до особенностей самого кодека.

Решение

Для достижения наилучшего качества при транскодировании в HEVC с использованием hevc_qsv, вы можете следовать приведенным ниже рекомендациям и использовать правильные параметры:

  1. Указание качества кодирования:
    HEVC_qsv имеет параметр -global_quality, который позволяет контролировать качество сжатия. Чтобы достичь почти без потерь качества, задайте его значение в пределах от 1 до 15. Например, значение 25 может соответствовать CRF 23 из x264.

    Для командной строки добавьте -global_quality:

    ffmpeg -hwaccel qsv -c:v h264_qsv -i Intro.mkv -strict -2 -c:v hevc_qsv -global_quality 20 -preset veryslow -c:a copy Intro-hevc.mp4
  2. Настройка разрешения и битрейта:
    Если вы знаете, какое разрешение и битрейт вам нужны, укажите их вручную с помощью параметров -s для разрешения и -b:v для битрейта. Это поможет избежать снижения качества. Например:

    -s 1920x1080 -b:v 10M
  3. Профили кодека:
    Вы правы, что профили кодека могут влиять на качество. Убедитесь, что ваш кодек HEVC настроен на использование оптимальных параметров. Вы можете задать профиль HEVC с помощью параметра -profile:v main. Чтобы задать это:

    -profile:v main
  4. Использование других кодеков:
    Если качество остается неприемлемым, вы можете рассмотреть возможность использования программного кодека libx265, который предлагает более гибкие настройки качества, хотя и без аппаратного ускорения. Команда будет выглядеть так:

    ffmpeg -i Intro.mkv -c:v libx265 -crf 18 -preset veryslow -c:a copy Intro-hevc.mp4

Заключение

Для достижения оптимального качества при транскодировании видео в HEVC с использованием hevc_qsv, важно тонко настраивать параметры кодирования, такие как -global_quality, разрешение и профили. Настройка этих параметров поможет вам достичь желаемого качества видео, даже используя аппаратное ускорение.

Если проблемы с качеством сохраняются, рекомендуется протестировать результат с помощью разных параметров и просмотреть полученное видео на различных устройствах, чтобы определить наиболее подходящие настройки для ваших нужд.

Оцените материал
Добавить комментарий

Капча загружается...