VSE proxy showing wrong frames So I make a new VSE session. Add in my video. All the fps and resolution is correctly lined up. First thing I do is set the proxy and rebuild it at 25%. Takes  awhile, then I go to the preview window and enable it to 25% so I can view it as a proxy. Done.

Problem is while I'm editing the frames are not always correctly displayed in the proxy preview window. ANd if I disable the proxy and go back to no proxy 100%, it'll show a completely different frame from the next scene. It usually happens on the frame right before a scene change in the video, it also happens on lip movements. So I could have a completely open mouthed character in the 25%, then I change it to no proxy and it's actually closed mouth....a very very big departure from the proxy.

Seems to be random. So only some frames before scene changes are displayed incorrectly, and only some lip flaps are displayed incorrectly.

The disturbing part is that the 100% no proxy also displays incorrect images in the preview window sometimes, and I have to hit refresh sequencer and it changes to the real scene. I've had issues where I hit refresh sequencer but it even renders the incorrect frames after they've been refreshed manually.

Is there a way to refresh the proxy or fix this problem? I need to use a 25% proxy or something with similar performance or I can't edit. 50% is too laggy as well and the other %'s don't solve the problem either it seems.
I had a similar problem where I was using a screen-capturing device that output some strangely encoded mp4 files. Whenever I tried to edit these in Blender, I had the same troubles you describe.

I fixed the issue by converting these strange mp4 files to a standardized format that blender can easily recognize. Here is the python script that I used, but you must have ffmpeg installed for it to work. To use it, save the text into a file that ends with .py and place it in the folder where your video files are stored (and no other files) and run the script:

import os
import subprocess

for file in os.listdir(os.getcwd()):
    if not file.endswith('.py'):
        filepath = os.path.join(os.getcwd(), file)
        outpath = os.path.splitext(filepath)[0] + '.mp4'

        if filepath == outpath:
            outpath = os.path.splitext(filepath)[0] + '_converted.mp4'

        subprocess.call(['ffmpeg', '-i', file, outpath])


If this doesn't work, perhaps you can provide a sample video that I can play with so I can find a better solution and edit this answer.

One problem with this method is that you lose quality everytime you convert and compress a video. If you have the hard drive space, I recommend altering the script so it converts the files to RAW avi files instead, like this:

import os
import subprocess

for file in os.listdir(os.getcwd()):
    if not file.endswith('.py'):
        filepath = os.path.join(os.getcwd(), file)
        outpath = os.path.splitext(filepath)[0] + '.avi'

        if filepath == outpath:
            outpath = os.path.splitext(filepath)[0] + '_converted.avi'

        subprocess.call(['ffmpeg', '-i', file, '-c:v', 'rawvideo', outpath])


The added benefit would be that you would no longer need to make proxy files.