2011-11-09 23 views
0

我想爲我的C++項目找到簡單的lib,它可以啓動視頻和音頻解碼線程,我可以抓住一些幀? 我試圖解釋在示例代碼我約的lib API和行爲的期望:簡單的圖像採集卡從視頻文件

player = new Player("video.avi"); 
player->Play(); // lib start video decoding into internal hidden buffer 
        // and audio decoder start play sound from video file 
..... 
buffer = new .... 
player->SyncCopyCurrentFrameIntoBuffer(buffer); // copy last decoded frame into buffer 
.... 
play->Pause(); // lib freeze video and audio decoding 

可能有人可以推薦我什麼事? (for Win)

回答

1

DirectShow更多信息是MS技術,它允許您創建一個媒體管道,包括一大堆的濾鏡(如源,編碼器,解碼器,顏色轉換,渲染等)。在DirectShow中,您可以創建一個如下所示的圖形:

Video source -> Sample grabber filter -> Video renderer 

然後您可以播放並暫停圖形。 sample grabber過濾器允許您配置一個回調,在每個樣本通過媒體管道時觸發回調。

請注意,DirectShow不是最簡單的學習框架。然而,一旦你掌握了它,你想要完成的任務就非常容易實現。 DirectShow需要對C++和一些COM有很好的瞭解(在MSDN文檔中有解釋)。主要支持是通過MSDN文檔,這是相當廣泛的MS DirectShow論壇。