LINUX.ORG.RU

Низкая скорость кодирования H264 в RX 580 это нормально?

 , ,


0

2

Пробую кодировать H264 на RX 580 через FFmpeg(h264_vaapi), в результате FullHD видео кодирует со скоростью не более 30 fps(если использовать hevc_vaapi то уже 45 fps). Уже и и последний snapshot FFmpeg пересобрал, а толку никакого. Хотя на оффтопике через A's Video Converter скорость кодирования с 30 fps в течении 10 секунд поднимается до 60 fps.
Предыдущая видеокарта GTX 770 при любых настройках качества стабильно выдавала больше 100 fps.
Или AMD GPU не умеет в кодирование видео?

vainfo: VA-API version: 1.1 (libva 2.1.0)
vainfo: Driver version: Mesa Gallium driver 18.1.0-rc4 for Radeon RX 580 Series (POLARIS10, DRM 3.26.0 AMD 18.30 , 4.15.0-33-generic, LLVM 6.0.1)
Vendor: X.Org (0x1002)
Device: Radeon RX 580 Series (POLARIS10, DRM 3.26.0 AMD 18.30 , 4.15.0-33-generic, LLVM 6.0.1) (0x67df)
Version: 18.1.0


Ответ на: комментарий от Harald

я порядка 300 FPS на интеловской встройке на Haswell помню, так что однозначно мало

Это еще от качества зависит, Intel Quick Sync Video вроде как быстро кодирует но не качественно. Другое дело что не получается на RX 580 получить больший FPS урезанием качества.
Вот так на GTX 770 запускал:

ffmpeg-cuda -start_number 6600 -i "png/graded_edit_final_0%04d.png" -c:v h264_nvenc -qp 0 -pix_fmt yuv420p gtx770.mp4
А вот так на RX 580:
ffmpeg-4 -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/card1 -start_number 6600 -i "png/graded_edit_final_0%04d.png" -vf 'format=nv12|vaapi,hwupload' -c:v h264_vaapi -bf 0 rx580.mp4
Вот думаю а не поставить ли GTX 770 как вторую видеокарту для кодирования видео, только что-то стремно мне что мой БП 80+ Platinum 660W может не потянуть, хреново будет если что-то сгорит.

V1KT0P ()
Ответ на: комментарий от Deleted

vaapi - это же для интела, не?

Video Acceleration API (VAAPI) is a non-proprietary and royalty-free open source software library ("libva") and API specification, initially developed by Intel but can be used in combination with other devices. 

Для AMD VAAPI реализуется через собственный API VCE.

V1KT0P ()
Ответ на: комментарий от V1KT0P

ну там ещё декодирование оригинала было тоже с помощью vaapi, а не из png, так что условия немного разные

ну и интеловская встройка всё в оперативе держит, а не гоняет туда-сюда между видеопамятью и системной RAM

Harald ★★★★★ ()
Ответ на: комментарий от Harald

а не гоняет туда-сюда между видеопамятью и системной RAM

При кодировании на GTX 770 мониторинг загружености PCI-E 3.0 показывал не более 10%(вроде вообще в районе пары процентов, точно не вспомню). Так что копирование точно не бутылочное горлышко.

V1KT0P ()

Или AMD GPU не умеет в кодирование видео?

обычно всё наоборот, АТИ-АМД делает по спекам, а Нвида - как им удобно и срать они хотели на качество и совместимость.

targitaj ★★★★★ ()
Последнее исправление: targitaj (всего исправлений: 1)
Ответ на: комментарий от anonymous

Попробуй как оно под виндовсосом в каком-нибудь хомяковом кодере.

Так пробовал кодер на винде который напрямую VCE использовал, и FFmpeg пробовал, предел 60 fps, через какое-то время.

V1KT0P ()

RX 580 (25000 руб.) медленнее GTX 770

Зато у нее открыты спеки! Опенсорц-драйвер!! Это не какая-то говно-нвидиа!!!
С галиумом-19.3 она раскроет свой потенциал!!!11рас
А если серьезно... Мои соболезнования, бро... Я тоже однажды купил красное дерьмо (сдай по гарантии, пока не поздно).

anonymous ()
Ответ на: комментарий от anonymous

Мои соболезнования, бро...

Наоборот, радости после покупки RX 580 нет предела. Наконец-то не надо бороться с тирингом, в OpenCL и играх производительность гораздо больше чем в GTX 770 как и ожидалось. Проблема только в кодировании(правда хоть скорость кодирования у меня на данный момент в разы ниже, но вот качество вроде лучше, так разница между оригиналом и тем что выдал RX 580 лучше чем GTX 770, это также видно и по метрикам SSIM, но я хочу пожертвовать качеством в угоду скорости и пока такого на RX 580 у меня не получается), вроде обещали на линукс запилить AMF и тогда может быть наладится с кодированием под AMD GPU. А пока придется довольствоваться тем что есть.

V1KT0P ()
Ответ на: комментарий от peregrine

VAAPI на AMD в Linux поддерживается частично. Пробуй через OpenCL.

На оффтопике чеез ffmpeg h264_amf кое-как удалось добиться 74 fps, это обнадеживает.
Пробовал указывать опцию OpenCL для FFmpeg и напрямую x264, одинаково ноль эффекта хотя пишет что используется AMD GPU.

V1KT0P ()
Ответ на: комментарий от Khnazile

Кроме vaapi АМДшный драйвер поддерживает openMAX, попробуй кодировать через него.

FFmpeg не умеет в Bellagio IL core и поэтому использовать его у себя не могу. Пробовал через gst-launch но он пишет ошибку открытия кодировщика, хотя я установил вроде как все библиотеки OpenMAX что смог.
Короче прям беда с аппаратной поддержкой. Кстати библиотеку AMF для Linux уже запилили, проблема только в том что FFmpeg на линуксе еще не умеет ее использовать. И я пока не знаю кодировщик который бы использовал, я даже примеры скомпилить не смог.
В общем количество API для аппаратного кодирования дохрена, а толку почти нет.

V1KT0P ()