小编Joã*_*ves的帖子

从IP摄像头读取h264流

目前,我正在尝试使用opencv从佳能VB-H710F相机中读取视频.

为此我尝试了两种不同的解决方案:

解决方案1:从rtsp地址读取流

 VideoCapture cam ("rtsp://root:camera@10.0.4.127/stream/profile1=u");

 while(true)
  cam >> frame;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我使用opencv直接从H264(profile1)编码的流中读取,但这会产生同样的问题,这里报告http://answers.opencv.org/question/34012/ip-camera-h264-error -while-decoding / 正如上一个问题中所建议的,我试图在opencv安装中禁用FFMPEG支持,这解决了h264解码错误但引发了其他问题.当使用opencv访问流时,由gstreame支持,总是会有很大的延迟.有了这个解决方案,我实现了15 FPS,但我有5秒的延迟,考虑到我需要一个实时应用,这是不可接受的.

解决方案2:从http地址读取帧,而(true){startTime = System.currentTimeMillis();

        URL url = new URL("h t t p://[IP]/-wvhttp-01-/image.cgi");
        URLConnection con = url.openConnection();
        BufferedImage image = ImageIO.read(con.getInputStream());   
        showImage(image);
        estimatedTime=System.currentTimeMillis()-startTime;
        System.out.println(estimatedTime);
        Thread.sleep(5);
}
Run Code Online (Sandbox Code Playgroud)

此策略只是从相机提供的URL中抓取帧.代码是用Java编写的,但是在C++中使用curl库的结果是相同的.这种解决方案避免了但是它需要很少超过100毫秒抓住每个帧,这意味着我只能平均10 FPS实现第一溶液的延迟.

我想知道如何使用c ++或用c ++开发的其他库来阅读视频?

opencv ffmpeg h.264 ip-camera

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

ffmpeg ×1

h.264 ×1

ip-camera ×1

opencv ×1