Показать полную графическую версию : 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, ну если у вас другого производителя, тоже напишите, я дальше сам от этого буду отталкиватся.
Сразу отвечу почему нужен GPU, пробовал на CPU , на 12 ядрах Xeon, скорость просто очень маленькая, 200гб видео с такой скоростью будут примерно 100 часов кодироваться
Jula0071
06-02-2018, 20:48
https://trac.ffmpeg.org/wiki/HWAccelIntro
А конкретно тут: »
Так там же сверху две таблички, на каких платформах какой API поддерживается. VAAPI каким боком к винде-то? Это линуксовая технология. :)
На винде для GPU AMD доступны API AMF, Direct3D 11, Direct3D 9 (DXVA2), Media Foundation, OpenCL; из которых на винде доступен encoder только API AMF.
Вот и ищите, как им воспользоваться.
Но почему то все примеры на линукс: »
Потому что они работают только на линуксе. Винда - не родная платформа для ffmpeg, поддержка весьма ограничена да и вообще через костыли mingw32.
х на винде доступен encoder только API AMF.
Вот и ищите, как им воспользоваться. »
Дайте хотябы 1 пример запуска, ну пожаааааалуййста
Jula0071
07-02-2018, 15:15
У меня нет железа AMD, не на чем проверить.
хотя бы какими ключами запускаете ffmpeg? также как я -hwaccel ? на странице https://trac.ffmpeg.org/wiki/HWAccelIntro ни слова как запускать amf =(
Jula0071
07-02-2018, 17:22
хотя бы какими ключами запускаете ffmpeg? также как я -hwaccel ? »
Это вам ничего не даст, у меня мак и без дискретной карты. Нет никакого -hwaccel.
Переходите на линукс. Или меняйте карту на nv. Или ставьте линукс в виртуалку с пробросом GPU в неё. Или меняйте ffmpeg на энкодер, поддерживающий радеоны из винды.
200гб видео с такой скоростью будут примерно 100 часов кодироваться »это всего 4 суток.
Если бы 5 февраля (дата написания поста) поставили на просчёт, к завтрему бы уже всё перекодировалось.
Набрел в поисках одного фильтра на обсуждение вопроса - сброшу ссылки, чтоб не потерялось.
Итак, первое: доступно оно далеко не на любом железе.
Отдельные от Cuda COres аппаратные енкодеры-декодеры видео
https://developer.nvidia.com/sites/default/files/akamai/designworks/images-videocodec/VCSDK_007a.png
присутствуют только на очень некоторых видеокартах более высокой категории.
Вот тут выложена матрица поддерживающих и не поддерживающих отдельно енкодинг и декодинг видеокарт (https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new#Encoder). Начиная с семейства Марвелл (2012 год)
Всякие "затычки" типа GT710 или старички типа GTX550 или что вроде - пролетают мимо. Увы.
Второе. На стандартном наборе FFMPEG оно не будет работать даже на нужном железе.
Нужно SDK https://developer.nvidia.com/nvidia-video-codec-sdk/download
Нужен CUDA Toolkit https://developer.nvidia.com/cuda/cuda-toolkit
Третье. Нужно или слить отдельный комплект ффмпега под винду (кстати, в нем более не будет ffplay - он не поддерживает аппаратное ускорение под GPU), или пересобрать под линем ffmpeg самостоятельно.
Вот инструкция от NVidia https://developer.download.nvidia.com/compute/redist/ffmpeg/1511-patch/FFMPEG-with-NVIDIA-Acceleration-on-Ubuntu_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 (https://habr.com/ru/post/301654/)
Поскольку у меня нет подходящего железа, мне, увы, оно далее неактуально, но мож поможет тем, у кого оно есть.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.