我想用 python 或 C++ 逐帧处理从树莓相机创建的 rtsp 流。
.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
我得到了同样的错误:方法 SETUP 失败:461 客户端错误以及Protocol not supported
如果我运行命令行 ffmpeg: ffmpeg -rtsp_transport udp -i rtsp://192.168.55.151:8554/stream.sdp
流解码成功。
这个传输协议是一个错误,还是我做错了什么? 我可以在 OpenCV 代码中指定传输协议吗?
您可能想要为树莓派相机安装 UV4L 驱动程序,它可以让您拥有一个视频流的 url,该 url 与 iwth opencv 兼容并且工作正常。 我已经测试过了。
您可能想要为树莓派相机安装 UV4L 驱动程序,它可以让您拥有一个视频流的 url,该 url 与 iwth opencv 兼容并且工作正常。 我已经测试过了。
你有这方面的教程吗?
最有用的评论
你有这方面的教程吗?