2011-07-13 52 views
0

我正在設計一個程序,它能夠將視頻從兼容DirectShow的卡捕獲到AVI文件中。 AVI文件很可能會一次寫入數個小時。有沒有辦法在文件仍在寫入的時候從文件中播放視頻?如果是這樣,我可以在文件中定義一個起點和終點,它將構成我的剪輯?一旦我播放了剪輯,我將不再使用它,所以我不需要將它保存爲新的AVI文件。保存單個幀捕獲是完成這個更好的方法嗎?從一個打開的AVI文件中讀取

回答

1

有兩個問題。一種是索引表只在圖形停止時寫入文件(這對於AVI和MP4來說是正確的)。另一個是文件閱讀器使用FILE_SHARE_READ打開文件。

如果將文件讀取器替換爲與要打開的文件兼容的文件讀取器,則需要按順序訪問文件中的塊,而不使用索引。這對於AVI是可能的,但不推薦,並且需要更換多路分解器。

替代選項:你可以捕捉文件的部分,使用像GMFBridge的東西切換到一個新的輸出文件,而不會停止圖形。然後你可以訪問以前的輸出文件,但不是當前的輸出文件。或者你可以使用非索引格式,如mpeg-2 PS。

G

+0

如果我將單個幀作爲.BMP圖像捕捉到文件並根據時間碼創建索引,該怎麼辦?我的目標是一次捕獲三臺攝像機,並且我需要它們在一幀或兩幀內同步。做我所提議的更多的是將一個未壓縮的視頻捕獲到一個AVI文件中的CPU。 –