Завантаження 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 — це число
|