Je souhaite traiter un flux rtsp créé à partir d'une caméra framboise image par image avec python ou C++.
.py
import cv2
rtsp_url = "rtsp://192.168.55.151:8554/stream.sdp"
video = cv2.VideoCapture(rtsp_url)
while(1):
ret, frame = video.read()
cv2.imshow('VIDEO', frame)
cv2.waitKey(1)
Le flux est créé à partir de la machine framboise en utilisant vlc : raspivid -o - -t 0 -hf -w 640 -h 480 -fps 30 | cvlc stream:///dev/stdin --sout "#rtp{sdp=rtsp://192.168.55.151:8554/stream.sdp}" :demux=h264
Le flux est ouvert avec succès à partir du lecteur vlc avec : rtsp://192.168.55.151 :8554/stream.sdp
Du code python cependant, j'obtiens : method SETUP failed: 461 Client error
(une erreur ffmpeg)
Si je lance la ligne de commande ffmpeg : ffmpeg -rtsp_transport tcp -i rtsp://192.168.55.151:8554/stream.sdp
j'obtiens exactement la même erreur : la méthode SETUP a échoué : 461 Erreur client ainsi que Protocol not supported
Si je lance la ligne de commande ffmpeg : ffmpeg -rtsp_transport udp -i rtsp://192.168.55.151:8554/stream.sdp
le flux décode avec succès.
Ce protocole de transport est-il un bogue ou est-ce que je fais quelque chose de mal ? Puis-je spécifier le protocole de transport dans le code OpenCV ?
Pour éviter les problèmes de réseau / la déconnexion du flux vidéo / etc, OpenCV force le protocole de transport
BTW, les questions d'utilisation doivent être adressées au forum Users OpenCV Q/A : http://answers.opencv.org
Vous voudrez peut-être installer le pilote UV4L pour la caméra raspberry, il vous permettra d'avoir une URL avec le flux vidéo qui est compatible avec opencv et fonctionne très bien. j'ai déjà testé.
Vous voudrez peut-être installer le pilote UV4L pour la caméra raspberry, il vous permettra d'avoir une URL avec le flux vidéo qui est compatible avec opencv et fonctionne très bien. j'ai déjà testé.
as-tu un tuto pour ça ?
Commentaire le plus utile
as-tu un tuto pour ça ?