Всем доброго времени суток! Сразу хочу извиниться за лонгрид, но по другому вопрос не описать.
Есть задача, написать мастер-скрипт для записи трансляций с чатом на игровом ресурсе, чтобы на выходе получался цельный mkv/webm файл.
С течением времени, в плане логики, было проработано несколько вариантов:
1) Всё началось с идеи что можно захватывать m3u8 поток видео самой трансляции. Визуализировать данные чата через канвас, захватывать его, а потом пост-рендерингом соединять это в один файл. Первым VPS на который пришлась нагрузка был хост Джино с двумя неизвестными ядрами по 2Ггц и 4Гб ОЗУ, в итоге следующая картина:
А это при захвате одного потока, а их может быть до 4. При этом на выходе трансляция выдавала 20fps максимум, требуется хотя бы 25 в идеале 30.
Было принято решение перейти а VPS с Xeon на площадке REGRU, потому что информация о ЦП первого хостера неизвестна, грешили на них. На Xeon 2.2ГГц, ситуация изменилась немного в лучшую сторону, но нужного результата даже для одной трансляции достигнуто не было.
2) И в этом моменте началась проработка второй гипотезы, взять браузер в хэдлесс и захватить его FFmpeg, но и при этом варианте оказалась слишком большая нагрузка.
Возникло ощущение того, что VPS попросту не хватает видео памяти для обработки видео.
Был осуществлён переход на VPS c 256мб видео памяти на сервере с GPU.
Но и тут при тесте ожидало фиаско.
Плюс ответ от службы поддержки хостера 1Gbru:
"то, что вы хотите, не будет работать на gpu того типа, что предоставляется в услуге что вы берете"
Теперь собственно суть вопроса, возможно кто-то сталкивался с подобной проблемой при захвате видео или может подсказать более подходящий инструмент? А возможно кто-то даже знает о неучтённой специфике происходящего.
Потому что остались просто самые экстремальные варианты в духе взять ПК с i5, GTX960 и превратить его в сервер.