opencv读取rtsp流

环境: VS2015 + opencv3.4.2

在opencv3.2.0+vs2013的环境下,是可以使用opencv读取rtsp流的.
最近因为项目需要需要用到opencv3.4.2

使用如下代码读取rtsp流的时候始终失败:

cv::VideoCapture vcap;
const std::string videoStreamAddress = "rtsp://admin:[email protected]:554/MPEG-4/ch1/main/av_stream";

if (!vcap.open(videoStreamAddress)) 
{
    std::cout << "Error opening video stream or file" << std::endl;
    return -1;
}

尝试过更换局域网内其他的rtsp流也是失败,
尝试更换如下公网rtsp流,仍然失败.
rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov

排除掉了是rtsp流的问题.


最终发现问题是:要在运行目录下加入以下文件:
opencv_ffmpeg342_64.dll
根据使用的opencv的版本不同,dll的名称会不同,
例如使用的是opencv3.2.0的话,那么dll的名称则是
opencv_ffmpeg320_64.dll


注意rtsp流中的正斜杠(左斜杠)是不需要转义的.

你可能感兴趣的:(随笔)