Skip to content

Апаратне кодування (NVIDIA NVENC + Intel QSV) з автовизначенням заліза - #3

Open
Mizyazya wants to merge 3 commits into
drfailov:mainfrom
Mizyazya:feature/gpu-nvenc-support
Open

Апаратне кодування (NVIDIA NVENC + Intel QSV) з автовизначенням заліза#3
Mizyazya wants to merge 3 commits into
drfailov:mainfrom
Mizyazya:feature/gpu-nvenc-support

Conversation

@Mizyazya

Copy link
Copy Markdown

Додав апаратне кодування як альтернативу CPU — тепер можна кодувати через
NVIDIA (NVENC) або Intel (Quick Sync), або лишити CPU (libx265) як було.

Зміни:

  • В інтерфейсі перемикач CPU/NVIDIA GPU/Intel GPU (радіокнопки нагорі панелі
    налаштувань). Показуються лише ті варіанти, які реально доступні на цій
    машині — визначення відбувається пробним кодуванням при старті, без
    прав адміністратора і без WMI.
  • Логіка кожного варіанту кодування винесена в окремий файл
    EncoderSettings.cs — додати новий (напр. AMD AMF) можна без змін в іншому коді.
  • Виправлено баг: hevc_nvenc падав (0 байт) на 4:2:2-джерелах (напр. ProRes) —
    формат пікселів нормалізується перед кодуванням, 10-біт HDR зберігається.
  • Виправлено deadlock, через який -gpuY міг тихо відкочуватись на CPU при
    автозапуску через bat-файли.
  • Виправлено крах програми на від'ємному time= у виводі ffmpeg (траплялось
    на перших кадрах при кодуванні з B-кадрами).
  • Оновив ffmpeg.exe до 8.1.2 (gyan.dev full build) — стара збірка 2016 року
    не мала NVENC/CUDA.
  • Додав аргументи командного рядка -gpuY/-gpuN (сумісні зі старими bat-
    скриптами) та нові -qsvY/-qsvN.
  • Коротко оновив README під нові можливості.

Протестовано на RTX 4060 + Intel UHD Graphics — усі три варіанти кодування
перевірені наскрізно через сам застосунок (не лише скриптами), включно з
файлом, який раніше давав збій на GPU.

Також додав готовий реліз 2.7 у Releases/.

Mizyazya added 3 commits July 15, 2026 15:47
- В інтерфейсі додано перемикач "Використовувати GPU (NVIDIA NVENC)" поруч з CRF/Preset
- CPU-режим (libx265) лишився без змін і увімкнений за замовчуванням
- GPU-режим використовує hevc_nvenc + hwaccel cuda, з мапінгом існуючого повзунка пресетів на пресети NVENC (p1-p7)
- Додано аргументи командного рядка -gpuY / -gpuN для автоматизації
- Оновлено ffmpeg.exe в релізі до 8.1.2 (gyan.dev full build) - стара збірка 2016 року була без --enable-nvenc/--enable-cuda і фізично не могла кодувати на GPU
- Третій варіант кодування - Intel QSV (hevc_qsv) поруч з CPU і NVIDIA
- Перемикач замінено з чекбоксу на 3 радіокнопки, перенесено нагору панелі
- Автовизначення заліза при старті (пробне кодування, без WMI/прав адміністратора) - показуються лише реально доступні варіанти
- Логіка кожного кодера винесена в окремий EncoderSettings.cs для легшого розширення (напр. AMD AMF)
- Виправлено: hevc_nvenc падав (0 байт) на 4:2:2-джерелах (ProRes) - нормалізація формату пікселів перед кодуванням, 10-біт HDR зберігається
- Виправлено: deadlock, через який -gpuY міг тихо відкочуватись на CPU при автозапуску
- Виправлено: крах програми на від'ємному time= у виводі ffmpeg
- Додано аргументи командного рядка -qsvY / -qsvN (сумісність з -gpuY/-gpuN збережена)
Коротко додано: версія в заголовку, один пункт про апаратне прискорення
в можливостях, аргументи -gpuY/-gpuN/-qsvY/-qsvN у списку CLI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant