0
我有Logitech網絡攝像頭,它通過USB2.0使用MJPG壓縮流式傳輸1080p @ 30fps。我需要將這個原始流寫入硬盤或通過網絡發送。我不需要解壓縮它。 OpenCV給了我解壓縮的幀,所以我需要壓縮它們。這會導致CPU使用率過高的浪費。如何獲取原始MJPEG流,而不是來自相機? (Windows 7,Visual Studio,C++)如何從網絡攝像頭獲取原始mjpg流
我有Logitech網絡攝像頭,它通過USB2.0使用MJPG壓縮流式傳輸1080p @ 30fps。我需要將這個原始流寫入硬盤或通過網絡發送。我不需要解壓縮它。 OpenCV給了我解壓縮的幀,所以我需要壓縮它們。這會導致CPU使用率過高的浪費。如何獲取原始MJPEG流,而不是來自相機? (Windows 7,Visual Studio,C++)如何從網絡攝像頭獲取原始mjpg流
Windows原生視頻捕獲相關API DirectShow和Media Foundation允許您以原始格式從網絡攝像頭捕獲視頻。對於這些API來說,這是一個自然的任務,並且以一種直接的方式完成(具體來說,如果網絡攝像機獲得硬件壓縮的M-JPEG提要,您可以通過編程獲得)。
你可以自由地做任何你想要的數據算賬:解壓縮,發送通過網絡,構成一個動態JPEG通過HTTP響應飼料等
加成:在我的情況下,數據可以留在內核空間中。我只需要將它從USB攝像頭驅動程序傳輸到文件系統/網絡IO驅動程序,並儘可能降低CPU的開銷和延遲。即使這是假設專用攝像頭訪問。這是否做過?有一些工作的例子嗎? – xakepp35