Video Playback Issue

I record gameplay via Open Broadcaster Software (OBS). However, when I go to play those files via VLC or Windows media player, it plays fine but if I want to forward to another part of the video it takes 10-20 sec to get their with 100 CPU load (i5 4690K).

Why is it doing that?
 
Solution

I'm going to oversimplify to avoid a really, really long explanation. The way you compress video is basically to record an entire picture (frame), then record differences between that frame and the next frame. So if your first frame is:

12
34

and your second frame is

22
34

you don't record the entire second frame, you only record

10
00

The first pixel has increased by 1, and the other pixels are unchanged. Those zeros compress really well...
Like said maybe you are recording in AVI, that will make large video files, as said.
Check to see if the is an option in Open Broadcaster where you can select how the video file is out put.
Try to use a compression codec such as Xvid, or Divx, or any Mpeg 4 compressor.
Remember the larger the resolution= A larger file size so an AVI set to 1080p will be a large file output stream. Xvid ect strips out alot of data and the cpu has less of a load put on it.
 

I'm going to oversimplify to avoid a really, really long explanation. The way you compress video is basically to record an entire picture (frame), then record differences between that frame and the next frame. So if your first frame is:

12
34

and your second frame is

22
34

you don't record the entire second frame, you only record

10
00

The first pixel has increased by 1, and the other pixels are unchanged. Those zeros compress really well, helping make the video file size smaller. This continues with each frame, recording only the differences between it and the immediate previous frame.

Every x seconds or sometimes when the compression algorithm detects a large change (i.e. a scene change), you record a new complete picture and start the process all over again. These recorded complete pictures are called keyframes.

Because you're recording changes between frames, there's no way to immediately skip ahead to an arbitrary point. When you skip ahead to an arbitrary point in the video that's not a keyframe, the player has to find the previous keyframe, then internally render every frame between that keyframe and the point you've skipped ahead to in order to correctly render the frame you've skipped ahead to. That internal rendering is why your CPU is going to 100%. If it's taking 10-20 sec, my initial guess would be that your recording software isn't saving very many keyframes, meaning the player has to render an unnecessarily large number of frames after the keyframe in order to get to your skip-to frame. If there's an option in your software to record keyframes more frequently (makes the file size bigger), then try using it.

Sometimes the player "gives up" and just renders the changes using the wrong initial or previous frame. That's what's going on when you see VLC render with wrong colors and smeared motion. It's applying differences to each frame, but it started with the wrong initial image (since it didn't render everything between the previous keyframe and your skipped-to frame), so the colors are all wrong. The picture corrects itself when VLC gets to the next keyframe.
 
Solution


I think you nailed it right on the head because I tried using Any Video Converter to switch it to mp4 and i was still having the same problems. I noticed when I switched to 720P it was slightly better but still took a while.

I'm pretty sure now that it's OBS since MSI Afterburner does way way better at recording gameplay, no issues with that. Afterburner uses the exact same formats too.

Thx for the help!

I just realized too that OBS is still in beta and it's designed for streaming too.

BTW... Here's what I recorded those vids (game captures) at:

1080P
60fps (i don't like stuttering)
 


I thought that also, however even when i converted it to mp4 i stilled had the same problem. And still had it going from 1080P to 720P.

Solandri I'm completely sure is correct, since OBS is the only software program i've had this issue with.