2011-04-12 53 views
1

我想使用c#在模擬電視流上放置新聞選取框,我可以使用DirectShow流模擬電視,但我無法弄清楚如何將它與旋轉文字混合,我應該創建一個過濾器?或者我必須使用除DirectShow之外的其他技術?模擬電視新聞選擇框 - C#

回答

3

DirectShow是這樣做的最簡單的方法,但它確實有一點學習曲線,特別是來自C#。維基百科頁面爲您提供了DirectShow的基本概述。

DirectShow工具在最新的Windows SDK中可用。使用C++進行DirectShow編程更直接,但可以通過COM interop或DirectShow.net(我還沒有嘗試過)很容易地使用DirectShow。如果使用COM互操作下面的文章是有幫助的:

http://blogs.msdn.com/b/ericgu/archive/2004/09/20/232027.aspx

您可以使用VMR覆蓋過濾器,如果動畫性能是不夠順暢。請參閱下面的文章

http://www.codeproject.com/KB/audio-video/VideoPicture.aspx
http://www.codeproject.com/KB/audio-video/Ticker.aspx
http://msdn.microsoft.com/en-us/library/dd407344(v=vs.85).aspx

或者你需要編寫自己的過濾器呈現每幀調整它的位置在同步與視頻幀的時間戳上的文字。如果你只需要做到這一點你自己的應用程序內,則下列方法可能是最簡單的

http://www.sichbo.ca/Free_Code/100_C_Sharp_directshow_filters

微軟官方推薦的DirectShow過濾器應該用C + +中創建出於性能的考慮,但覆蓋滾動文本應該在C#OK因爲如果你仔細編程,瓶頸將是用於覆蓋文本的API。

0

實際上,您不必編寫過濾器在視頻上繪製一些文字。只需製作一張圖表,其中未壓縮的視頻會通過採樣卡(標準DirectShow濾鏡之一),爲採樣卡設置回調,並且可以修改回調中的視頻數據。使用DirectShow.NET在C#中執行操作非常簡單,但由於編組並非最佳。您可以首先在GraphEditPlus中構建這樣一個圖形,然後它將向您展示如何構建此圖形並使用採樣器的C#或C++源代碼。