Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 17009|Відповідь: 4

Використовуйте GPU-прискорений ffmpeg для обробки завдань у Windows

[Копіювати посилання]
Опубліковано 2019-11-7 21:08:29 | | | |
Завантаження ffmpeg

Офіційна сторінка завантаження на сайті:
Вхід за гіперпосиланням видно.
Рекомендується завантажити скомпільовану версію та завантажити сторінку:
Вхід за гіперпосиланням видно.
Зазвичай я віддаю перевагу завантаженню останньої версії (названої на честь дати), і, звісно, є стабільна версія (названа за номером версії).



Завантаження CUDA

CUDA — це драйвер, який дозволяє GPU виконувати пов'язані операції, оскільки ми розробляємо додатки, які не керують безпосередньо GPU, а працюють через драйвер.
Вхід за гіперпосиланням видно.
Тут я обираю версію, як показано нижче:
Звісно, ви також можете натиснути на посилання нижче, щоб перейти безпосередньо до налаштувань під час завантаження.
Вхід за гіперпосиланням видно.


Після завантаження не забудьте встановити його, тому я не буду його вводити — адже всі вони розробляють програмне забезпечення.

команда

Команди запиту
Перевірте, чи підтримує завантажений ffmpeg CUDA, якщо ні (я його завантажив), тоді завантажте ще раз або скомпілюйте самостійно.




Тестові команди

Перетворіть 0.mp4 у поточному каталогу у 00.mp4
Конвертуйте 0.mp4 у поточному каталогу у 00.mp4 і вкажіть вихідну частоту кадрів 15 (-r 15) та бітрейт 500k (-b 500k).
-hwaccel cuvid: Визначає використання апаратного прискорення cuvid
-c:v h264_cuvid: Декодування відео за допомогою h264_cuvid
-c:v h264_nvenc: Кодування відео з h264_nvenc
-vf scale_npp=1280:-1: Вкажіть ширину та висоту вихідного відео, зверніть увагу, що це відрізняється від -vf scale=x:x, який використовується для м'якого декодування

Кілька команд відеокарти

Тест на ефективність транскодування GPU
На сервері з двома процесорами Intel-E5-2630v3 і двома відеокартами Nvidia Tesla M4 тест транскодування відео h264 проводився наступним чином:

Середній час транскодування GPU: 8s
Середній час транскодування процесором: 25 с

При паралельному транскодуванні ефективність софт-конвертації процесора підвищується, і всі 32 ядра зайняті, коли три завдання транскодування проходять паралельно

Середній час транскодування GPU: 8s
Середній час транскодування процесором: 18 сек

Неважко помітити, що швидкість транскодування GPU не зростає при паралельному підключенні, що свідчить про те, що GPU може виконувати лише одне завдання транскодування одночасно. Отже, якщо на сервер вставлено кілька відеокарт, чи використовуватиме ffmpeg кілька відеокарт для паралельного транскодування?
На жаль, відповідь — ні.
FFMPEG не має можливості автоматично призначати завдання транскодування різним GPU, але після деяких досліджень було встановлено, що GPU, який використовується для транскодування, може бути заданий параметром -hwaccel_device!
Відправляйте завдання транскодування на різні GPU

Графіка 0


Графічна карта1

Ілюстрації:

-hwaccel_device N: Вкажіть GPU для виконання завдання транскодування, N — це число





Попередній:[Практичний бій] Створіть образ Docker на основі Nginx
Наступний:Прототипи логотипів 2000 року
 Орендодавець| Опубліковано 2019-11-7 21:18:35 |
//参数说明
/*
    * -i filename(input) каталог вихідних файлів
    * -y Виводить нові файли, чи потрібно примусово перезаписувати існуючі файли
    * -c Вказує енкодер
    * -fs limit_size(вихідний) встановлює обмеження розміру файлу, вираженого в байтах. Після перевищення ліміту більше байтових блоків не записується. Розмір вихідного файлу трохи більший за запитуваний розмір файлу.
    * -s відео співвідношення 4:3 320x240/640x480/800x600 16:9 1280x720, стандартне значення 'wxh', такий самий, як і оригінальний розмір відео
    * -vframes number(output) встановлює кількість відеокадрів відповідно до виходу. Псевдонім: -frames:v
    * -dframe number (output) встановлює кількість кадрів даних до вихідного числа. Псевдонім: -frames:d
    * -frames[:stream_specifier] framecount(output,per-stream) припиняє запис у потік через кількість кадрів.
    * -BSF[:stream_specifier] bitstream_filters (Output,Per-Stream) визначає формат потоку вихідного файлу,
Наприклад, виведіть MP4-файл, закодований h264: ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
    * -r 29,97 Чжен (можна змінювати, переконайтеся, що нестандартна швидкість Чжен призведе до розсинхронічності звуку та зображення, тому можна встановити лише на 15 або 29,97)
    *
    */
 Орендодавець| Опубліковано 2019-11-8 15:07:05 |
ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -y C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A16.avi

https://blog.csdn.net/Tosonw/article/details/90178195


NVCC --версія

CUVID — це бібліотека декодування відео на базі CUDA, яка використовує CUVID для декодування


Не вдалося створити пристрій Direct3D
Створення пристрою не вдалося: -1313558101.

Версія ffmpeg повинна відповідати драйверу синхронної відеокарти для коректного апаратного прискорення.


Перегляньте апаратний акселератор NVIDIA:

.\ffmpeg.exe -кодеки | SLS NVENC
.\ffmpeg.exe -кодеки | SLS CUVID

Префікс має такі значення:

Значення префікса
D….. = Підтримується декодування
. E.... = Підтримується кодування
.. V... = Відеокодек
.. A... = Аудіокодек
.. S... = Кодек субтитрів
… I.. = Кодек лише всередині кадру
....L. = Втратне стиснення
….. S = Безвтратне стиснення



ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\ VideoDemo\bin\Debug\A16.avi

ffmpeg.exe -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\ A16.avi


https://developer.nvidia.com/ffmpeg
Опубліковано 2023-2-26 12:11:24 |
Оперативне:Автори забанені або видалений контент автоматично блокується
Опубліковано 2023-2-26 12:13:35 |
Оперативне:Автори забанені або видалений контент автоматично блокується
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com