1

Тема: Аппаратное ускорение при транскоде

Есть желание, задействовать аппаратные ресурсы видеокарты, при транскоде, для разгрузки процессора. Активация галочки, в настройках VLC и Ace Stream плееров - "использовать видеоускоритель" - результатов с видеокартой Radeon 4850 - не дала. При просмотре HD каналов в Торрент ТВ, загрузка проца (Intel core 2 duo) - 95%.
Возможно, нужны специальные драйвера для видюхи, или специальные профили транскода.
У кого получится енто дело, отписывайтесь.

LG 42LM640T
Профиль  Универсальный
Видишь суслика ? Нет ! И я нет ! А он есть !!!

2

Re: Аппаратное ускорение при транскоде

В общем, нет худа без добра, пока обновлял дрова на видеокарту - сдох полностью мой Виндоуз 7, и никакие откаты назад не помогают. Короче, запустил резервный Виндоуз 8, в расширенных настройках плеера Ace Stream, активировал FFMPEG - аппаратное декодирование, и загрузка проца стала скакать, от 15% до 95% на канале 1HD, с профилем Ace Stream FFMPEG, а до этого постоянно была 95%.
Кажись заработало !
Надо бы ещё прогу какую ни то, чтобы проверить загрузку видеокарты, чтобы уж точно знать.

+ открыть спойлер

http://i016.radikal.ru/1502/89/5c4490b4af09.jpg

LG 42LM640T
Профиль  Универсальный
Видишь суслика ? Нет ! И я нет ! А он есть !!!

3

Re: Аппаратное ускорение при транскоде

Чтобы удостовериться в аппаратном ускорении, пришлось заного установить WINDOWS-7(64), куда встали родные дрова AMD, где можно наблюдать загрузку видеокарты. Короче, перепробовал все профили транскода с подкастами Torrent TV и CXZ.TO, и везде видеокарта не задействуется (активность 0%), кроме профиля Ace Stream (перекодирование), где видеокарта загружается около 10%. Но смысла в этом профиле никакого - вместе с видюхой, проц всё равно грузится на полную, транскод идёт очень медленно, даже поток HD каналов не успевает перекодировать, и качество изображения хуже, чем в оригинале.
Если бы, в других профилях транскода, видюха задействовалась, было бы круто, а так пока глухо.


+ открыть спойлер

http://s009.radikal.ru/i309/1502/af/e8fa015638a8.jpg

LG 42LM640T
Профиль  Универсальный
Видишь суслика ? Нет ! И я нет ! А он есть !!!

4

Re: Аппаратное ускорение при транскоде

Тоже вопросом этим интересовался.
В общем, тут дело вот в чем. Чтобы задействовались аппаратные ресурсы видеокарты - нужно, чтобы были подходящие видеокарта и видео-драйверы. Т.е. не со всеми и не всегда это возможно.
Потом, если профиль транскодирования чисто ремуксит (не перекодирует дорожки, а просто упаковывает выбранные в новый контейнер), то и ускорения не будет. Ускорение может быть только при перекодировании (помощь в сжатии кадра).

Я поэкперементировал, но так и не понял до конца... Вроде помогает, чисто процесс hmsmpeg.exe вроде на 10-20% стал меньше кушать при HD. Это на обычных подкастах, типа cxz.to и прочих, которые у меня используют профиль "Фильмы (Основной)".
Этот профиль я просто скопировал добавил в начале ключ "-hwaccel auto". И всё. Это ключ для ffmpeg.
Пока проверял загруженность, с удивлением и легким недоумением обнаружил, что мой проц загружен на 25% при полном бездействии и вообще 1 ядро из четырёх постоянно на 90-100% загружено. Системой. Точнее, как выяснилось, процессом Interrups. Нужно что-то чинить в виндах...
Для кучи сделал и прикрепил этот профиль транскодирования. Может кому поможет. Хорошо бы отписались.

А вот в случае с torrent tv и иже с ними, там тема отдельная. Профили AceStream, где указаны в названиях FFMPEG, типа "AceStream (ACEPLAYER - FFMPEG)" - это профили, которые с помощью ace_player получают поток, но на обработку отдают для ffmpeg, который уже пыжется, кодирует и грузит проц. Так что я тоже в параметрах для ffmpeg в этом профиле поставил этот ключ для hardware acceleration. И процесс hmsmpeg стал грузить проц меньше, однако с картинкой начали происходить чудеса - зависания в другом цвете, дергания и вообще косяки. Может у кого-то другого по-другому будет? Сделал профиль с включенным параметром для тестов.

В других профилях, где транскодирует сам VLC (ace_player сделан на основе него, так что для универсальности будем говорить про vlc) - там мне так и не удалось зафиксировать какие-либо ускорения, какие бы я ключи не пробовал. Хотя картинка тоже, вроде портится.
Это профиль "AceStream (Перекодирование)", там сам vlc транскодит. Но, как было замечено - качество картинки страдает заметно. Либо нужно поэксперементировать также с параметрами, чтобы он её так не ухудшал.

Кстати. Проверено на опытах - выставление галок в самом плеере VLC (или Ace Player) ничего не даёт при транскодировании в самом HMS. Эти настройки будут действовать только при просмотре на компьютере через них, т.е. при запуске их в режиме GUI, транслирующих видео на экран монитора. А при транскодировании в HMS они запускаются как команда с указанием параметров и все выставленные для плеера настройки не применяются, а выставляются по-умолчанию. Можете проверить включив эффекты, сглаживание и проч. При запуске самого плеера и просмотре в нём - будете видеть изменения, а при просмотре через HMS на телеке - нет.
Тут один выход - задать параметры для запуска транскодирования в самом HMS. Точнее в профиле транскодирования.

Для vlc использовал параметры: --no-overlay --ffmpeg-hw -v --directx-use-sysmem --direct3d-hw-blending
и чет ничего.. Может у кого другого будет что.

Прикреплённые файлы сообщения

AceStream (ACE-FFMPEG) + HW Acceleration.cfg 3.66 kb, скачивалось 587 раз, начиная с 2015.03.01

AceStream (Перекодирование) + HW Acceleration.cfg 8.87 kb, скачивалось 481 раз, начиная с 2015.03.01

Фильмы (основной) + HW Acceleration.cfg 2.83 kb, скачивалось 644 раза, начиная с 2015.03.01

Sony Bravia KDL-32CX523
Спасибо сказали: Big Dog1

5

Re: Аппаратное ускорение при транскоде

Немного потестил, т.к. по нагрузке проца трудно определять, смотрел на активность видеокарты, как на скрине выше.
C профилем "Фильмы (основной) + HW Acceleration", попробовал подкасты CXZ.to и Torrent Rover - работает и с тестовым транскодом, и при просмотре с телека. Загрузка видеокарты 10-15%, загрузка проца тоже снижается на 10-20%. Дефектов в изображении пока не заметил.
А вот с ТоррентТВ, какая то карусель получается : проверял на HD каналах TorrentTV (избр) - при тестовом транскоде, со всеми выложенными выше профилями, идёт активность видеокарты 10-15% (даже с простым профилем AceStream Перекодирование), а при просмотре с телека этих же каналов, видюха вообще не задействуется (непонятная ситуация).
Т.К. у меня с профилем "фильмы основной", в простых подкастах, перемотка срабатывает в меньше половине случаев, хотелось бы аппаратное ускорение именно в ТоррентТВ использовать. Пока на подкасте Torrent Rover, проверяю на 3D фильме, вроде показывает нормально, загрузка видеокарты есть.
У кого видюха RADEON, выкладываю ссылку на прогу с сайта AMD, которая сама определяет вашу видеокарту и операционную систему, и предлагает скачать последние дрова с сайта, в которых можно смотреть активность видеокарты.
http://support.amd.com/ru-ru/download

LG 42LM640T
Профиль  Универсальный
Видишь суслика ? Нет ! И я нет ! А он есть !!!

6

Re: Аппаратное ускорение при транскоде

Потестил ещё : На подкастах Торрент ТВ с профилем "AceStream (ACE-FFMPEG) + HW Acceleration" тоже вообще то работает. Видеокарту загружает на 10-15%, а на проц уменьшает нагрузку на 10-15%.
Просто я себе сделал венегрет из профилей : на HD каналы - "AceStream (ACE-FFMPEG)", на каналы по категориям - "AceStream (ACE-FFMPEG)"+AR 16:9, на избранные - "AceStream (ACE-FFMPEG) + HW Acceleration". Хотел один и тот же канал, запускать для сравнения с разными профилями из разных папок, а получается что при первом запуске канала с одним профилем (например с ускорением), HMS запоминает это, и при запуске из папки без ускорения, он запускает как было при первом запуске - с ускорением (либо наоборот).
Вобщем, пару раз было рассыпание изображения на квадраты, то ли из-за аппаратного ускорения, то ли из-за вещания Торрент ТВ.
Также, вроде бы розовый оттенок на изображении появился, а может просто каналы такие.
Будем тестить ещё.

LG 42LM640T
Профиль  Универсальный
Видишь суслика ? Нет ! И я нет ! А он есть !!!

7

Re: Аппаратное ускорение при транскоде

Подскажите как в профиле AceStream (ACE-FFMPEG) + HW Acceleration немного занизить битрейт, а то на входе файл идет 2-5 мбит в сек. а на выходе аж 8,5мбит. откуда оно берет параметр 8 мбит не могу понять :(

8 (2015.12.05 22:04:50 отредактировано d1mas)

Re: Аппаратное ускорение при транскоде

В обновлении на версию 2.0 оказывается автор заявил о поддержке "Nvidia Encoder (Hardware-Accelerated H.264 and HEVC (H.265) Video Encoding)" модулем ffmpeg версии 2.6.1:http://homemediaserver.ru/forum/viewtop … amp;t=4297

В крайней версии программы уже ffmpeg 2.8.1 и я не наблюдаю в ней кодека nvenc среди поддерживаемых, а команда, печатающая список поддерживаемых аппаратных методов акселерации, выдает только dxva2.

Попробую выковырнуть ffmpeg версии 2.6.1 и посмотреть, что он скажет.

Кстати даже dxva2 видюшку задействует при транскоде. По индикатору частоты ядра ГПУ и памяти видно. Запускаешь транскод - частоты из режима ожидания подскакивают.

UPD

Посмотрел на версию 2.0 сервера. Там действительно hmsmpeg показывает версию ffmpeg 2.6.1. Но на этом все и заканчивается. Кодеков нет. -hwaccels вообще не поддерживается. Что имел ввиду автор - очередная загадка.

UPD 2

hwaccels к поддержке nvidia encoder'a не имеет отношения. Нашел рабочий бинарник ffmpeg скомпилированный с поддержкой nvidia encoder'a. Прогнал тесты. Реально работает. К качеству картинки на первый взгляд претензий нет. Не знаю, как он заработает в связке с hms. Вечерком выложу профиль, будем посмотреть.

9

Re: Аппаратное ускорение при транскоде

Таки оно работает. В версии 2.0 HMS все-таки есть эта штука.

Выложил профиль тут: https://hms.lostcut.net/viewtopic.php?pid=2504#p2504

Его нужно допиливать. Надеюсь на помощь WendyH или кого-то еще. Не получилось реализовать проверку - поддерживается ли кодек текущей версией ffmpeg. Костыли очередные, но работает.

Сравню еще производительность и распределение нагрузки при использовании кодека nvenc и параметра hwaccels. Второй выглядит более универсальным, ибо nvenc работает только для h.264 и hevc.

10 (2016.08.03 18:24:41 отредактировано d1mas)

Re: Аппаратное ускорение при транскоде

Начиная с HMS версии 2.12 появилась возможность настраивать параметры транскодера прямо в окне настроек программы. Таким образом нет необходимости в отдельных профилях для использования аппаратных возможностей видеокарт NVIDIA при транскодировании.
Достаточно открыть настройки HMS, перейти в блок "Транскодер", открыть закладку "Параметры кодирования" и выставить для кодеков X264 и HEVC (если оные поддерживается оборудованием) следующие параметры:

+ открыть спойлер

https://hms.lostcut.net/misc.php?action=pun_attachment&item=1177
После чего вернуть в настройках профиль Фильмы (основной) или что-то иное из встроенного в HMS комплекта. Все профили автор поправил для совместимости с этой настройкой. Результат видно сразу при тестовом транскодировании.
https://hms.lostcut.net/misc.php?action=pun_attachment&item=1178

Для любителей покопаться в кишочках транскодера и выжать из него все соки парочка консольных команд, выводящих параметры, которые принимают кодеки:
hmsmpeg -h encoder=hevc
hmsmpeg -h encoder=nvenc

P.S. Владельцы видеокарт AMD к сожалению за бортом. Для них остается опция -hwaccels первым аргументом к hmsmpeg (ffmpeg). Ее все грозятся выпилить, но пока работает.

Спасибо сказали: WendyH1

11 (2017.01.19 17:52:17 отредактировано d1mas)

Re: Аппаратное ускорение при транскоде

Есть ли кто-нибудь с крайней версией HMS (2.22 или 2.23) и видеокартой NVIDIA?

Там автор в новостях писал: Обновлен транскодер ffmpeg-1.dll (версия 3.2.2), добавлена поддержка CUDA, CUVID.

На моей системе Win 7 64 hmsmpeg с кодеком nvenc не работает. На версии видеодрайвера ниже 368 пишет:
[h264_nvenc @ 0xразные цифири] Cannot load NvEncodeAPIGetMaxSupportedVersion
На версии видеодрайвера 368 и выше просто крашится:
AccessViolation: ═рЁє°хэшх фюёЄєяр т рфЁхёх 70DA01EF т ьюфєых 'ffmpeg-1.dll'. ╟
ряшё№ шч рфЁхёр 725204D4

12

Re: Аппаратное ускорение при транскоде

d1mas пишет:

Есть ли кто-нибудь с крайней версией HMS (2.22 или 2.23) и видеокартой NVIDIA?

Там автор в новостях писал: Обновлен транскодер ffmpeg-1.dll (версия 3.2.2), добавлена поддержка CUDA, CUVID.

На моей системе Win 7 64 hmsmpeg с кодеком nvenc не работает. На версии видеодрайвера ниже 368 пишет:
[h264_nvenc @ 0xразные цифири] Cannot load NvEncodeAPIGetMaxSupportedVersion
На версии видеодрайвера 368 и выше просто крашится:
AccessViolation: ═рЁє°хэшх фюёЄєяр т рфЁхёх 70DA01EF т ьюфєых 'ffmpeg-1.dll'. ╟
ряшё№ шч рфЁхёр 725204D4

Приветствую
Мы уже как то это с вами обсуждали в теме по ffmpeg, начиная с версии 3.2.2 оригинальный энкодер ffmpeg и новая версия SDK использует новый набор команд h264_nvenc и hevc_nvenc, но старая версия hmsmpeg его не понимала, возможно с новой версией всё работает, пробуйте.
На выходных проведу тестирование

WD TV LS+Sony KDLS5600/Samsung UEF5400/Sony PS 3/Yamaha RX-V379/hms 2.33
Кладовая HMS (список полезных ссылок и инструкций)
https://hms.lostcut.net/misc.php?action=pun_attachment&item=2914&download=0
Временно отсутствую

13 (2017.01.19 18:50:58 отредактировано d1mas)

Re: Аппаратное ускорение при транскоде

Мы обсуждали немного другое. А именно поддержку (или отсутствие таковой) ffmpeg'ом энкодера nvenc и способы передачи нужного параметра.

У меня ситуация теперь совершенно иная. Обновился с версии 2.15 (и ведь не хотел, черт дернул). Команду -vcodec h264_nvenc hmsmpeg глотает и не ругается.

При вызове из командной строки hmsmpeg -encoders | findstr h264 я вижу, что он собран с поддержкой nvenc:

+ открыть спойлер

ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.3.0 (i686-win32-sjlj-rev0, Built by MinGW-W64 project)
V..... libx264              libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
V..... libx264rgb           libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
V..... h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
V..... h264_qsv             H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264)
V..... nvenc                NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)

А вот при фактическом транскодировании получаю ошибку. Погуглив первую ошибку: Cannot load NvEncodeAPIGetMaxSupportedVersion нашел несколько решений, суть которых была в повышении версии драйвера видеокарты.

Обновил драйвер и теперь вижу только крэши кодека. Попробовал несколько версий видеодрайвера от 362 до 376. Увы. До 368 получаю ошибку №1, выше получаю ошибку №2.

14

Re: Аппаратное ускорение при транскоде

d1mas
Возможно при компиляции использовался старый пакет SDK, тогда будет именно то что вы описали, надо проверять, была похожая тема на форуме ffmpeg, но там все сводилось к обновлению пакета SDK

А пока можете откатиться, вот вам версия 2.10 (установите с сохранением параметров), а после обновите по порядку, с использованием пакетов prf с офф. форума, так же с сохранением параметров

2.10
https://cloud.mail.ru/public/CcYQ/2d7GMuL6r

Пакеты по порядку

На выходных сделаю полный отчёт, что и как ;)

WD TV LS+Sony KDLS5600/Samsung UEF5400/Sony PS 3/Yamaha RX-V379/hms 2.33
Кладовая HMS (список полезных ссылок и инструкций)
https://hms.lostcut.net/misc.php?action=pun_attachment&item=2914&download=0
Временно отсутствую

15

Re: Аппаратное ускорение при транскоде

Возможно, возможно. Надеюсь до автора эта информация дойдет.

Спасибо за пакет. Я калач тертый. Свой билд 2.15 сохранил. Откачусь на него пока.

16

Re: Аппаратное ускорение при транскоде

d1mas пишет:

Возможно, возможно. Надеюсь до автора эта информация дойдет.

Спасибо за пакет. Я калач тертый. Свой билд 2.15 сохранил. Откачусь на него пока.

Протестирую и если у меня будет тоже самое, то напишу автору в redmine о этой проблеме, но думаю к финальной версии он и сам это исправит, вот почему не люблю промежуточные версии программ

WD TV LS+Sony KDLS5600/Samsung UEF5400/Sony PS 3/Yamaha RX-V379/hms 2.33
Кладовая HMS (список полезных ссылок и инструкций)
https://hms.lostcut.net/misc.php?action=pun_attachment&item=2914&download=0
Временно отсутствую
Спасибо сказали: d1mas1

17

Re: Аппаратное ускорение при транскоде

Откатился на релиз 2.21. Там hmsmpeg версии 3.1.2.

Кодек работает. Вы правы, промежуточные билды - лотерея.

Спасибо за участие :)

18

Re: Аппаратное ускорение при транскоде

Народ, как настроить аппаратное декодирование видеокартой?
Перепробовал все профили, только процом идёт и всё тут.

AMD RX480, пробовал профили: Фильмы (основной) + HW Acceleration, Фильмы (основной) с корректным AR и HWACCEL, Фильмы (основной) - FFMPEG + hwaccel и другие.
Версия 2.25.