title: cv2.VideoCapture inconsistent behavior between cap.set and loop read
body: <p>I was trying to read the 600th frame of a video using <code>cv2.VideoCapture</code>. However, I found that the following two methods both successfully read an image but the images are different. I was wondering which is the correct way to read the 600th frame, and why the resultant images are different? Is it related to mp4 encoding? Thanks!</p>
  <p>Method #1</p>
  <pre><code>cap = cv2.VideoCapture(&quot;test.mp4&quot;)
  print(cap.get(cv2.CAP_PROP_FRAME_COUNT)) # 1187
  cap.set(1, 600)
  ret, frame1 = cap.read()  # Read the frame
  </code></pre>
  <p>Method #2</p>
  <pre><code>cap = cv2.VideoCapture(&quot;test.mp4&quot;)
  print(cap.get(cv2.CAP_PROP_FRAME_COUNT)) # 1187
  for i in range(601):
      ret, frame2 = cap.read()  # Read the frame
  </code></pre>