6

這與我所問的最後幾個問題是相切的。「假」DirectShow視頻捕獲設備

我需要從IP攝像頭(SNC-RZ25N)到Flash Media Server的視頻。我寧願不必使用Windows,但如果它使事情變得更容易,我會。 (Flash Media Live Encoder是一個僅限於Windows的程序。)

我已經考慮了許多不同的從A點到B點的路線,但似乎最簡單的方法就是使用Flash Media Live Encoder發佈到Flash Media服務器。然後,我必須彌合的唯一差距就是獲得Flash Media Live Encoder可讀的視頻源。

當然,我的來源是在網絡上,FMLE尋找「Microsoft DirectShow兼容視頻捕獲設備」。我發現了一個非免費的SDK(http://www.e2esoft.cn/vcam/vcamsdk.asp),應該允許我欺騙這樣的設備,並希望將相機流發送到FMS。

有誰知道我應該使用不同的程序或SDK?我是否讓事情比他們需要的更復雜?

回答

7

將DirectShow源代碼過濾器轉換爲捕獲設備並不難。您需要在正確的類別中註冊過濾器,並實現IKsProperty以在輸出引腳上報告正確的類別。

http://tmhare.mvps.org/downloads.htm

1

使用「維韋克的DirectShow捕獲過濾器」看看維韋克的捕捉源過濾器的例子。這是你基本需要的。當然這是一個非常基本的示例代碼。爲了讓您的代碼與Flash Player一起使用,您需要實現所有必要的方法,如SetFormat/SetMediaType,並且由於DirectShow是非常不友好的界面,您將花費一些時間。

2

羅馬的「IP視頻源」 DirectShow的繼電器可以做的工作:http://alax.info/blog/1223

此外,如果你想寫你自己的,你可以基地起飛https://github.com/rdp/screen-capture-recorder-to-video-windows-free它克服了一個錯誤維韋克的有Flash播放器:http://social.msdn.microsoft.com/Forums/en/windowsdirectshowdevelopment/thread/e02d7ac9-5dfe-4f9d-8ce5-4bb73badb6ed

所以基本上你需要實現IAMStreamConfig和IKsProperty設置在引腳上,通過IKsProperty向下查詢引腳,並指定PIN_CATEGORY_CAPTURE我猜,也許有些你不需要...