How to get MJPG stream video from android IPWebcam using opencv

前端 未结 5 1509
暗喜
暗喜 2021-02-04 19:48

I am using the IP Webcam program on android and receiving it on my PC by WiFi. What I want is to use opencv in Visual Studio, C++, to get that video stream, there is an option t

5条回答
  •  情歌与酒
    2021-02-04 20:13

    I did a dirty patch to make openCV working with android ipWebcam:

    In the file OpenCV-2.3.1/modules/highgui/src/cap_ffmpeg_impl.hpp

    In the function bool CvCapture_FFMPEG::open( const char* _filename )

    replace:

    int err = av_open_input_file(&ic, _filename, NULL, 0, NULL);
    

    by

    AVInputFormat* iformat = av_find_input_format("mjpeg");
    int err = av_open_input_file(&ic, _filename, iformat, 0, NULL);
    ic->iformat = iformat;
    

    and comment:

    err = av_seek_frame(ic, video_stream, 10, 0);
    if (err < 0)
    {
        filename=(char*)malloc(strlen(_filename)+1);
        strcpy(filename, _filename);
        // reopen videofile to 'seek' back to first frame
        reopen();
    }
    else
    {
        // seek seems to work, so we don't need the filename,
        // but we still need to seek back to filestart
        filename=NULL;
        int64_t ts    = video_st->first_dts;
        int     flags = AVSEEK_FLAG_FRAME | AVSEEK_FLAG_BACKWARD;
        av_seek_frame(ic, video_stream, ts, flags);
    }
    

    That should work. Hope it helps.

提交回复
热议问题