If a flic gets upscaled to 60 frames and 4k and the script has been made at 30 frames lowres, unsure if the resolution is a factor or not, the script gets out of sync less at the beginning and more at the end. So it can not be corrected easily by moving all points a couple of clicks.
Is there a mathematical approach and conversion of the script to solve this and make the script fit to 4K60 without having to rescript the whole thing?
Usually, problems of this type occur because the frames per second were transformed somewhat during the conversion (30 => 59.94 or 29.97 => 60).
If this is the case (i.e. mismatch between 29.97/59.94 and a round number), that means that a frame is gained or lost every 1000 frames. You could try those custom scripts in Funscript.io (click on “custom script” and replace the text) and see if you get a synchronized script.
Its really a problem. People can think your script is bad. They find a higher resolution that is 60 frames and then complain its not in sync even if same movie with exact same length. The Jenni Lee script is the best example. The Jury thought it was badly scripted but it just got upscaled along the way and I did not check again. A conversion tool is necessary.
To be honest there should be a setting in the script about the framerate and there should be a warning by the players like MFP.
It’s a big problem also with other sites reencoding their uploaded files to 30 or 60fps when they were 59.94 or 29.97 which is why I started to add the FPS source information to my topics. Not that much of a problem for short clips, but a big problem for everything above 5 minutes and really annoying the longer the source is. VRPorn.com for example has their source in 60fps which sucks when you script with the source file of the studio from their website.
I checked again and the original video 30fps I scripted with has a framerate of 29,97. The upscale 60fps has framerate of 59,940006 That is 29,970003 so a tiny bit longer. So how does this shift the script?
If I shift the complete script in the 60fps upscale right by 6 shift-arrow presses the beginning is correct but for the end the shift is too much and out of sync.
Was not done by me so I dont know. I can upload the three files to mega for you to check if you like. The original video is a perfect fit the upscale can not be shifted as a whole to be right.
Since I am remembered, I will add my 2 cents.
Some sites when publishing video leave the number of frames original roughly 30 thousand, but change the frequency from 59.94 to 60 for example - so we get unsynchronization. That’s why I do sometimes synchronization with the help of Python script.
It’s not about upscaling. I can’t know what it’s related to - but it’s the first time I’ve encountered such a problem with this script. https://discuss.eroscripts.com/t/summer-hart-studios-special-oil-massage-treatment-summer-hart-codi-vore-tegan-trex/100906
My source was at 60 fps, when publishing on SLR I didn’t check the script with the source published on their site (59.94 fps) and I was pointed out to be out of sync.
Theoretically, with correct transcoding - time should be unchanged, and change the number of frames (as an example for the script above) (27х60+34)х60=99240 frames and (27х60+32)х59.94=99120 frames.
But it turned out that my source has the same number of frames (99120), but they are played at 60 fps - so there is a difference of 2 seconds and they are stretched over the entire length of the video.
The correct way to find such disynchrony is to move each point for action in the script on the timeline to the correct time - I do it as indicated.
I don’t remember the details and I may be wrong, but I think the point is clear.
Hmm. A new upscale cant be the solution even if possible. Sometimes you find an upscale and you can not use it as your script wont fit?
The correct way to find such disynchrony is to move each point for action in the script on the timeline to the correct time
There must be a mathematical way to this in OFS to adapt a working script to the new video. Moving each point is a redo, wont happen, lowres Jenni then. You get my point better script something else then.
Funscript sync on time so if the video has the exact same length the number of frames doesn’t matter. Just like @g90ak I’ve also upscaled and reencoded lots of videos without issues with desync.
When I looked at the original and the upscale at a specific time (~13 min) in OFS the video frame looked identical. Checking playback with the simulator in a few spots wasn’t better or worse in any of the videos. I didn’t try the upscale with my handy though. Remember that high res compressed videos tend to lag updating the visuals when it comes to stepping frame by frame or jumping around in the video in OFS/JFS. That’s why many reencode high res videos using I-frames before scripting.
Checking the source file with MediaInfo reveals something strange. MediaInfo tells that the “source duration” is 15 min and 19 sec and “duration” is 15 min and 20 sec. The upscale only states a duration of 15 min and 20 sec. I really don’t know why the original source file have a duration and a source duration that diff 1 second. Source duration is something MediaInfo calculates and not something stored in the video metadata btw. Searching on the topic reveals that people have trouble with such files, e.g. that the video stops playing while the audio continues. So the fact that they are different in the source video could possibly be the root cause for any troubles with the upscale.
Ok so in the future the upscales are to be checked if working with the script. I will at least do so for my scripts and reject if not working. Better lowres than bad script imo. The one second change in both videos does not explain the changing shift within the script.
I made an OSF extension that can adjust the timing.
You need select exactly two points, one near the start and one near the end of the script. Then place the cursot in the video at the correct time, and click “Adjust Point”. Then the closest of the two selected points will shift to the cursor, the other selected point will stay in place, and all other points are moved proportionally.
If you repeat the procedure with the other selected point, both these point will be at the correct time in the video, and the times of all other points have also been adjusted.
Lua script:
Copy the “Timing” folder (including the “main .lua” that is inside) to the “extensions” folder in your OFS installation
Here is the adjusted example (I think it was off by 3-4 frames near the end)