2009-08-26 70 views
2

在過去,我使用了Managed Direct X和DirectShow.Net來將視頻播放到簡單網格上的紋理。然後,我使用相同的技術將多個視頻源合併爲一個紋理,使用通過紋理公開的各種功能將這些流混合在一起。這是兩年前的一個非常有趣的實驗,當Managed Dirext X仍在開發和支持(不再是)時,它非常適合於此目的,並且與DirectShow.Net類似 - 它似乎沒有更新自2007年7月以來。如何在C#中混合兩個視頻流?

我正在尋求再次冒險進入此空間,並希望知道如何在C#中完成此操作,而無需使用折舊或報廢API以及如何最好地實現它。

回答

3

這在WPF中很容易做到。

使用兩個MediaElement控件,一個在另一個之上,並使上面的一個50%透明。

不過,我不認爲這是可以將其保存到一個新的視頻

+0

我認爲這是一個非常有趣的想法,對於這個問題看起來相當簡單的實現。我會對此進行一次嘗試,看看我可以用視頻刷做些什麼。 – 2009-08-28 10:41:02

2

可以使用SlimDX開源庫,與作爲MDX和DirectShow幾乎相同,並且具有在Vista的支持也是在Win7。 0

+0

我之前沒有聽說過這個文庫,感謝你指出了它。如果我結束了沉重的舉升道路 - 我會檢查出來。 – 2009-08-28 10:41:42

0

我確實做到了2003年左右我不得不使用不安全的代碼,換句話說,指針複製出的各圖像幀轉換的兩個視頻流轉換爲RGB格式並平均每個像素值,然後轉換回原始格式。如果您不使用不安全的代碼,性能影響非常巨大。我的理解是,在處理視頻流時,DirectShow通過自動對齊許多編解碼器來做到這一點。與此同時,這些圖像流必須是線程安全的並且正確同步,這意味着很多開銷。但有人誰更清楚應該跳進去。

相關問題