Как качественно стримить и записывать видео на видеокартах AMD
Ни для кого не станет открытием, что среди известных стримеров популярностью пользуются видеокарты компании Nvidia. Но почему же не AMD? Если коротко, то на это есть весьма весомые причины. В этом материале вы узнаете: "Почему же так сложилось и как качественно стримить и записывать видео, если ты счастливый обладатель видеокарты от компании AMD".

Описание проблемы
Долгое время считалось, что для получения качественной картинки игровой процесс необходимо обязательно захватывать силами CPU с минимальным сжатием, как это делает FRAPS. Однако такой способ захвата хоть и позволял добиться желаемого, но существенно влиял на производительность системы.

Почесав репу и видя набирающую популярность игровых онлайн-трансляций, железные гиганты Nvidia и AMD создали и интегрировали в свои новейшие видеокарты аппаратные кодировщики NVENC и AMF/VCE, что обеспечивали высококачественную обработку видео, которая была быстрее и энергоэффективнее по сравнению с аналогичными кодировщиками на базе CPU. Ещё долгое время после релиза их качество оставляло желать лучшего, но с каждым поколением всё менялось.

Вот тут-то и кроется главная проблема. Если Nvidia работала не только над железом и алгоритмом кодирования, но и со многими разработчиками ПО, то компания AMD попросту забила на возможность проведения онлайн-трансляций силами GPU где-либо ещё, кроме как из своей панели управления драйверов. Такое решение привело к тому, что, запуская Obs-studio c какой-нибудь AMD Radeon RX 580 на борту, бедолаге геймеру было доступно весьма ограниченное количество настроек качества, и максимум, чем он мог поделиться, были лишь рассыпающиеся пиксели. Тем не менее не всё так плохо, потому как обычно, когда многомиллиардная компания не может или не хочет, за дело берутся энтузиасты.
Магия Open Source
Несмотря на обновление Obs-studio до 28 версии, где была официально добавлена поддержка расширенных настроек для видеокарт AMD, балом продолжают править пользовательские расширения. На текущий момент существует три основных реализации от энтузиастов, что в той или иной мере помогают исправить проблему. Но мы рассмотрим самую лучшую из них.

Пользовательский энкодер amftest устанавливается простым переносом DLL в папку obs-studio/plugins/ и, в отличие от новейшей официальной реализации, позволяет получить доступ не только ко множеству настроек кодирования, но и обойти многие глупые ограничения, накладываемые со стороны производителя видеокарты.

У меня нет желания. Да и не имеет никакого смысла более подробно всё это расписывать. Всё, что вам необходимо знать, так это то, что благодаря amftes автору успешно удаётся стримить World of Tanks в 2K и 60 FPS на своей слабенькой AMD Radeon RX 550 без существенного влияния на производительность.
Тест
Проведём наглядное тестирование скорости и качества кодировщика AMD при 1080p и 60 FPS в игре World of Tanks на потоковом сервисе Trovo.

Тестовый стенд:
- Процессор: Intel Pentium G4560 2/4 3.5 ГГц
- Видеокарта: AMD Radeon RX 550 2 ГБ GDDR5
- Оперативная память: 2x4 2400 МГц
- Материнская плата: H110M-DGS R3.0 Bios 7.50
- Накопитель: 2 Sata 3 SSD 128 и 256 ГБ
- Звуковая система: Asus Strix Soar
Пожалуйста, учитывайте, что автор не имеет второго компьютера для беспроблемного захвата результата, и вся трансляция, запись, а также сама игра, обрабатываются ресурсами одного ПК. Так что смело умножайте нагрузку на 3.
Несмотря на дополнительное сжатие YouTube, преимущество amftest очевидно.
Заключение
Вот, собственно, и всё! Потратив всего 5 минут, мы исправили недоработки многомиллиардной компании и получили возможность проводить качественные онлайн-трансляции на оборудовании стоимостью меньше 5 тыс. рублей. Уважайте свободу, играйте в хорошие игры и ни в коем случае не предавайте себя.

17 комментариев
Добавить комментарий
т.е. автор решил проигнорировать тот малозначительный нюанс, что этот obs-amf — всего-лишь обёртка над AMF — фреймворком для видео-кодирования, написанным компанией AMD специально для опенсурса.
Ну так вопрос то был «записывать видео со стриминга».
Свою функцию выполняют? Да.
Всё, проблема решена.
Добавить комментарий