Для захвата десктопа использую обычный способ через BitBlt() и GetDIBits().
Мне необходимо вставлять этот скриншот в видео поток c fps до 30. На маленьких частотах это работает.
Но на больших частотах начинаю терять кадры на выходе, н-р, на заявленной частоте 30 получаю, где то 18.