Вопрос или проблема
Я использую 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, вы можете следовать приведенным ниже рекомендациям и использовать правильные параметры:
-
Указание качества кодирования:
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
-
Настройка разрешения и битрейта:
Если вы знаете, какое разрешение и битрейт вам нужны, укажите их вручную с помощью параметров-s
для разрешения и-b:v
для битрейта. Это поможет избежать снижения качества. Например:-s 1920x1080 -b:v 10M
-
Профили кодека:
Вы правы, что профили кодека могут влиять на качество. Убедитесь, что ваш кодек HEVC настроен на использование оптимальных параметров. Вы можете задать профиль HEVC с помощью параметра-profile:v main
. Чтобы задать это:-profile:v main
-
Использование других кодеков:
Если качество остается неприемлемым, вы можете рассмотреть возможность использования программного кодекаlibx265
, который предлагает более гибкие настройки качества, хотя и без аппаратного ускорения. Команда будет выглядеть так:ffmpeg -i Intro.mkv -c:v libx265 -crf 18 -preset veryslow -c:a copy Intro-hevc.mp4
Заключение
Для достижения оптимального качества при транскодировании видео в HEVC с использованием hevc_qsv
, важно тонко настраивать параметры кодирования, такие как -global_quality
, разрешение и профили. Настройка этих параметров поможет вам достичь желаемого качества видео, даже используя аппаратное ускорение.
Если проблемы с качеством сохраняются, рекомендуется протестировать результат с помощью разных параметров и просмотреть полученное видео на различных устройствах, чтобы определить наиболее подходящие настройки для ваших нужд.