I have a video that was unknowingly recorded using variable frame rate (Quicktime Movie Recording function) and it is causing the frames to become split into each other. Here is a sample of the video. I cut this using MPEG Streamclip and it is not re-encoded.
I have tried transcoding it into a constant frame rate file, as well as exporting JPEG frames individually but it still results in split frames. The only solution I have found is to cut the distorted potions in premiere and re-interpret those sections manually using a frame rate between 59.02 and 60fps. I have to guess the frame rate, but they do eventually line up. Is there any way to automate this process or is there another method that can do this easier? I don't understand why extracting the individual frames still results in them being split into one another while re-interpreting the frame rate is able to solve the problem. This program is an hour long and although I have "repaired" 40 minutes worth, I will still have to go back and sync the audio and it is becoming extremely time consuming.
+ Reply to Thread
Results 1 to 6 of 6
You may be able to remove the "split" frames because you have intact versions of the actual (often blended) frames, but those splits are hard coded into your file. Screencapping is never a first choice.
Also, nothing in the clip you uploaded suggests it is vfr. Mediainfo says it is cfr.
It was recorded using Quicktime's Movie Recording function in the high quality setting, which I later learned is variable frame rate. I'm not convinced the splits are hard coded into the file because cutting where the frame splits and manually adjusting the frame rate fixes the issue without dropping any frames.
Here is the repaired version of the clip from above: https://www.dropbox.com/s/w9bpadmo326uwh0/pool-frame-adjust.mp4?dl=0
The next issue is now all of the frame rates are different and although it plays smoothly, I will need to go back and adjust the speed to sync back to the audio. I can do all of this manually, but I am trying to find out if there is any way to automate this process even just a little bit. Is there some extra-smart video software that is designed for problem videos like this? A certain command in ffmpeg? I have tried transcoding it into CFR using ffmpeg and Handbrake, but the splits are still there.
Last edited by bmick23; 29th Feb 2016 at 20:32.
Looks like you removed half of frames and by luck, all removed frames are those that were teared
Nothing to do with vfr
See this example:
They are the same exact frames, but interpreted at different frame rates. A "correct" frame is not displayed in between the distorted ones and the magic frame rate to make the frames line up varies constantly, changing about every 5-10 seconds. You can see in the 60fps frames that they are missing a lot of information, like the previous frames aren't being refreshed quick enough for the new frames to come in.
Edit: I exported the frames using ffmpeg:
ffmpeg -i input.mov -vsync 1 output%d.jpg
then I separated the even frames from the odd frames and made a video track for each. I laid the even and odd videos on top of each other with the "difference" blending mode to show the differences between the frames. You can see what looks like a screen roll or flicker and what is also interesting is about 20 seconds in, the frames completely separate and then align. The roll looks somewhat consistent - is there any way to sync this back together?
The difference video: https://www.dropbox.com/s/yz6ki71n4cvl5nb/difference.mp4?dl=0
Last edited by bmick23; 1st Mar 2016 at 14:21.
Just wanted to post my solution in case anyone comes across this in the future.
What ultimately worked for me was this.
Export individual PNG files using ffmpeg:
ffmpeg -i video.mov -vsync 1 %d.jpg
mv /inputdirectory/*.PNG /outputdirectory/
Rename the files in both folders to be sequentially numbered using NameChanger (https://mrrsoftware.com/namechanger/)
This will take two passes. First to add the sequence numbers and remove the original file name, and again to append .PNG to every file
Now you should have two video tracks stored as frames in two separate folders. One folder containing all of the even frames, the other containing all of the odd frames. At this point, they should all be numbered sequentially. So folder 1 should have the same number of frames as the second (or off by 1) and they should be numbered 001.png, 002, png, and so on.
Import these into Premiere as an image sequence (Import, navigate to your image folder, select the first one and make sure "image sequence" is checked)
Now you have an even track and an odd track. Lay them on top of each other and cut around the distortion. Using this method, it looks like the video became distorted every 30 seconds, so if I cut that part from the top video track, the underlying "opposite" track contains the good frames.
In the end, this is what my timeline looks like and the file plays in time, at the correct frame rate, with no distortion.
I still don't understand why the distortion jumps between tracks at 30 second intervals, but as I guessed, the complete frame data was there, it just needed to be sequenced properly.
Here is a sample of the repaired footage: https://www.dropbox.com/s/e0wkql8sjt5f21n/framerestore.mp4?dl=0
Last edited by bmick23; 2nd Mar 2016 at 07:59.