![]() |
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 часов кодироваться
|
Цитата:
На винде для GPU AMD доступны API AMF, Direct3D 11, Direct3D 9 (DXVA2), Media Foundation, OpenCL; из которых на винде доступен encoder только API AMF. Вот и ищите, как им воспользоваться. Цитата:
|
Цитата:
|
У меня нет железа AMD, не на чем проверить.
|
хотя бы какими ключами запускаете ffmpeg? также как я -hwaccel ? на странице https://trac.ffmpeg.org/wiki/HWAccelIntro ни слова как запускать amf =(
|
Цитата:
Переходите на линукс. Или меняйте карту на nv. Или ставьте линукс в виртуалку с пробросом GPU в неё. Или меняйте ffmpeg на энкодер, поддерживающий радеоны из винды. |
Цитата:
Если бы 5 февраля (дата написания поста) поставили на просчёт, к завтрему бы уже всё перекодировалось. |
Набрел в поисках одного фильтра на обсуждение вопроса - сброшу ссылки, чтоб не потерялось.
Итак, первое: доступно оно далеко не на любом железе. Отдельные от 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-