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

Использование NVENC в FFmpeg

Аппаратное ускорение может значительно ускорить кодирование видео по сравнению с программными кодировщиками на базе процессора. Один из самых популярных аппаратных кодировщиков — NVENC от NVIDIA. Он доступен на большинстве современных видеокарт NVIDIA и может использоваться в FFmpeg.


🔍 Шаг 1. Проверьте доступные аппаратные ускорители

Заголовок раздела «🔍 Шаг 1. Проверьте доступные аппаратные ускорители»
Окно терминала
ffmpeg -hwaccels

Ищите в списке cuda или nvdec.


Окно терминала
ffmpeg -encoders | findstr h264

В выводе ищите h264_nvenc.


⚙️ Шаг 3. Проверьте параметры кодировщика

Заголовок раздела «⚙️ Шаг 3. Проверьте параметры кодировщика»
Окно терминала
ffmpeg -h encoder=h264_nvenc

▶️ Шаг 4. Пример базового кодирования с NVENC

Заголовок раздела «▶️ Шаг 4. Пример базового кодирования с NVENC»
Окно терминала
ffmpeg -hwaccel cuda -i source.mp4 -c:v h264_nvenc -cq 23 -r 30 encoded.mp4
  • -hwaccel cuda — включает аппаратное ускорение CUDA для декодирования.

  • -c:v h264_nvenc — кодирует видео с помощью NVENC (аппаратный видеокодировщик NVIDIA).

  • -cq 23 — устанавливает уровень качества (похоже на -crf в x264, но шкала другая).

  • -r 30 — задаёт частоту кадров на выходе 30 кадров в секунду.


Окно терминала
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i ${i} \
-c:v h264_nvenc -profile:v high -level 4.0 -preset p7 \
-b:v 0 -cq 23 -c:a copy ${o}

-hwaccel_output_format cuda — декодирование и хранение кадров в памяти видеокарты (избегает передачи по PCIe).

-profile:v high -level 4.0 — устанавливает профиль H.264, подходящий для 1080p.

-preset p7 — один из самых медленных, но качественных пресетов NVENC.

-b:v 0 -cq 23 — используется режим постоянного качества (CQ), где cq=23 — баланс между качеством и размером файла.

-c:a copy — копирует аудиопоток без перекодирования.


  • NVENC быстрее программного кодирования на процессоре, но качество может быть немного ниже.
  • Нет полноценной поддержки двухпроходного кодирования и точного контроля битрейта.
  • Поддержка NVENC зависит от вашей модели видеокарты.