ラズベリーカメラから作成されたrtspストリームをPythonまたは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)
ストリームは、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
ストリームはvlcプレーヤーから次のように正常に開かれます:rtsp://192.168.55.151 :8554 / stream.sdp
しかし、Pythonコードから、私は次のようになります: method SETUP failed: 461 Client error
(ffmpegエラー)
コマンドラインffmpegを実行した場合: ffmpeg -rtsp_transport tcp -i rtsp://192.168.55.151:8554/stream.sdp
同じ正確なエラーが発生します:メソッドのセットアップに失敗しました:461クライアントエラーとProtocol not supported
コマンドラインffmpegを実行した場合: ffmpeg -rtsp_transport udp -i rtsp://192.168.55.151:8554/stream.sdp
ストリームは正常にデコードされます。
このトランスポートプロトコルはバグですか、それとも何か問題がありますか? OpenCVコードでトランスポートプロトコルを指定できますか?
ラズベリーカメラ用のUV4Lドライバーをインストールすることをお勧めします。これにより、opencvと互換性があり、正常に機能するビデオストリームのURLを取得できます。 私はすでにテストしました。
ラズベリーカメラ用のUV4Lドライバーをインストールすることをお勧めします。これにより、opencvと互換性があり、正常に機能するビデオストリームのURLを取得できます。 私はすでにテストしました。
このためのチュートリアルはありますか?
最も参考になるコメント
このためのチュートリアルはありますか?