Лучшие настройки для FFMpeg с NVENC

26

Я использую мой FFMPEG с поддержкой моего графического процессора ( NVENC ) для преобразования файлов из моего спутникового приемника (SD, mpeg2 .TS-Files) в h264 .mp4-файлы

Вот строка, которую я использую

ffmpeg -i "e:\input.ts" -vcodec h264_nvenc -preset slow -level 4.1
       -qmin 10 -qmax 52 "e:\output.mp4"

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

введите описание изображения здесь

Только 11% GPU и 30% CPU.

Вопрос: Могу ли я сделать несколько улучшений, чтобы улучшить качество при равном размере файла и использовать больше вычислительной мощности моего Geforce GTX 1080?

Я нашел несколько параметров из 林正浩, чтобы изменить, но -preset slowуже должен быть подход лучшего качества, верно?

Доктор улитка
источник

Ответы:

37

Вот приблизительное руководство по настройке кодера:

Мы начнем с основ, так как было бы вредно делать вывод, что быстрый набор опций внезапно улучшит ожидаемый результат без понимания желаемых целей и ожиданий:

1. Начните с понимания параметров кодировщика.

Для кодеров на основе NVENC начните с изучения параметров, которые использует каждый кодер (обратите внимание, что я работаю в Linux, поэтому я использую xclip для копирования параметров кодека в буфер обмена перед их вставкой здесь):

(А). Для кодера H.264:

ffmpeg -hide_banner -h encoder=h264_nvenc | xclip -sel clip

Выход:

Encoder h264_nvenc [NVIDIA NVENC H.264 encoder]:
    General capabilities: delay 
    Threading capabilities: none
    Supported pixel formats: yuv420p nv12 p010le yuv444p yuv444p16le bgr0 rgb0 cuda
h264_nvenc AVOptions:
  -preset            <int>        E..V.... Set the encoding preset (from 0 to 11) (default medium)
     default                      E..V.... 
     slow                         E..V.... hq 2 passes
     medium                       E..V.... hq 1 pass
     fast                         E..V.... hp 1 pass
     hp                           E..V.... 
     hq                           E..V.... 
     bd                           E..V.... 
     ll                           E..V.... low latency
     llhq                         E..V.... low latency hq
     llhp                         E..V.... low latency hp
     lossless                     E..V.... 
     losslesshp                   E..V.... 
  -profile           <int>        E..V.... Set the encoding profile (from 0 to 3) (default main)
     baseline                     E..V.... 
     main                         E..V.... 
     high                         E..V.... 
     high444p                     E..V.... 
  -level             <int>        E..V.... Set the encoding level restriction (from 0 to 51) (default auto)
     auto                         E..V.... 
     1                            E..V.... 
     1.0                          E..V.... 
     1b                           E..V.... 
     1.0b                         E..V.... 
     1.1                          E..V.... 
     1.2                          E..V.... 
     1.3                          E..V.... 
     2                            E..V.... 
     2.0                          E..V.... 
     2.1                          E..V.... 
     2.2                          E..V.... 
     3                            E..V.... 
     3.0                          E..V.... 
     3.1                          E..V.... 
     3.2                          E..V.... 
     4                            E..V.... 
     4.0                          E..V.... 
     4.1                          E..V.... 
     4.2                          E..V.... 
     5                            E..V.... 
     5.0                          E..V.... 
     5.1                          E..V.... 
  -rc                <int>        E..V.... Override the preset rate-control (from -1 to INT_MAX) (default -1)
     constqp                      E..V.... Constant QP mode
     vbr                          E..V.... Variable bitrate mode
     cbr                          E..V.... Constant bitrate mode
     vbr_minqp                    E..V.... Variable bitrate mode with MinQP (deprecated)
     ll_2pass_quality              E..V.... Multi-pass optimized for image quality (deprecated)
     ll_2pass_size                E..V.... Multi-pass optimized for constant frame size (deprecated)
     vbr_2pass                    E..V.... Multi-pass variable bitrate mode (deprecated)
     cbr_ld_hq                    E..V.... Constant bitrate low delay high quality mode
     cbr_hq                       E..V.... Constant bitrate high quality mode
     vbr_hq                       E..V.... Variable bitrate high quality mode
  -rc-lookahead      <int>        E..V.... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)
  -surfaces          <int>        E..V.... Number of concurrent surfaces (from 0 to 64) (default 0)
  -cbr               <boolean>    E..V.... Use cbr encoding mode (default false)
  -2pass             <boolean>    E..V.... Use 2pass encoding mode (default auto)
  -gpu               <int>        E..V.... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
     any                          E..V.... Pick the first device available
     list                         E..V.... List the available devices
  -delay             <int>        E..V.... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
  -no-scenecut       <boolean>    E..V.... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
  -forced-idr        <boolean>    E..V.... If forcing keyframes, force them as IDR frames. (default false)
  -b_adapt           <boolean>    E..V.... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true)
  -spatial-aq        <boolean>    E..V.... set to 1 to enable Spatial AQ (default false)
  -temporal-aq       <boolean>    E..V.... set to 1 to enable Temporal AQ (default false)
  -zerolatency       <boolean>    E..V.... Set 1 to indicate zero latency operation (no reordering delay) (default false)
  -nonref_p          <boolean>    E..V.... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
  -strict_gop        <boolean>    E..V.... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
  -aq-strength       <int>        E..V.... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
  -cq                <float>      E..V.... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
  -aud               <boolean>    E..V.... Use access unit delimiters (default false)
  -bluray-compat     <boolean>    E..V.... Bluray compatibility workarounds (default false)
  -init_qpP          <int>        E..V.... Initial QP value for P frame (from -1 to 51) (default -1)
  -init_qpB          <int>        E..V.... Initial QP value for B frame (from -1 to 51) (default -1)
  -init_qpI          <int>        E..V.... Initial QP value for I frame (from -1 to 51) (default -1)
  -qp                <int>        E..V.... Constant quantization parameter rate control method (from -1 to 51) (default -1)
  -weighted_pred     <int>        E..V.... Set 1 to enable weighted prediction (from 0 to 1) (default 0)
  -coder             <int>        E..V.... Coder type (from -1 to 2) (default default)
     default                      E..V.... 
     auto                         E..V.... 
     cabac                        E..V.... 
     cavlc                        E..V.... 
     ac                           E..V.... 
     vlc                          E..V.... 

(Б). Для датчика HEVC / H.265:

ffmpeg -hide_banner -h encoder=hevc_nvenc | xclip -sel clip

Выход:

Encoder hevc_nvenc [NVIDIA NVENC hevc encoder]:
    General capabilities: delay 
    Threading capabilities: none
    Supported pixel formats: yuv420p nv12 p010le yuv444p yuv444p16le bgr0 rgb0 cuda
hevc_nvenc AVOptions:
  -preset            <int>        E..V.... Set the encoding preset (from 0 to 11) (default medium)
     default                      E..V.... 
     slow                         E..V.... hq 2 passes
     medium                       E..V.... hq 1 pass
     fast                         E..V.... hp 1 pass
     hp                           E..V.... 
     hq                           E..V.... 
     bd                           E..V.... 
     ll                           E..V.... low latency
     llhq                         E..V.... low latency hq
     llhp                         E..V.... low latency hp
     lossless                     E..V.... lossless
     losslesshp                   E..V.... lossless hp
  -profile           <int>        E..V.... Set the encoding profile (from 0 to 4) (default main)
     main                         E..V.... 
     main10                       E..V.... 
     rext                         E..V.... 
  -level             <int>        E..V.... Set the encoding level restriction (from 0 to 186) (default auto)
     auto                         E..V.... 
     1                            E..V.... 
     1.0                          E..V.... 
     2                            E..V.... 
     2.0                          E..V.... 
     2.1                          E..V.... 
     3                            E..V.... 
     3.0                          E..V.... 
     3.1                          E..V.... 
     4                            E..V.... 
     4.0                          E..V.... 
     4.1                          E..V.... 
     5                            E..V.... 
     5.0                          E..V.... 
     5.1                          E..V.... 
     5.2                          E..V.... 
     6                            E..V.... 
     6.0                          E..V.... 
     6.1                          E..V.... 
     6.2                          E..V.... 
  -tier              <int>        E..V.... Set the encoding tier (from 0 to 1) (default main)
     main                         E..V.... 
     high                         E..V.... 
  -rc                <int>        E..V.... Override the preset rate-control (from -1 to INT_MAX) (default -1)
     constqp                      E..V.... Constant QP mode
     vbr                          E..V.... Variable bitrate mode
     cbr                          E..V.... Constant bitrate mode
     vbr_minqp                    E..V.... Variable bitrate mode with MinQP (deprecated)
     ll_2pass_quality              E..V.... Multi-pass optimized for image quality (deprecated)
     ll_2pass_size                E..V.... Multi-pass optimized for constant frame size (deprecated)
     vbr_2pass                    E..V.... Multi-pass variable bitrate mode (deprecated)
     cbr_ld_hq                    E..V.... Constant bitrate low delay high quality mode
     cbr_hq                       E..V.... Constant bitrate high quality mode
     vbr_hq                       E..V.... Variable bitrate high quality mode
  -rc-lookahead      <int>        E..V.... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)
  -surfaces          <int>        E..V.... Number of concurrent surfaces (from 0 to 64) (default 0)
  -cbr               <boolean>    E..V.... Use cbr encoding mode (default false)
  -2pass             <boolean>    E..V.... Use 2pass encoding mode (default auto)
  -gpu               <int>        E..V.... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
     any                          E..V.... Pick the first device available
     list                         E..V.... List the available devices
  -delay             <int>        E..V.... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
  -no-scenecut       <boolean>    E..V.... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
  -forced-idr        <boolean>    E..V.... If forcing keyframes, force them as IDR frames. (default false)
  -spatial_aq        <boolean>    E..V.... set to 1 to enable Spatial AQ (default false)
  -temporal_aq       <boolean>    E..V.... set to 1 to enable Temporal AQ (default false)
  -zerolatency       <boolean>    E..V.... Set 1 to indicate zero latency operation (no reordering delay) (default false)
  -nonref_p          <boolean>    E..V.... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
  -strict_gop        <boolean>    E..V.... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
  -aq-strength       <int>        E..V.... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
  -cq                <float>      E..V.... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
  -aud               <boolean>    E..V.... Use access unit delimiters (default false)
  -bluray-compat     <boolean>    E..V.... Bluray compatibility workarounds (default false)
  -init_qpP          <int>        E..V.... Initial QP value for P frame (from -1 to 51) (default -1)
  -init_qpB          <int>        E..V.... Initial QP value for B frame (from -1 to 51) (default -1)
  -init_qpI          <int>        E..V.... Initial QP value for I frame (from -1 to 51) (default -1)
  -qp                <int>        E..V.... Constant quantization parameter rate control method (from -1 to 51) (default -1)
  -weighted_pred     <int>        E..V.... Set 1 to enable weighted prediction (from 0 to 1) (default 0)

2. Поймите ограничения оборудования и придерживайтесь нормальных значений по умолчанию перед применением параметров:

Обратитесь к этому ответу для ознакомления с аппаратными ограничениями, с которыми вы столкнетесь в NVENC, особенно для кодирования HEVC на Pascal.

Информацию об аппаратно-ускоренной инфраструктуре, доступной для оборудования NVIDIA текущего поколения с FFmpeg, смотрите в этом ответе.

Затем, используя эту информацию, перейдите к следующему шагу.

3. Синтаксис имеет решающее значение:

Вот порядок, в котором вы должны передавать аргументы в FFmpeg:

(А). Вызовите двоичный файл.

(б). Передайте любые аргументы в FFmpeg (например, -loglevelнапрямую) перед объявлением ввода.

(с). Если вы используете какое-либо аппаратно-ускоренное декодирование, например cuvid, объявите его здесь и включите в него любые конкретные аргументы, которые ему требуются. На этом этапе необходимо упомянуть, что у декодеров есть определенные ограничения, такие как ожидаемое разрешение ввода, поддерживаемые кодеки и т. Д., И поэтому рекомендуется в производстве определить и проверить необходимость аппаратно-ускоренных декодеров в качестве сбоя. на этом этапе кодирование не выполняется и не подлежит восстановлению. Фактически, разработчики MPV неоднократно упоминали об этом , не полагаясь на аппаратно-ускоренное декодирование для доставки критически важного контента.

(Г). Объявите ваш вклад. Для потоков используйте URL и, если необходимо, добавьте дополнительные флаги (например, размеры буфера) по мере необходимости. Для локальных ресурсов (в доступной файловой системе) требуется абсолютный путь к файлу.

(Е). При желании вставьте фильтр. Это необходимо для таких функций, как изменение размера, диалоги формата пикселей, деинтерлейсинг и т. Д. Обратите внимание, что в зависимости от используемого здесь фильтра аппаратный декодер (как описано в разделе (c)) будет вводить ограничения, что ваш фильтр должен быть в состоянии обработать, иначе ваш код не удастся.

(е). Вызовите соответствующие видео и аудио кодеры, и передать необходимые аргументы для них, таких как отображения, битрейт, кодировщик пресеты и т.д. Когда речь идет о битрите, убедитесь , что ваши желаемые значения устанавливаются с помощью -b:v, -maxrate:vи -bufsize:vопций. Не оставляйте это поле пустым. Это хорошая отправная точка того, почему эти значения имеют значение. Как всегда, начните с указания пресета. Прокрутите вниз, чтобы увидеть примечания о влиянии на производительность пресетов с этим конкретным кодером.

(грамм). Принимая во внимание, что FFmpeg может выводить требуемый выходной формат файла в зависимости от выбранного расширения выходного файла, рекомендуется явно объявить выходной формат (с помощью опции -f), чтобы при необходимости можно было передать дополнительные опции нижележащему мультиплексору. , как это часто бывает с потоковыми форматами, такими как HLS, mpegts и DASH.

(час). Абсолютный путь к выходному файлу.

С вашим примером выше, цитируемым как:

ffmpeg -i "e:\input.ts" -vcodec h264_nvenc -preset slow -level 4.1
       -qmin 10 -qmax 52 "e:\output.mp4"

Вы можете повысить качество продукции, указав соответствующие битрейт (через -b:v, -maxrate:vи -bufsize:vнастройку), позволяя адаптивные методы кодирования квантования (пространственные и временные методы AQ поддерживаются, из которых может быть использована только по одному за раз) и необязательно (и отдельно) включение взвешенного прогнозирования (которое отключит поддержку B-кадра), как показано ниже, а также дополнительный фильтр для надлежащего уменьшения масштаба и изменения размера, если это необходимо. В приведенном ниже примере показан фрагмент, обрабатывающий ввод mpegts, закодированный в mpeg2:

ffmpeg -loglevel debug -threads 4 -hwaccel cuvid -c:v mpeg2_cuvid -i "e:\input.ts" \
-filter:v hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos \
-c:v h264_nvenc -b:v 4M -maxrate:v 5M -bufsize:v 8M -profile:v main \
-level:v 4.1 -rc:v vbr_hq -rc-lookahead:v 32 \
-spatial_aq:v 1 -aq-strength:v 15 -coder:v cabac \
-f mp4 "e:\output.mp4"

Предупреждение: обратите внимание, что взвешенное предсказание ( -weighted_pred) не может быть включено одновременно с адаптивным квантованием. Попытка сделать это приведет к ошибке инициализации датчика.

В приведенном выше фрагменте предполагается, что входной файл является потоком MPEG2. Если это не так, переключитесь на правильный декодер CUVID после анализа:

ffprobe -i e:\input.ts

Если это H.264 / AVC, измените фрагмент, как показано ниже:

ffmpeg -loglevel debug -threads 4 -hwaccel cuvid -c:v h264_cuvid -i "e:\input.ts" \
-filter:v hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos \
-c:v h264_nvenc -b:v 4M -maxrate:v 5M -bufsize:v 8M -profile:v main \
-level:v 4.1 -rc:v vbr_hq -rc-lookahead:v 32 -spatial_aq:v 1 \
-aq-strength:v 15 -coder:v cabac \
-f mp4 "e:\output.mp4"

Я заметил, что включение параметров адаптивного квантования ИЛИ взвешенного прогнозирования для NVENC может привести к проблемам со стабильностью, особенно с конкретными комбинациями драйверов устройств. Там, где это возможно, рассмотрите возможность использования B-кадров (не более 3) в сочетании с общей опцией, -refs:vустановленной на 16 или около этого, вместо переключения на AQ и взвешенное прогнозирование:

ffmpeg -loglevel debug -threads 4 -hwaccel cuvid -c:v h264_cuvid -i "e:\input.ts" \
-filter:v hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos \
-c:v h264_nvenc -b:v 4M -maxrate:v 5M -bufsize:v 8M -profile:v main \
-level:v 4.1 -rc:v vbr_hq -rc-lookahead:v 32 -refs:v 16 \
-bf:v 3 -coder:v cabac \
-f mp4 "e:\output.mp4"

В частности, с помощью Тьюринга вы также можете воспользоваться включением B-кадров для справки, как показано ниже (см. Переключатель -b_ref_mode:v middle):

ffmpeg -loglevel debug -threads 4 -hwaccel cuvid -c:v h264_cuvid -i "e:\input.ts" \
-filter:v hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos \
-c:v h264_nvenc -b:v 4M -maxrate:v 5M -bufsize:v 8M -profile:v main \
-level:v 4.1 -rc:v vbr_hq -rc-lookahead:v 32 -refs:v 16 \
-bf:v 3 -coder:v cabac -b_ref_mode:v middle \
-f mp4 "e:\output.mp4"

Дополнительное примечание по подсчету потоков (передается в ffmpeg с помощью -threadsопции):

Чем больше потоков кодировщика превышает определенный порог, тем больше задержка и будет занимать больше места в памяти кодирования. Ухудшение качества становится более заметным благодаря большему количеству потоков в режимах с постоянной скоростью передачи битов и режиме почти постоянной скорости передачи битов, называемом VBV (верификатор видеобуфера), из-за увеличенной задержки кодирования. Для ключевых кадров требуется больше данных, чем для других типов кадров, чтобы избежать пульсации некачественных ключевых кадров.

Режим с нулевой задержкой или секционированным потоком не имеет задержки, но этот параметр еще больше ухудшает качество многопоточности в поддерживаемых кодировщиках.

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

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

Примечания о влиянии на производительность с предустановками и соображениями чересстрочной кодировки:

Для обеспечения высокой пропускной способности и производительности с низкой задержкой убедитесь, что вы используете один llhpили несколько llhqпредустановок. Это наиболее полезно для рабочих нагрузок, таких как потоковая передача в реальном времени, где ожидается более широкая совместимость с более широким спектром устройств, и, как таковые, возможности снижения производительности, такие как B-кадры, могут быть вообще опущены для хорошего компромисса между более высокими скоростями передачи в использование и пропускная способность. Более высокие предустановки (такие как настройки по умолчанию medium) быстро уменьшают отдачу в качестве вывода, в то же время в значительной степени снижая пропускную способность кодера. Разница в качестве между измеряемой llhpи llhqизмеряемой VMAF Netflixвеличиной практически ничтожна, однако прирост производительности кодера (более 30% на моем тестовом стенде) по сравнению с первым определенно ощутим.

Для llhpи llhqпресетов, а также других пресетов в использовании, вы можете переопределить встроенные методы контроля скорости, передавая -rc:vаргументы, разоблачены вариантами датчика. Например, при кодировании с постоянной скоростью передачи битов вы можете указать -rc:v cbr(что значительно быстрее, чем cbr_ld_hqметод управления скоростью, что дополнительно увеличивает пропускную способность на ~ 20%). Обратите внимание, что выбранная предустановка оказывает наибольшее влияние на пропускную способность , за которой следуют предустановленные параметры (например, используемый метод управления скоростью), которые можно при желании изменить при желании.

Рассмотрите ваш рабочий процесс кодирования и отрегулируйте по мере необходимости. Ваш пробег будет определенно различаться, в зависимости от вашего исходного контента, используемых цепочек фильтров, конкретных переменных конфигурации pltform (таких как ваш GPU и версии драйверов) и т. Д.

В то же время обратите внимание, что NVIDIA явно отключила чересстрочное кодирование на Тьюринге на всех уровнях, даже в линии 1660Ti, в которой используется более старый кодер Volta NVENC. Если вам требуется поддержка чересстрочной кодировки, переключитесь на Pascal или более старые SKU.

林正浩
источник
1
Эпическая! Спасибо, после долгой работы с аппаратным кодированием, вы бы рекомендовали это по сравнению с кодировкой процессора или же недостатки качества / размера файла все еще велики? Я имею в виду, что в NVENC было сделано много улучшений, и NVENC HQ должны быть такого же качества по сравнению со стандартным x264
Dr. Snail
@ Dr.Snail Я бы рекомендовал сначала оценить требования вашего рабочего процесса и учесть все факторы, прежде чем переходить на аппаратное решение для кодирования. С одной стороны, NVENC, как и другие решения для кодирования на основе SIP, всегда будет обеспечивать значительно более высокую производительность при более высокой энергоэффективности по сравнению с программной реализацией, при этом все остальные факторы постоянны. Для этого примените скорость к качественному компромиссу, как и ожидалось, а затем оцените неподдерживаемые функции. Например, с NVENC мы не можем напрямую вставлять информацию HDR и для этого приходится использовать внешний инструмент.
августа
Инструменты, такие как это: github.com/SK-Hardwired/nv_hevc_hdr_patcher .
августа
Вы выбираете, scale_npp=w=1920:h=1080потому что фильтры - это то, что больше всего выигрывает от графического процессора, верно? Другое дело, ограничение скорости передачи данных, по- -b:v 1000k -minrate 500k -maxrate 3000kвидимому, делает размер выходного документа более предсказуемым
Dr. Snail
Да, @ Dr.Snail. Предсказуемые размеры файлов являются приоритетом.
18:27
3

Мой опыт использования nvenc заключается в том, что вам нужно сказать ему, какой битрейт вы хотите - по умолчанию VBR, что хорошо, но никакие настройки не компенсируют тот факт, что он всегда хочет дать вам средний битрейт 2M независимо от того, в каком разрешении вы его кормите. Это похоже на ошибку в кодировщике; он работает предсказуемо во всех других отношениях, но ему нужно (например) -b:v 4Mдля файла 720p или -b:v 8Mдля 1080p. Вы можете, возможно, тоже немного понизить их.

serilain
источник
1

Libvorbis для аудио кажется медленным. AC3 должен дать вам 15% + ускорение.

При этом что-то не так с вашим видеодрайвером, или вы используете старую копию ffmpeg. q У меня нет вашего клипа, но я взял файл SD TS из моего PVR и использовал ваши настройки.

Я получил 700fps (ваши настройки) на GTX750 (не TI) (дешевле)

Я получил 925fps (ваши настройки с аудио ac3)

Другая рекомендация, которую я могу дать:

Измените свой Qmax примерно до 23.

Дон джованни
источник
Я проверил это на старом GTX 760, который я нашел с 400FPS с помощью этой команды. Не ffmpeg40\bin\ffmpeg -hwaccel cuvid -c:v mpeg2_cuvid -i "E:\input.ts" -c:v h264_nvenc "E:\output.mp4"могли бы вы добавить свой код с AC3 i.stack.imgur.com/CNaWM.png
Dr. Snail
Это должно работать в вашей командной строке. Добавьте его рядом с вашим -c: v h264_nvenc -c: a ac3. Вы также можете использовать 2 сеанса. Откройте вторую командную строку и одновременно закодируйте другой .ts. Если вам нравится, я был бы рад протестировать один из ваших файлов .ts, чтобы увидеть, есть ли что-нибудь еще, что можно сделать, чтобы повысить вашу скорость и качество.
Дон Джованни