我正在尝试使用C ++中使用CUDA 9.1构建的OpenCV 3.4播放rtsp流。我在构建OpenCV时启用了FFMPEG标志,但是却遇到OpenCV错误,例如:
OpenCV Error: Unsupported format or combination of formats (Unsupported video source) in cv::cudacodec::detail::FFmpegVideoSource::FFmpegVideoSource, file C:\opencv-3.4.0\modules\cudacodec\src\ffmpeg_video_source.cpp, line 110
代码如下:
const cv::String fname = "rtsp://admin:admin@192.168.2.46/media/video1";
cv::namedWindow("GPU", cv::WINDOW_NORMAL);
cv::cuda::GpuMat d_frame;
cv::Ptr<cv::cudacodec::VideoReader> d_reader = cv::cudacodec::createVideoReader(fname);
for (;;)
{
if (!d_reader->nextFrame(d_frame))
break;
cv::Mat frame;
d_frame.download(frame);
cv::imshow("GPU", frame);
if (cv::waitKey(3) > 0)
break;
}
我可以使用CPU用相同的源播放视频,但是通过cudacodec
接口createVideoReader
函数会收到此错误。
任何人都可以帮忙。谢谢大家。