Quiero procesar una secuencia rtsp creada a partir de una cámara de frambuesa fotograma a fotograma con python o 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)
La secuencia se crea desde la máquina raspberry usando 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
La transmisión se abre con éxito desde el reproductor vlc con: rtsp: //192.168.55.151 : 8554 / stream.sdp
Sin embargo, del código de Python, obtengo: method SETUP failed: 461 Client error
(un error de ffmpeg)
Si ejecuto la línea de comando ffmpeg: ffmpeg -rtsp_transport tcp -i rtsp://192.168.55.151:8554/stream.sdp
obtengo exactamente el mismo error: el método SETUP falló: 461 Error del cliente, así como Protocol not supported
Si ejecuto la línea de comando ffmpeg: ffmpeg -rtsp_transport udp -i rtsp://192.168.55.151:8554/stream.sdp
la secuencia se decodifica con éxito.
¿Es este protocolo de transporte un error o estoy haciendo algo mal? ¿Puedo especificar el protocolo de transporte en el código OpenCV?
Para evitar fallas en la red / desconexión de la transmisión de video, etc., OpenCV fuerza el protocolo de transporte
Por cierto, las preguntas de uso deben dirigirse al foro de preguntas y respuestas de OpenCV de usuarios: http://answers.opencv.org
Es posible que desee instalar el controlador UV4L para la cámara raspberry, le permitirá tener una URL con la transmisión de video que es compatible con opencv y funciona bien. ya lo probé.
Es posible que desee instalar el controlador UV4L para la cámara raspberry, le permitirá tener una URL con la transmisión de video que es compatible con opencv y funciona bien. ya lo probé.
¿tienes un tutorial para esto?
Comentario más útil
¿tienes un tutorial para esto?