onvifc源碼
㈠ C++流媒體開源庫Live555詳細介紹
Live555簡介
Live555是一個跨平台的C++開源項目,專注於提供流媒體解決方案。它基於RTP/RTCP、RTSP、SIP開放標准協議,實現了標准流媒體傳輸。Live555支持多種音視頻編碼格式,包括MPEG、H.265、H.264、H.263+、DV或JPEG視頻和多種音頻編碼。其設計靈活,易於擴展其他格式支持。
使用Live555可以開發客戶端拉取遠程音視頻流,如VLC播放器,也可開發流媒體伺服器。Live555廣泛應用於播放器流媒體播放功能實現,例如VLC、MPlayer,以及網路直播中的流媒體技術。
Live555源碼目錄說明
目錄結構如下:
1)BasicUsageEnvironment:實現基本控制台應用程序,用於簡單事件獲取和處理。適用於Unix或Windows控制台。
2)UsageEnvironment:定義抽象類UsageEnvironment和TaskScheler,用於調度延遲事件,處理非同步讀取事件和輸出錯誤/警告消息。包含HashTable類,提供通用散列表介面。
3)groupsock:封裝網路介面,用於收發數據包。支持多播和單播數據收發。
4)liveMedia:核心部分,包含針對不同流媒體類型和編碼的系列類,基類是Medium。
5)testProgs:實現BasicUsageEnvironment的簡單程序,演示如何使用庫開發應用程序。
6)proxyServer:基於Live555的流媒體代理伺服器,支持Onvif協議的攝像機接入,提高對外服務性能並保護內網攝像機安全。
7)WindowsAudioInputDevice:實現AudioInputDevice抽象類在Windows應用程序中讀取PCM音頻樣本。
Live555關鍵概念與流程介紹
1)Source和Sink:Source生成數據,如RTP讀取;Sink消費數據,如文件存儲。MediaSource和MediaSink是所有Source和Sink的基類。
2)數據流:Source->Source(filters)->Sink,Source接收數據的也稱為filters,Mole是filters或Sink,Sink通過實現純虛函數continuePlaying()處理數據,通常從socket writable或incoming data獲取數據。
基於liveMedia的應用程序是事件驅動,循環處理Sink。通常使用SinkObject->startPlaying()啟動生成任務,Mole需要數據時調用剛好在它之前的Mole的getNextFrame()。
RTSP介紹
RTSP是實時流媒體協議,由Real network和Netscape提出,用於控制實時數據傳輸,如音頻和視頻文件。RTSP支持暫停、快進等控制,不傳輸數據,僅遠程式控制制流媒體伺服器。RTSP傳輸層支持tcp、udp,提供基於rtp的有效傳輸方法。
常用方法包括:OPTION、DESCRIBE、SETUP、PLAY和TEARDOWN。
RTSP連接建立流程
RTSPServer構建RTSP伺服器,監聽TCP的554埠,將連接處理函數和socket句柄傳給任務調度器,主循環等待網路連接,RTSP客戶端輸入連接伺服器,完成連接。
DESCRIBE請求處理
RTSP伺服器收到DESCRIBE請求,根據請求URL查找流媒體資源,返回響應消息。ServerMediaSession處理會話描述,包含音頻或視頻子會話描述。伺服器根據請求解析資源信息,組裝SDP信息返回。
SETUP和PLAY請求處理
RTSPClientSession處理客戶端會話,handleCmd_SETUP和handleCmd_PLAY分別處理SETUP和PLAY請求。解析傳輸頭,獲取流媒體發送參數,組裝響應消息。客戶端通過兩個SETUP請求建立音頻和視頻的RTP接收,PLAY請求啟動播放。
通過Live555的學習,可以搭建RTSP伺服器和客戶端播放器,理解其基本流程和原理。Live555功能強大,支持多種協議和多媒體流構建,為相關開發人員提供了深入學習的機會。
㈡ ONVIF 如何調用填充介面函數
可能是因為被牆的原因吧。
我從google
code上面下載下來的,傳到我的下載資源裡面ONVIF
IP
Camera
viewer/explore源碼,估計需要一會審核通過後就能看到下載了。
這個項目還有其他一些代碼,下載裡面的是其中ONVIF的android部分
㈢ 在onvif官網裡面怎麼沒有devicemgmt.wsdl
點擊device.wsdl會打開一個頁面
不要直接保存(直接保存會保存這個頁面的xml)
在這個打開的頁面任意位置單擊右鍵,選擇「查看網頁源代碼(我用的是360急速瀏覽器,其它瀏覽器應該也有類似的功能)」,會打開一個新的標簽頁,這個新頁面會按照wsdl原文呈現。
在這個wsdl原文頁面,右鍵,選擇「網頁另存為」,保存的時候,把文件名前面多餘的部分去掉,只留下devicemgmt.wsdl,保存即可。
===============================
讓CSDN上那些賺分的傻叉都去吃屎
===============================
CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑CSDN一生黑