I am trying to obtain images from an RTSP Stream from an IP Camera using a C# Windows Forms application. I am using EMGU CV to capture stream continuously but the RTSP Steam stops after a few seconds and then the imageGrabbedEvent never fires. 

My purpose is simple: to get every frame from the camera and analyze it. 

I am using a HIKVision IP Camera(DS-2CD2683G1-IZ) with an IP Address of 192.168.1.64 streaming RTSP on port 554 (which is the default IP address and port number for many Hikvision IP Cameras)

```
DateTime LastTimeImageGrabReinitialised = new DateTime();

public void InitializeCameraEMGUStream()
        {
            //added a datetime to the URL as recommended by another answer but it didnt help.
            VideoCapture myVideoCapture = new VideoCapture("rtsp://admin:mysecretpassword@192.168.1.64:554/ch1/main/av_stream?"+DateTime.Now.ToString());
            myVideoCapture.ImageGrabbed += imageGrabbedEvent;
            myVideoCapture.Start();

            LastTimeImageGrabReinitialised = DateTime.Now;

        }

private void imageGrabbedEvent(object sender, EventArgs e)
        {
            lastTimeImageGrabbed = DateTime.Now;
            try
            {
                Mat m = new Mat();
                myVideoCapture.Retrieve(m);
                LatestAcquiredImage = m.ToImage<Bgr, byte>().Bitmap;
                pictureBox.Image = m.ToImage<Bgr, byte>().Bitmap;
                imgEntrada = m.ToImage<Bgr, byte>();
            }
            catch (Exception Ex)
            {

            }

            //I tried adding some logic to reinitialize the stream after a few hundred milliseconds, 
            //but it seems the reinitialization takes a while to obtain a clear image and many frames cannot be read.
            if((DateTime.Now- LastTimeImageGrabReinitialised).TotalMilliseconds>200)
            {

                myVideoCapture.Start();
                LastTimeImageGrabReinitialised = DateTime.Now;
            }

        }

```

I have gone through a couple of answers available online but cannot find a definitive way to keep the stream alive. I would really appreciate any help in this regard.

FYI: What I have already tried:

1. I tried reinitializing the VideoCapture every some time but it is slow and many initial frames are noisy/unclear images.
2. I already tried using VLC.Dotnet to run the RTSP steam, the stream works perfectly fine but to grab an image and convert it to and Image is very slow, primarily because of VLCControl.TakeSnapshot() saves the file on disk. At best, this consumes more then 500milliseconds and many frames are lost during that time.
3. I additionally also tried using RTSPClientSharp, while using that, the imageGrabbed event fires regularly but I but was unable to get to display a decoded image.
4. I tried getting images from the camera using HTTP, however, each image takes more than 600ms to arrive and the camera won't accept any other connection requests in the meanwhile, hence many frames are again lost.