2011-12-01 116 views
1

我只是簡單的過濾器圖whick從RTSP源[一般H264和MP4]採用媒體流和使用MP4複用器將文件保存它們...保存媒體流過濾

RtspSourceFilter ---> MP4 Muxer ---> File Writer. 

它的工作原理確定。但我有限制[現在需要新的]。我有基於兩個標準寫入文件:它們的大小和持續時間......假設用戶可以定義規則,如:爲了這個

if duration > 1 hour or size > 1 gb then write stream to new file 

在我的圖表,

我要停止我的基於圖形的條件和創建和啓動新 一個新的文件名...

這是不好的,因爲在以往的文件,我必須重新連接我的來源和可能失去了一些數據...

處理它的最好方法是什麼?

我的解決方案:但不是滿意呢]

我有RtspSourceFilter和MP4Muxer由於開源的源代碼,致使忘記的FileWriter ... MP4流合併成了複用器作家...所以在內部停止,並在必要的時候寫,然後cretae新文件...做一些緩衝不looosing數據...

RTSP Source Filter ---> New MP4 Writer [ a writer with mp4 muxer in it] 

但是,這帶來不必要的複雜性......現在,我通過新建成了MUX操作的維護者MP4 Writer ...因爲我沒有時間真正理解Mux做什麼,我必須修改 - 破解它表現我想要什麼......打個比方:我有車,我會做一個直升機從它......這將是非常醜陋和不信任的直升機......可能是我新的MP4篩選[代碼]會如此.. [大泥球]

回答

1

這聽起來像GMFBridge可能對你有用的。它允許您創建一個源圖和多個匯圖。然後,當滿足約束條件時,將源圖形橋接到新的匯點圖。

如果你把緩衝區(非丟棄)模式下橋,你不應該丟失任何樣品。

然而,你將不得不進行調查,如果這個解決方案適用於你。查看示例應用程序以獲得快速概述。

+0

我用它......沒有行爲well..Problem與視頻數據......我不得不停止在GMFBridge圖的第一部分,這意味着我必須重新連接我的源... – Novalis

+0

順便感謝.. 。 – Novalis