2016-04-24 4 views
0

Je souhaite utiliser le protocole RTSP pour me connecter à une caméra IP. J'utilise Visual C++ à cet effet. J'ai cherché et trouvé la bibliothèque de cURL et ai téléchargé rtsp.c du site libcurl.
J'ai utilisé CMake pour convertir les codes de cURL en fichier sln approprié pour Visual Studio puis j'ai créé une solution et faire d'autres étapes pour exécuter rtsp.c par exemple. Maintenant, je peux me connecter à ma caméra IP avec rtsp.c et ne reçoit aucune erreur d'exécution mais je reçois "ICMP Destination Unreachable (Port Unreachable)" sur WireShark et aucun flux ne reçoit.
Sur l'autre côté, je peux me connecter à ma caméra IP avec VLC Player. J'ai changé les numéros de port sur rtsp.c mais le problème n'est pas résolu. Je lis this mais je ne sais pas où est le problème? et comment puis-je le résoudre?Pourquoi la commande de lecture RTSP reçoit-elle un paquet d'altération de périphérique sur un port RTP?

ÉDITÉE:
J'utilisé this RTSP code et this RTP code et maintenant je reçois un seul RTP paquet qui contient ce message:

<?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> 

ÉDITÉE-2:
Je cherchai et maintenant je sais que le message ci-dessus est un message de détection de mouvement qui montre un événement de détection de mouvement sur l'appareil photo, mais je ne sais pas Khow Pourquoi RTSP Pla La commande y reçoit-elle le paquet d'altération de périphérique sur le port RTP?

Répondre

0

Dans une ressource RTSP, plusieurs flux de média peuvent être agrégés dans la même URL. Souvent, les caméras ONVIF ont trois flux multimédia: un pour la vidéo, un pour l'audio et un pour les métadonnées, pour diffuser des alertes au client. Les flux de média sont décrits en utilisant Session Description Protocol, qui est utilisé par la commande DESCRIBE de RTSP.

Vous devriez vérifier comment la ressource RTSP est organisée, probablement que vous recevez les paquets pour le dernier média de la session. Pour inspecter le flux RTSP, vous pouvez utiliser openRTSP à partir du projet Live555.