我開發了一個Windows應用程序,該應用程序使用DirectShow從外部設備捕獲視頻。圖像分辨率爲640x480,無壓縮保存的視頻具有非常大的尺寸(每秒約27MB)。DirectShow中的實時視頻編碼
我的目標是儘可能減小這個尺寸,所以我正在尋找一個編碼器,它可以讓我實時壓縮視頻。它可能是H.264,MPEG-2或其他任何東西。它必須允許我將視頻保存到磁盤,如果我也可以通過網絡實時流式傳輸(Wi-Fi,因此它的大小應該在1MB /秒或更少),這將是最好的。重大的質量損失是不可接受的。
我發現爲此任務獲取適當的DirectShow過濾器非常困難。可以假定客戶機是合理的現代(快速2核CPU)並且可以使用CUDA/OpenCL。有幾個應用程序允許使用CUDA對視頻進行編碼並提供良好的性能,但是我沒有找到合適的DirectShow過濾器或可用於開發的API。 NVIDIA nvcuvenc.dll似乎有私人API,所以我無法直接使用它。我發現的任何基於CPU的編碼器對於我的要求來說都太慢,但也許我錯過了一些。
任何人都可以推薦我一個解決方案,即無論使用CPU/CUDA/OpenCL還是DirectCompute,都可以實現良好性能的編碼器(付費或免費,可用於閉源應用程序)?或者,也許我應該使用一些外部硬件視頻編碼器?
最好的問候,
madbadger
不知道你是否找到了解決方案,但同時我開發了我的產品的傳輸流編碼 - 也許這樣的解決方案也可以接受你自從你在談論通過WiFi流式傳輸 – 2011-02-10 14:11:52