【发布时间】:2014-03-22 18:54:02
【问题描述】:
问题来了
我有一个使用 RTSP 协议流式传输 h264 视频的 IP 摄像机, 我要做的就是读取此流并将其传递给 Open CV 进行解码, 使用这个功能
cv2.imdecode()
怎么做?
更新
我解决了这个问题
这里是解决方案:Convert YUVj420p pixel format to RGB888 using gstreamer
【问题讨论】:
-
imdecode 用于图像。你需要使用
cv2.VideoCapture -
我会逐帧抓取并解码
-
VideoCapture 会为您做到这一点。您不能使用 imdecode 来做到这一点,这仅适用于图像(jpeg、png、tiff 等)。以我个人的经验,videocapture 在某些 rtsp 流中也不起作用,在这种情况下,您需要使用额外的层来解码帧并将其传递给 opencv。比如用vlc做视频解码,比如
vlc.exe -I dummy --dummy-quiet rtsp://10.10.3.133/h264 :sout=#transcode{vcodec=MJPG,vb=5000,scale=1,acodec=none}:standard{access=http,mux=raw,dst=127.0.0.1:9080/frame.mjpg} vlc://quit -
我现在正在使用 gstreamer,我已经能够读取和解码 ip camera 流你知道如何将流传递给 opencv
-
@ZawLin 感谢您的命令,虽然我必须将
mux=raw更改为mux=ts才能使其正常工作,但raw似乎不是一个有效的选项。
标签: python opencv gstreamer rtsp