So I did the conversion of a video to i-frames in FunExpander. This particular video was at 60FPS and I dropped it down to 30FPS to make the scripting easier.
However, when I run the script back on the original 60FPS video it seems like it is slightly out of sync in several spots.
It syncs up just fine with the 30FPS file I converted, but has issues with the original 60FPS video. Like, not the whole video… just certain spots.
I’m wondering if it was just a bad conversion, or something else?
Well, as I am not a big fan of framerate conversion for scripting I just use Handbrake with the Production Proxy 1080p preset for my videos. It’s fast, so you shouldn’t have any delays on frame-by-frame scripting.
I often convert 60 fps to 30 fps, because I also think 60 fps videos are more annoying to script. You have to click so much more.
When I am done scripting the 30 fps version I do the follows (I’m using OFS):
Export the script
Delete the 30 fps video
Delete the OFSP file
Properly rename the script
Open the video / script in OFS
Adjusting the timings
For the timing adjustments:
I select all the points (ctrl + a)
Move them all three times to the left (shift + arrow key left). This gets the timings right again.
Maybe not all the points are 100% perfect, but I don’t think that’s necessary anyway. Only worth for very slow actions. Otherwise you won’t notice it, if the point is a little bit more left or right, because of the speed.
Still, best thing is to check certain sections, if the timings are good enough and maybe adjust them a little bit.
It’s true, you have more frames of course, but it’s not a big deal if you use cursor keys and numpad to script anyways, since you can just hold left or right cursor to just skip to the end or beginning of a stroke with some fine adjustments after that.
Also a conversion from 59.94 to 30fps will get sync problems over time and they’re just getting worse, so in his case the timing adjustments will basically do nothing.
He could convert it to 29.97 fps instead and I believe there is also a script for OFS where you can adjust the script to different speeds but I never worked with that.
Also I prefer to not have to decide if I want to set a point before a direction change or after a direction change, which I feel is more a problem with 30fps than it is with 60fps for me. But yeah, I’m also OCD about this kind of stuff.
As scripts use ms values, the video framerate isnt relevant. However, wrong conversions of videos can cause misalignments. A good converter will compensate for this by either using a double frame, or removing one, or it uses a blending method.
And its not too hard for them to detect and correct such things either, since for audio they must do that anyway.
Did you check your 30fps script with original 60fps video or converted 60fps video to i-frames? In my expierience converting the video to i-frames always alter it a bit, so the script might be good with 60fps i-frames version if you haven’t tried.
Wrong.
30fps means you can only do a point around every 33.33333ms.
60fps means you could do a point every 16.66666ms.
If you’re talking about it the other way around, you’re right though. It still would fit if it isn’t in some weird framerate like 29.97 which tend to get unsync over time on 30fps video. I’ve seen some scripts with these issues here before.
In the backend, the scripts dont use the fps, they use ms timestamps. So even if the video is in 30 or 60fps, those script timestamps are still the same. Its only the video playback being diffirent. If the script says 1000, it means 1000ms, which on 24fps means the 24th frame, and on 60fps the 60th frame.
Hence you can convert any video to 60fps, and then script it in there, and play it back in the 24 fps version. And it will match in times.
It only breaks when you have things like 23.99 fps which after conversion become misaligned (instead of 60 fps, it becomes for example 59.5). And this then generaly will break on anything but short videos (each second a few ms gets misaligned, which does add up quickly). And yes, video conversions break often here, because slowing down sound by less than 1% might not be noticed (and therefor is adjusted), synchronization anywhere else breaks guaranteed.
And yes, 1ms a second of drifting, after 5 minutes is already 0.3s, while the normaly accepted boundary lies between 0.08s (80ms - a value calculated by the average speach distance and audio travel time through air).
But again, the script is accurate, its the video conversion which wasnt.