Ich möchte einen Rtsp-Stream, der aus einer Himbeerkamera erstellt wurde, Frame für Frame mit Python oder C++ verarbeiten.
.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)
Der Stream wird von der Himbeermaschine mit vlc erstellt: 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
Der Stream wird erfolgreich vom vlc-Player geöffnet mit: rtsp://192.168.55.151 :8554/stream.sdp
Aus dem Python-Code erhalte ich jedoch: method SETUP failed: 461 Client error
(ein ffmpeg-Fehler)
Wenn ich die Befehlszeile ffmpeg ausführe: ffmpeg -rtsp_transport tcp -i rtsp://192.168.55.151:8554/stream.sdp
Ich erhalte genau den gleichen Fehler: method SETUP failed: 461 Client error sowie Protocol not supported
Wenn ich die Befehlszeile ffmpeg ausführe: ffmpeg -rtsp_transport udp -i rtsp://192.168.55.151:8554/stream.sdp
der Stream wird erfolgreich dekodiert.
Ist dieses Transportprotokoll ein Fehler oder mache ich etwas falsch? Kann ich das Transportprotokoll im OpenCV-Code angeben?
Um Netzwerkstörungen / Videostream-Trennungen / etc. zu verhindern, erzwingt OpenCV das TCP- Transportprotokoll. Sie sollten Ihren rstp-Server für TCP-Unterstützung neu konfigurieren oder ein Nicht-FFmpeg OpenCV-Backend (Gstreamer?) verwenden.
Übrigens, Fragen zur Verwendung sollten an das OpenCV-Q/A-Forum für Benutzer gehen: http://answers.opencv.org
Vielleicht möchten Sie den UV4L-Treiber für die Himbeerkamera installieren, damit Sie eine URL mit dem Videostream haben, die mit opencv kompatibel ist und einwandfrei funktioniert. habe ich schon getestet.
Vielleicht möchten Sie den UV4L-Treiber für die Himbeerkamera installieren, damit Sie eine URL mit dem Videostream haben, die mit opencv kompatibel ist und einwandfrei funktioniert. habe ich schon getestet.
hast du dafür eine anleitung?
Hilfreichster Kommentar
hast du dafür eine anleitung?