2011-06-29 36 views
3

幀我用GMFBridge到流源視頻文件錄製到dicrete files.Like的DSBoy GMFBridge with GMF GDCL MPEG 4 Mux Filter如何避免寫不使用我GMFBridge

FirstPart ==> SourceFilter--> BridgeSinkFilter 
SecondPart ==> BridgeSourceFilter ---> GDCL MPEG 4 Mux Filter---> FileWriter 

我紀錄10分鐘流間隔,並打開新文件爲下一個記錄。 它可以工作,但是當第一條記錄正常時,​​其他記錄在開頭處以綠色壞幀打開(視頻的其餘部分正常)。

我想當我停止使用網橋的文件編寫器,並用新文件重新創建它時,它會將非I幀寫入文件。如果是這樣我怎麼能避免在這個directshow過濾器結構的記錄開始寫非I幀?

祝你好運

回答

4

你的解釋聽起來是正確的。 GMFBridge最初是爲未壓縮的視頻而設計的,因此您需要添加一些代碼才能使其工作。

最簡單的解決方案是在多路複用器之前添加代碼,直到看到GOP開始爲止,但是這並不理想,因爲您將丟失數據。

要做到這一點,您需要在看到GOP的開始時觸發橋接開關。一種方法是編寫一個GOP檢測器濾波器,該濾波器位於橋接器前面的上游圖形中。

當您準備切換(10分鐘後)時,該應用程序啓用GOP檢測器。當GOP檢測器看到GOP開始時,它會阻止傳送,並嚮應用程序發出信號。當應用程序看到信號時,它會將橋接器切換到新的多路複用器圖形,然後在GOP檢測器上重新啓用傳輸。

G

+0

謝謝。我看到了。 – Novalis