Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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
    * -dframes number (output) задава броя на кадрите с данни спрямо изхода. Псевдоним: -frames:d
    * -frames[:stream_specifier] framecount(output,per-stream) спира да записва в потока за броя на кадрите.
    * -BSF[:stream_specifier] bitstream_filters (изход, на поток) определя формата на изходния файлов поток,
Например, изведете MP4 файл, кодиран от h264: ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
    * -r 29.97 Zhen rate (може да се променя, уверете се, че нестандартната Zhen честота ще доведе до несинхронизиране на звука и картината, така че може да се настрои само на 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
Публикувано на 26.02.2023 12:11:24 |
Бърз:Авторите са баннати или премахнато съдържание автоматично се блокира
Публикувано на 26.02.2023 12:13:35 |
Бърз:Авторите са баннати или премахнато съдържание автоматично се блокира
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com