Search code examples
opencvmjpeg

Read stream from specific link


I need to read stream from mjpeg with OpenCV library. In more details, I need to read http://194.126.108.66:8887/. But when I try to do it with

VideoCapture ipCam;
ipCam.open("http://194.126.108.66:8887/")

I get the error icvOpenAvi_XINE(): Unable to initialize video driver.

I have tested this code with another link to mjpeg - http://c-cam.uchicago.edu/mjpg/video.mjpg It works fine. What is the difference between these 2 links? And how to read http://194.126.108.66:8887/?


Solution

  • OpenCV expects a filename extension for its VideoCapture argument, even though one isn't always necessary (like in your case).

    You can "trick" it by passing in a dummy parameter which ends in the mjpg extension:

    ipCam.open("http://194.126.108.66:8887/?dummy=param.mjpg")
    

    This worked in my similar OpenCV Python case, so good luck!