Высококачественное сжатие с помощью cuda

Высококачественное сжатие с помощью cuda

Я хочу конвертировать

ffmpeg -i input.mp4 -maxrate 63317762 -bufsize 63317762 -map_metadata -1 -vcodec libx265 -c:a copy -crf 28 -color_range 2 output.mp4

в команду, которая использует cuda для ускорения процесса конвертации.

Я пытался

ffmpeg.exe -hwaccel cuvid -i input.mp4 -pix_fmt p010le -c:v hevc_nvenc -preset slow -rc vbr_hq -b:v 6M -maxrate:v 63317762 -bufsize:v 63317762 -c:a aac output.mp4

И это не сработало.

Я пытался

ffmpeg.exe -hwaccel cuvid -i input.mp4 -c:v hevc_nvenc -preset slow -rc vbr_hq -b:v 6M -maxrate:v 63317762 -bufsize:v 63317762 -c:a aac output.mp4

и это сработало, но при этом битрейт видео был установлен на 6M.

Я хочу, чтобы ffmpeg угадывал его на основе контента до 63317762 байт. Как хороший компромисс между качеством и битрейтом, но ниже 63317762 байт, но также без видимого блочного построения и размытия.

И с CUDA.

Какая команда это делает?

решение1

FFMpeg не контролирует скорость. Каждая реализация кодека имеет свой собственный контроль скорости. Ffmpeg просто передает параметры из командной строки в выбранный вами кодер. x264 поддерживает режим CRF с ограничением. Nvenc — нет. Вам необходимо выбрать битрейт или постоянный коэффициент скорости.

Связанный контент