我想使用RTSP協議連接到IP攝像機。我爲此使用Visual C++。我搜索並找到cURL庫並從libcurl網站下載rtsp.c。
我用CMake將cURL的代碼轉換爲適用於Visual Studio的sln文件,然後我創建了一個解決方案並執行其他步驟來運行rtsp.c示例。 現在我可以連接到我的網絡攝像機rtsp.c並收到沒有運行時錯誤,但我收到「ICMP Destination Unreachable (Port Unreachable)」WireShark並沒有流接收。
另一方面,我可以連接到我的IP攝像機與VLC播放器。我更改了端口號rtsp.c,但問題沒有解決。
我看了this但我不知道問題在哪裏?我該如何解決它?爲什麼RTSP播放命令在RTP端口接收設備篡改數據包?
編輯:
我用this RTSP code和this RTP code,現在我只接收包含此消息一個RTP數據包:
<?xml version="1.0" encoding="UTF-8"?>
<tt:MetaDataStream xmnls:tt="http://www.onvif.org/ver10/schema" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
<tt:Event>
<wsnt:NotificationMessage>
<wsnt:Topic Dialect="http://www.onvif.org/ver10/tec/topicExpression/ConcreteSet">
tns1:Device/Tampering
</wsnt:Topic>
<wsnt:Message>
<tt:Message UtcTime="2016-05-03T00:14:33.775">
<tt:Source>
<tt:SimpleItem Name="VideoSourceConfigurationToken" Value="VideoSource0">
</tt:SimpleItem>
</tt:Source>
<tt:Data>
<tt:SimpleItem Name="Level" Value="Trigger">
</tt:SimpleItem>
<tt:SimpleItem Name="Percentage" Value="32">
</tt:SimpleItem>
</tt:Data>
</tt:Message>
</wsnt:Message>
</wsnt:NotificationMessage>
</tt:Event>
EDITED-2:
我搜索,現在我知道上面的消息是一個設備篡改消息,顯示相機上的運動檢測事件,但我不知道爲什麼RTSP Pla y命令在RTP端口接收設備篡改數據包?