Найкращі налаштування для FFMpeg з NVENC


26

Я використовую свій FFMPEG разом із супортю мого GPU ( NVENC ) для перетворення файлів із мого супутникового приймача (SD, mpeg2 .TS-файлів) у 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% використання процесора.

Запитання: Чи можна зробити кілька покращень, щоб покращити якість за рівним розміром файлу та використовувати більшу обчислювальну потужність мого 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-адресу і, якщо потрібно, додайте додаткові прапорці (наприклад, розміри буфера) за потребою. Для локальних ресурсів (у доступній файловій системі) потрібен абсолютний шлях до файлу.

(е). За бажанням вставити фільтр. Це потрібно для таких функцій, як розмір розміру, розмова у форматі пікселів, де-переплетення тощо. Зауважте, що залежно від використовуваного тут фільтра апаратний декодер (як описано в розділі (с) введе обмеження, якими повинен бути ваш фільтр в змозі обробити, інакше ваш код не вийде.

(f). Викличте відповідні відео та аудіо кодери, і передати необхідні аргументи для них, таких як відображення, бітрейт, кодировщик пресети і т.д. Коли мова йде про бітрейте, переконайтеся , що ваші бажані значення встановлюються з допомогою -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. Якщо вам потрібна підтримка переплетеного кодування, перейдіть замість неї на Паскаль або старіші SKU.


1
Епічний! Дякую, працюючи з апаратним кодуванням так довго, чи рекомендуєте ви це щодо кодування процесора чи недоліки в якості / розмірі файлів все ще такі великі? Я маю на увазі, що в NVENC було зроблено багато вдосконалень, а штаб-квартира NVENC повинна бути однакової якості порівняно з x264 за замовчуванням
Dr. Snail

@ Dr.Snail Я рекомендую спочатку судити про вимоги вашого робочого процесу та врахувати всі фактори перед переходом на апаратне рішення кодування. Для одного, NVENC, як і інші рішення на основі кодування на основі SIP, завжди матиме різко більш високу продуктивність при більш високій енергоефективності відносно програмного забезпечення, всі інші фактори постійні. Для цього застосуйте швидкість до якісного компромісу, як очікувалося, а потім зважте на непідтримувані функції. Наприклад, за допомогою NVENC ми не можемо вставляти інформацію HDR безпосередньо і для цього потрібно використовувати зовнішній інструмент.
林正浩

Такі інструменти як: github.com/SK-Hardwired/nv_hevc_hdr_patcher .
林正浩

Ви вибираєте, scale_npp=w=1920:h=1080тому що фільтри - це одне, що найбільше виграє від GPU? Інша річ, обмеження бітрейта -b:v 1000k -minrate 500k -maxrate 3000kначебто робить розмір виводу більш передбачуваним
доктор Равлик

Так, @ Dr.Snail. Передбачувані розміри файлів є пріоритетними.
林正浩

3

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


1

Libvorbis для аудіо здається повільним. ac3 повинен дати вам 15% + збільшення швидкості.

Якщо говорити, що з драйвером відео щось не так, або ви використовуєте стару копію ffmpeg. q У мене немає вашого кліпу, але я схопив файл SD-файлу зі свого PVR і використав ваші налаштування.

Я отримав 700 кадрів в секунду (Ваші налаштування) на GTX750 (не TI) (дешевший)

Я отримав 925 кадрів в секунду (Ваші налаштування з аудіо 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, щоб побачити, чи є ще щось, що можна зробити, щоб накачати вашу швидкість та якість.
Дон Джованні
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.