Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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 (выход, каждый поток) определяет формат потока выходного файла,
Например, выведите 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... = Кодек субтитров
… Я.. = Внутрикадровый кодек
....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\Отладка\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