Opencv: 树莓派rtsp服务器,ffmpeg解码

创建于 2017-03-29  ·  3评论  ·  资料来源: opencv/opencv

系统信息(版本)
  • OpenCV => 3.1
  • Opencv-python => 3.1.0-dev
  • 操作系统/平台 => Ubuntu 16.04 LTS
详细说明

我想用 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 代码中指定传输协议吗?

videoio question (invalid tracker)

最有用的评论

您可能想要为树莓派相机安装 UV4L 驱动程序,它可以让您拥有一个视频流的 url,该 url 与 iwth opencv 兼容并且工作正常。 我已经测试过了。

你有这方面的教程吗?

所有3条评论

为了防止网络故障/视频流断开等,OpenCV 强制TCP传输协议。 您应该重新配置 rstp 服务器以支持 TCP 或使用非 FFmpeg OpenCV 后端(Gstreamer?)。

顺便说一句,使用问题应该去用户 OpenCV Q/A 论坛: http :

您可能想要为树莓派相机安装 UV4L 驱动程序,它可以让您拥有一个视频流的 url,该 url 与 iwth opencv 兼容并且工作正常。 我已经测试过了。

您可能想要为树莓派相机安装 UV4L 驱动程序,它可以让您拥有一个视频流的 url,该 url 与 iwth opencv 兼容并且工作正常。 我已经测试过了。

你有这方面的教程吗?

此页面是否有帮助?
0 / 5 - 0 等级