[英]Open Source URL with login and password
我正在准備一個Media Foundation會話,該會話將從網絡安全攝像機讀取視頻流,然后將其顯示在屏幕上並將其編碼到磁盤。 我已經使用網絡攝像頭進行所有操作,現在我正嘗試使用IMFSourceResolver
的CreateObjectFromURL()
連接到網絡攝像頭。 問題是相機需要登錄名和密碼,並將URL格式設置為:
rtsp://login:password@IPaddr
仍然會導致“權限被拒絕”響應。
MSDN上有幾頁使用IMFNetCredentialManager
提供用戶名和密碼,但是它不起作用,我仍然會拒絕權限。 使用WireShark,我可以看到攝像機對第一個MF連接嘗試做出了“未經授權”的RTSP響應,然后MF放棄了,並且不檢查憑據管理器,以失敗告終。
我沒有找到其他使用IMFNetCredentialManager
示例。 從IP攝像機讀取需要密碼的視頻流似乎是一項常見的任務,但我找不到在實踐中完成該操作的證據。 是否可以使用Media Foundation或我錯過了另一種方法?
完成研究后,這里是我得出的結論。
Windows Media Foundation為USB網絡攝像頭和基本流提供了良好(但不是徹底的)支持。 它只是一個基礎。 諸如與網絡IP攝像機進行通信之類的任何更高級的操作,程序員都需要大量額外的工作來完全實現其選擇的協議,例如RTSP,HTTP或ONVIF。
我期望我可以為網絡攝像頭設置媒體會話,然后通過將源解析器與URL一起使用RTSP將源切換到網絡攝像機。 如MSDN中所示,使用網絡憑據管理器進行的授權不是Media Foundation提供的媒體源的一部分,這就是為什么未調用BeginGetCredentials()的原因。 這只是您需要使用自己的方案實現的示例。
因此,我的解決方案是放棄使用Media Foundation,而使用LEADTOOLS等提供的第三方庫。這需要花錢,但是要創建所需的東西,我將花費更多的開發時間。
我希望這個答案可以幫助我在追逐這只兔子到深淵的整個過程中節省時間!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.