Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Видео и аудио: обработка и кодирование (http://forum.oszone.net/forumdisplay.php?f=45)
-   -   FFmpeg декодирование с помощью GPU (видеокарты) (http://forum.oszone.net/showthread.php?t=332997)

90azat 05-02-2018 10:47 2795892

FFmpeg декодирование с помощью GPU (видеокарты)
 
Дано:
Win 10
Видеокарта AMD FirePro

Все мое гугление приводит к ключу -hwaccel. После тестов удалось запустить с параметром:
ffmpeg.exe -hwaccel dxva2 -threads 2 -i C:\timelaps\aaaa.avi -filter:v "setpts=0.01*PTS" -f avi C:\timelaps\testss.avi
Да это создание timelaps, може вставить свою операцию, любую, мне не важно что там будет выполнятся. Собственно после выполнения данной команды все выполняется но не на GPU а на CPU.

https://trac.ffmpeg.org/wiki/HWAccelIntro
А конкретно тут:
https://trac.ffmpeg.org/wiki/Hardware/VAAPI
Написано что как vaapi юзается для AMD карт. Но почему то все примеры на линукс:
ffmpeg -vaapi_device /dev/dri/renderD128 -i input.mp4 -vf 'format=nv12,hwupload' -c:v h264_vaapi output.mp4

-vaapi_device /dev/dri/renderD128 - как раз и означает видеокарту ? То есть обозначение видеокарты для линукс? А как для винды будет команды?

Напишите пожалуйста любой пример для винды транскодирования на GPU, желательно на карте amd, ну если у вас другого производителя, тоже напишите, я дальше сам от этого буду отталкиватся.

90azat 05-02-2018 11:06 2795897

Сразу отвечу почему нужен GPU, пробовал на CPU , на 12 ядрах Xeon, скорость просто очень маленькая, 200гб видео с такой скоростью будут примерно 100 часов кодироваться

Jula0071 06-02-2018 20:48 2796306

Цитата:

Цитата 90azat
https://trac.ffmpeg.org/wiki/HWAccelIntro
А конкретно тут: »

Так там же сверху две таблички, на каких платформах какой API поддерживается. VAAPI каким боком к винде-то? Это линуксовая технология. :)
На винде для GPU AMD доступны API AMF, Direct3D 11, Direct3D 9 (DXVA2), Media Foundation, OpenCL; из которых на винде доступен encoder только API AMF.
Вот и ищите, как им воспользоваться.

Цитата:

Цитата 90azat
Но почему то все примеры на линукс: »

Потому что они работают только на линуксе. Винда - не родная платформа для ffmpeg, поддержка весьма ограничена да и вообще через костыли mingw32.

90azat 07-02-2018 09:48 2796401

Цитата:

Цитата Jula0071
х на винде доступен encoder только API AMF.
Вот и ищите, как им воспользоваться. »

Дайте хотябы 1 пример запуска, ну пожаааааалуййста

Jula0071 07-02-2018 15:15 2796496

У меня нет железа AMD, не на чем проверить.

90azat 07-02-2018 15:21 2796498

хотя бы какими ключами запускаете ffmpeg? также как я -hwaccel ? на странице https://trac.ffmpeg.org/wiki/HWAccelIntro ни слова как запускать amf =(

Jula0071 07-02-2018 17:22 2796533

Цитата:

Цитата 90azat
хотя бы какими ключами запускаете ffmpeg? также как я -hwaccel ? »

Это вам ничего не даст, у меня мак и без дискретной карты. Нет никакого -hwaccel.

Переходите на линукс. Или меняйте карту на nv. Или ставьте линукс в виртуалку с пробросом GPU в неё. Или меняйте ffmpeg на энкодер, поддерживающий радеоны из винды.

Amigos 08-02-2018 10:22 2796659

Цитата:

Цитата 90azat
200гб видео с такой скоростью будут примерно 100 часов кодироваться »

это всего 4 суток.
Если бы 5 февраля (дата написания поста) поставили на просчёт, к завтрему бы уже всё перекодировалось.

bredych 21-11-2021 16:18 2972706

Набрел в поисках одного фильтра на обсуждение вопроса - сброшу ссылки, чтоб не потерялось.

Итак, первое: доступно оно далеко не на любом железе.
Отдельные от Cuda COres аппаратные енкодеры-декодеры видео

присутствуют только на очень некоторых видеокартах более высокой категории.
Вот тут выложена матрица поддерживающих и не поддерживающих отдельно енкодинг и декодинг видеокарт. Начиная с семейства Марвелл (2012 год)

Всякие "затычки" типа GT710 или старички типа GTX550 или что вроде - пролетают мимо. Увы.

Второе. На стандартном наборе FFMPEG оно не будет работать даже на нужном железе.
Нужно SDK https://developer.nvidia.com/nvidia-...c-sdk/download
Нужен CUDA Toolkit https://developer.nvidia.com/cuda/cuda-toolkit

Третье. Нужно или слить отдельный комплект ффмпега под винду (кстати, в нем более не будет ffplay - он не поддерживает аппаратное ускорение под GPU), или пересобрать под линем ffmpeg самостоятельно.
Вот инструкция от NVidia https://developer.download.nvidia.co...ntu_UG_v01.pdf

Вот тут еще неплохие мануалы со ссылками -
https://andreyv.ru/ffmpeg-bystrejj-eshhe-bystree.html
и
Быстрое кодирование видео в Linux c Nvidia NVENC с SDK 7.5 и ffmpeg 3.0.2 на Nvidia GTX 960/970/980

Поскольку у меня нет подходящего железа, мне, увы, оно далее неактуально, но мож поможет тем, у кого оно есть.


Время: 15:11.

Время: 15:11.
© OSzone.net 2001-