2016-02-17 51 views

回答

1

對於桌面屏幕截圖,您應該查看通過IDXGIOutputDuplication實現的輸出重複功能。你所要做的就是獲得你需要的視頻適配器的DXGI對象,枚舉輸出以找到需要的輸出(或者全部如果你從多個屏幕同時捕獲)並通過調用IDXGIOutput1::DuplicateOutput複製它。通過複製功能,您可以訪問可以映射到CPU可讀內存的GPU視頻表面 - 因此,它可以加速。

Here是Microsoft在此問題上的完整示例。

+0

謝謝@Rudolfs,是的,我知道DXGI。 DXGI是否使用媒體基礎的[視頻捕捉](https://msdn.microsoft.com/en-us/library/windows/desktop/dd940439(v = vs.85).aspx)?或者這個類如何與DXGI相關?並且DXGI在Windows 7中不受支持。 – anurudh

+1

@anurudh - 這與視頻捕獲無關。 DXGI通過Direct3D而不是Media Foundation工作。是的,它不支持Windows 7 - 你必須使用Windows 7的舊方法。 –

+0

好的。我還在等待答案,視頻採集可以用於屏幕捕獲嗎? – anurudh

0

我看到你需要解決非常具體的任務,我認爲有一個解決方案非常接近你的需求。現場「CodeProject」中有文章「CaptureManager SDK」。它包括由Media Foundation提供的流式桌面屏幕和輸出揚聲器緩衝區的有趣示例代碼。它可以通過MP4格式流式傳輸到網頁瀏覽器。我認爲你可以發現它很有趣。