Как исправить чересстрочное видео при кодировании в HEVC через NVENC

Если вы столкнулись с неожиданным появлением «полос» или «расчётки» на видео после конвертации в формат HEVC (H.265), не спешите винить настройки кодека. Часто причина кроется в скрытых параметрах исходного файла, которые неправильно обрабатываются при перекодировании.

Давайте разберёмся, как избежать артефактов и сохранить качество, даже если вы только начинаете работать с видеоконвертацией.

Почему возникает чересстрочность и как её обнаружить

Первым делом проверьте характеристики исходного файла — иногда видео, которое кажется прогрессивным (без чересстрочности), на самом деле имеет скрытые параметры. Для этого используйте утилиту ffprobe, входящую в комплект FFmpeg. Запустите команду:

ffprobe -hide_banner ваш_файл.mp4

В выводе обратите внимание на строку вида yuv420p(top first). Фраза top first указывает, что кадр разделён на два поля: верхнее (нечётные строки) и нижнее (чётные строки), которые воспроизводятся поочерёдно. Это и есть чересстрочность, но современные плееры (VLC, MPC-HC) маскируют её, автоматически применяя деинтерлейсинг.

Пример прогрессивного кадра в крупном плане:

Пример прогрессивного кадра

Пример чересстрочного кадра после конвертации:

Пример чересстрочного кадра после конвертации

Проблема возникает, когда вы кодируете такое видео без обработки. Кодек HEVC (особенно при использовании аппаратного ускорения через NVENC) сохраняет структуру полей, «запекая» артефакты в итоговый файл. Отсюда и неприятные полосы при просмотре.

Пошаговое решение: деинтерлейсинг через FFmpeg

Чтобы преобразовать чересстрочное видео в прогрессивное, добавьте в команду FFmpeg фильтр yadif (Yet Another DeInterlacing Filter). Вот базовый пример:

ffmpeg -i исходный_файл.mkv -vf "yadif=mode=0" -c:v libx264 -preset slow -crf 19 -c:a aac выходной_файл.mp4

Разберём ключевые параметры:

  1. -vf "yadif=mode=0" — активирует фильтр. Режим mode=0 (по умолчанию) обрабатывает каждый кадр, создавая один прогрессивный из двух полей.
  2. -preset slow — чем медленнее пресет, тем эффективнее сжатие.
  3. -crf 19 — баланс между качеством и размером (меньше значение = выше качество).

Если исходное видео имеет пометку top first, фильтр автоматически учтёт порядок полей. Для ручного указания используйте yadif=par=tff (top field first) или par=bff (bottom field first).

Совет: После обработки проверьте результат командой ffprobe. В выводе должно быть yuv420p(progressive) вместо top first.

Ускорение обработки через GPU и тонкости настройки

Фильтр yadif использует CPU, что замедляет кодирование. Для NVIDIA-видеокарт есть альтернатива — yadif_cuda. Пример команды с аппаратным ускорением:

ffmpeg -hwaccel cuda -i исходный_файл.mkv -vf "yadif_cuda" -c:v hevc_nvenc -cq 23 -c:a copy выходной_файл.mkv

Здесь:

  • -hwaccel cuda — задействует GPU для декодирования;
  • yadif_cuda — переносит деинтерлейсинг на видеокарту;
  • -cq 23 — аналог CRF для NVENC (диапазон 1–51, где 1 — наилучшее качество).

Обратите внимание:

  1. Для работы yadif_cuda требуется собрать FFmpeg с поддержкой CUDA. В готовых сборках (например, от Gyan) эта функция часто включена.
  2. Если после обработки остаются артефакты, попробуйте сменить режим деинтерлейсинга. Например, yadif=mode=3 удваивает частоту кадров, что подходит для динамичных сцен.

Что делать, если перекодировать не хочется

Если вы не готовы тратить время на конвертацию, проверьте настройки видеоплеера:

  1. VLC: Инструменты → Настройки → Видео → Фильтры → Поставить галочку «Деинтерлейсинг» → Выбрать «Алгоритм» (например, «Yadif (2x)»).
  2. MPC-HC: Play → Filters → Activate «Deinterlacing».

В драйверах NVIDIA аналогичные опции включаются через «Панель управления NVIDIA» → «Видео» → «Регулировка настроек видео» → «Деинтерлейсинг». Выберите «Использовать настройки драйвера» и установите «Режим» в «Авто» или «Принудительно».

Настройка деинтерлейсинга в панели управления NVIDIA

Важно: Эти настройки влияют только на воспроизведение. Если вы планируете редактировать видео или загружать его на платформы (YouTube, VK), конвертация с yadif обязательна.

Теперь вы знаете, как избавиться от надоедливых полос на видео. Не забывайте проверять исходные файлы через ffprobe — иногда проблемы начинаются ещё на этапе анализа. Если остались вопросы по тонкостям настроек FFmpeg, смело экспериментируйте с параметрами -preset и -crf, чтобы найти баланс между скоростью и качеством.

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

Все поля обязательны к заполнению. Ваш адрес email не будет виден никому.

Новое
Интересное