La réception de paquets RTP après RTSP d'installation
Je suis en train de flux de paquets RTP à partir d'une caméra IP à l'aide de Python.
Je suis en mesure d'envoyer le décrire, le programme d'installation & jouer à des commandes en utilisant le protocole RTSP, cependant, je suis incapable de démarrer la diffusion de la réelle fichier vidéo en utilisant le protocole RTP.
Voici le code:
import socket
def printrec(recst):
recs=recst.split('\r\n')
for rec in recs:
print rec
dest="DESCRIBE rtsp://admin:[email protected] RTSP/1.0\r\nCSeq: 2\r\nUser-Agent: python\r\nAccept: application/sdp\r\n\r\n"
setu="SETUP rtsp://admin:[email protected]/trackID=1 RTSP/1.0\r\nCSeq: 3\r\nUser-Agent: python\r\nTransport: RTP/AVP;unicast;client_port=60784-60785\r\n\r\n"
play="PLAY rtsp://admin:[email protected]/RTSP/1.0\r\nCSeq: 5\r\nUser-Agent: python\r\nSession: SESID\r\nRange: npt=0.000-\r\n\r\n"
# .. here SESID will be substituted with the session id that SETUP returns us ..
ip="192.168.1.74"
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip,554))
s.send(dest)
recst=s.recv(4096)
printrec(recst)
# etc. then the same for the strins "setu" and "play"
....
Installation répond moi:
RTSP/1.0 200 OK
CSeq: 3
Session: 1117448817;timeout=60
Transport: RTP/AVP;unicast;client_port=60784-60785;server_port=8214-8215;ssrc=40d35c30;mode="play"
Date: Mon, Jan 19 2015 11:10:08 GMT
Nous avons donc le client ports 60784 et 60785 et les ports de serveur et 8215 8214.
Prochaine, jouer à des réponses moi:
RTSP/1.0 200 OK
CSeq: 5
Session: 1117448817
RTP-Info: url=rtsp://admin:12345@192.168.1.74/trackID=1;seq=3539; rtptime=16026930
Date: Mon, Jan 19 2015 11:10:08 GMT
Prochaine, que suis-je censé faire pour commencer à recevoir des paquets RTP?
Ouvrir un socket UDP comme suivre .. ?
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
sock.bind((ip, serverport))
sock.recv(4096)
Mais je ne reçois rien .. (elle cale)
Excusez-moi de ma mauvaise connaissance de sockets..!
OriginalL'auteur El Sampsa | 2015-01-19
Vous devez vous connecter pour publier un commentaire.
Donc,
Après de grosses sessions de googler et wireshark-analyse, j'ai trouvé les bonnes solutions.
Je suis annonce la résultante de démo de code ici .. j'ai pensé qu'il pourrait être utile pour la communauté.
Si vous avez toujours voulu lire ip-cams avec python et le vidage du flux H264 dans un comestible de fichier, c'est la chose que vous cherchez.
Profitez-en!
OriginalL'auteur El Sampsa
C'est ce que j'utilise maintenant:
Voir plus à https://elsampsa.github.io/valkka-examples/
OriginalL'auteur El Sampsa