Nvidia Grid SDK / Захват SDK

953
M Shajeeh Mustafa

Я пытаюсь настроить сетку для захвата отрисованного экрана OpenGl, его кодирования и потоковой передачи в удаленной системе.

Я искал доступные варианты и понял, что Nvidia capture SDK (ранее GRID SDK) будет хорошим вариантом для решения всех этих проблем. Однако для этого требуется Quadro GPU. Тем не менее, я купил Nvidia Quadro K-5000, скачал Nvidia CUDA и Nvidia capture SDK и установил оба. В Nvidia захватывают образцы SDK, я нашел примеры того, как достичь своих целей.

При попытке скомпилировать эти примеры я столкнулся с ошибкой, которая NvIFROpenGL.dllотсутствовала. Я скачал эти файлы вручную и попытался снова скомпилировать. На этот раз ошибка была Can't create an instance of NvIFR. Это может быть вызвано загруженными библиотеками DLL и тем фактом, что мне нужно использовать IFR вместо FBC, поэтому скомпилируйте примеры OpenGLIFR).

Может кто-нибудь подсказать, как настроить среду для Nvidia capture SDK (ранее GRID SDK)? Что еще мне нужно? Пожалуйста, не отвечайте, чтобы прочитать документацию, я много раз читал и даже публиковал сообщения на форумах Nvidia (все по этой проблеме). Я застрял в этом больше месяца и очень расстроен (из-за того, что трачу тысячи долларов на графический процессор и ничего не делаю).

Кроме того, если есть другой способ обойти (проще / лучше, может быть, с gstreamer / directshow?), Пожалуйста, просветите меня, как это сделать?

1
С твоим описанием я не совсем понимаю, почему обычного программного обеспечения для записи недостаточно. Не могли бы вы рассказать подробнее о том, что вы на самом деле пытаетесь сделать / почему вы пытаетесь это сделать? Если я посмотрю на [это] (http://www.nvidia.com/object/grid-technology.html), то окажется, что сетка предназначена для другого варианта использования? Seth 7 лет назад 0
1) Я должен захватывать экран независимо от того, свернуто ли оно или открыто. Поэтому мне нужно получить доступ к его экранному буферу и передать этот буфер. 2) В удаленной системе мне нужно визуализировать этот буфер для создания видео. Этот необработанный буфер будет стоить мне меньше данных / сек для передачи по сравнению с фактическими данными на экране. Да, сетка в основном для обмена GPU. Но когда я прочитал документацию по Capture SDK, они прямо сказали, что он ранее известен как Grid SDK. (это меня тоже смутило) Вот почему я добавил эту фразу в свой вопрос. M Shajeeh Mustafa 7 лет назад 1
Если вы знаете лучшую альтернативу, пожалуйста, направьте меня к ней. Так как мне нужно только достичь своей цели потоковой передачи отображения приложения OpenGl на удаленной системе со скоростью не менее 30 кадров в секунду M Shajeeh Mustafa 7 лет назад 0
Я не проверял, что он делает, когда он свернут, но [Open Broadcaster] (https://obsproject.com/) и [потоковый сервер] (https://en.wikipedia.org/wiki/List_of_streaming_media_systems), вероятно, будут проще в настройке. Кроме того, вы можете легко подключить больше клиентов к потоку. Если это фиксированная установка, почему приложение будет свернуто на исходном? Seth 7 лет назад 0
На самом деле я был убежден, что скорость передачи данных будет слишком высокой для потоковой передачи, и NVidia предоставила аппаратные кодеры для решения этих проблем. Эта вещь в основном привела меня в этот NVidia для захвата SDK, чтобы достичь минимальной скорости передачи данных в секунду. Кроме того, есть и другие преимущества (как указано выше). Будем пробовать ** Open Broadcaster. ** Будем надеяться, что он может передавать @ 30 кадров в секунду на 720p. Большое спасибо ** Сет ** M Shajeeh Mustafa 7 лет назад 0
OBS поддерживает (как минимум) аппаратный кодировщик Nvidia и преобразует его в x264. Это будет зависеть от технических характеристик машины, от того, насколько хорошо она работает, а также от битрейта и передаваемого контента, сколько артефактов вы увидите. Если вы посмотрите на диаграммы для Capture SDK, вероятно, что OBS просто использует это, так что вам не нужно делать подъем. Хотя я не уверен здесь. Если вы все еще хотите сделать свою собственную реализацию, подумайте о создании MWE и предоставлении ему своего вопроса. Seth 7 лет назад 0
да, только что проверил. Он захватывает экран по-своему, но затем позволяет использовать аппаратный кодировщик nvidia для кодирования потока. Кажется, мой графический процессор совсем не трата денег :) ** LifeSaver ** M Shajeeh Mustafa 7 лет назад 0

0 ответов на вопрос

Похожие вопросы