2017-04-14 99 views
1

我試圖將Alax.Info IP camera source filter連接到捕獲和預覽渲染器。c#directshow.net tee過濾器渲染失敗

我將源過濾器添加到圖中,並渲染該引腳。這產生了與VMR的直接連接,並且工作。 GraphEdit顯示相機濾波器的輸出引腳類型爲RGB32

當我相機源濾波器的輸出連接到一個三通(無論是Smart Tee濾波器或Infinite Tee過濾器),從發球呈現輸出使三通和VMR之間插入一個AVI Decompressor濾波器。在MS GraphEdit應用程序中,我得到了一幀視頻,僅此而已。在GraphEditPlus,我只是得到一個黑色的渲染窗口。

我已經嘗試將Null Renderer連接到Smart Tee的預覽引腳,並且連接到Infinite Tee的第二個引腳,但這沒有什麼區別。

當攝像機濾波器連接到三通時,GraphEdit報告其輸出引腳類型已更改爲YUY2, 16 bits。我強烈懷疑這是問題的根源。

是否有日誌可以查看發生了什麼?

有沒有辦法在這些「工具」應用程序中控制攝像機的輸出引腳類型,從而選擇下游濾波器?

我應該使用不同類型的三通濾波器,預計RGB32視頻?

回答

2

可能的問題是嘗試連接到視頻渲染器需要重新協商適合視頻渲染器的媒體類型。由於三通濾波器無法安排這種媒體類型,因此它會嘗試重新協商上游連接和/或提供一個轉換濾波器,最終會導致建立的流水線,看起來似乎是這樣,但是一旦真正的視頻開始播放,就會有一個在某些格式或分辨率不匹配和實際視頻幀被丟棄的道路上。

這個問題可能是特定於這個IP源過濾器,因爲從設計上來說,它僅限於特定的解碼器,它也在初始化時不知道實際的M-JPEG源期望在流式傳輸時解析格式。

當以交互方式構建濾鏡圖形時,請務必查看媒體類型並檢查分辨率和像素格式是否合理。當以編程方式構建圖形時,還要確保按照知道連接媒體類型的順序構建管道(在GraphStudioNext中可以按Ctrl + Shift + M,這樣每個連接都會提示您使用特定的媒體類型),並且還希望添加適配器過濾器顯式地在必要時(tee輸出將不會連接到視頻渲染器,因此插入Color Space Converter或類似軟件而不期望Intelligent Connect會爲您執行此操作)。

當引腳連接屬性相匹配,視頻經過,例如:

enter image description here

enter image description here

+0

用'色彩空間Converter'更換'AVI Decompressor'的確讓圖表運行。我不明白的是爲什麼這兩個輸入和'CSC'的輸出爲'RGB32'而自動插入'AVI Decompressor'是'YUY2的輸入和輸出,當我刪除了'CSC 16 bits' '並選擇'Smart Tee'上的* Render Pin *,其他圖形相同。 – FKEinternet

+0

我使用的解碼器在RGB32本地輸出,但我可以轉換爲YUY2和其他像素格式爲好。 AVI Decompressor可能不喜歡RGB32,無論出於何種原因,因此另一種嘗試使用不同的格式。 –