2010-01-10 27 views
0

我正在使用SampleGrabber過濾器來獲取AVI文件的幀,並在使用文件寫入器過濾器將它們寫入另一個(新)AVI文件之前進行更改。文件寫入器過濾器創建一個更大的AVI文件,然後原始

我面臨的問題是新的AVI文件大小大於原始文件。我刪除了SampleGrabber篩選器,認爲它可能是導致問題的代碼,但新文件的大小仍然大於原始文件。我用graphedit測試了它。 使用的過濾器是文件讀取器 - > AVI分配器 - > AVI複用器 - >文件編寫器。

我真的想保留文件大小。是否有其他過濾器或屬性需要設置?目前我只在GraphBuilder中添加濾鏡並渲染文件。 我正在使用DirectShowLib.Net。

回答

0

我只是做了使用

File source (async) -> AVI splitter -> AVI mux -> file writer 

在GraphEdit中和輸出文件似乎總是出來一樣大小的輸入對我來說是快速測試。我能想到的唯一的事情是你的輸入文件可能被壓縮。用像gspot這樣的應用程序來檢查輸入文件可能是值得的。據我瞭解,DirectShow有時會插入適當的過濾器以建立連接,所以如果您想將文件源連接到AVI分離器,它可能會在需要時插入解壓縮器。希望這是一些使用

+0

不,沒有解壓縮器。生成的文件大小從幾個KB到MB不等。我認爲使用DirectShow過濾器保存文件時,可能會在其中添加一些額外的信息。因爲當我再次通過新生成的File-B通過同一圖表時,我得到一個新的File-C,它與File-B一樣保存了大小。 – ata 2010-02-05 11:59:37

相關問題