VRPorn.com videos growing offset

Hey guys. I tried googling this but I came out empty handed

I’ll try to give as much detail as possible.

Videos I download from VRPorn.com have a weird delay. Why weird? it’s not constant. If I adjust the offset in heresphere or DEOVR for a given section it will be fine but 5 minutes later, the delay keeeps growing and eventually it’s pretty much a full second off.

I use the handy, the Oculus Rift S headset and I tried with Heresphere and DEOVR both, same behavior.

Since it’s not a fixed offset it’s clearly not a script lengt vs video lengt issue or overall synch that can be fixed with the delay option. It would be a pretty big coincidence, too, considering the scripts come from different scripters.

I was wondering if my Handy suddenly started having this issue and it might be mechanical but streamed videos from SLR (proven by me just finishing a beautiful meeting with the delicious Alena Croft scene from MilfVR) and local videos I already owned do not have that issue (Hentai, live action and even non-VR videos, I checked all of them)

So I tried looking at the differences.

It appears the downloads on VRPorn.com are all in h.264 encoding. Could that be it? Do I seriously have to use handbrake and re-encode all of them? Got myself a pretty sizeable haul.

At first I downloaded them in 5K because with my Oculus Rift S (yeah I know, old) it can’t really play anything above 6K. Well, I got that pixelized and freezing issue and that’s when I realized it was h.264 because I am familiar witht his issue and I have no problems whatsoever with h.265 videos in much higher resolutions.

Knowing that h.264 struggles with higher resolution I downloaded the lowest, 4K (I really don’t mind lower quality if I can use the video+script combo) and sure enough, playback was smooth again but the synch issue remained which really bummed me out.

Well, I’ll try re-encoding one of them overnight and see but if you guys have any insight or have already seen the issue and know a less tedious way to fix it, I’ll be very grateful.

h264 is just the encoding format, similar to jpg and png being different image encoding formats. I believe it’s the settings used when encoding causing this. Videos released on VRPorn are notorious to mess up scripts compared to the same videos released on SLR, POVR etc. I never investigated what they do with their videos but I suspect they do some weird settings regarding fps, e.g. 59.940 vs 60 fps. This tend to cause a growing difference the longer the video plays. The same issue can be seen in subtitles when a subtitle file doesn’t match the video fps.

Sometimes it can be that the video has been edited but then the length usually differ with a few seconds (also rather common with VRPorn for some reason).

Regarding issues with h264 playback for higher resolution videos it’s because h264 is decoded by CPU only. h265 can be decoded with hardware decoding support, usually in the GPU. The h264 specification support up to 4K resolutions iirc, however it can encode higher resolutions but that requires a very powerful CPU to decode. That’s why h265 is almost always used for 5K+ videos on most sites.

You can use MediaInfoOnline - MediaInfo in your browser (no installation required) to get detailed info about the video and audio encoding settings of a video file.

So if I got this right you think it would be the fps that’s causing the shift?

Wait, they are notorious to mess up script and yet it’s the first time I hear about that?!?

Is there a way in OFS to change the timing of the script to adapt to the change in framerate then? Or maybe use handbrake to re-encode it in 60 fps even though the frames were already lost in the original? I don’t mind putting some elbow grease in it.

Yet one thing strikes me as odd. I’ve never seen anyone post a “VRPorn.com” specific script in threads including it as a source.

Like, sorry for the tag but, @joeporno I see constantly linking to the release of scenes on vrporn.com and I’ve not seen anyone in the thread reply with “hey, wait, the synch of the script is all messed up” which makes me believe it’s a “me” issue.

So if there’s a known workaround or fix I’m all ears, really. I downloaded like a dozen scenes from that website and really hoping it wasn’t for naught.

Nevertheless, Sentinel, thanks for the reply.

Has anyone downloaded those scenes from VRPorn.com and checked their FPS?

The problem with many scenes and scripters are that peeps use files from eporner or porntrex for example. Those videos get reencoded and are suddenly 60fps flat and not 59.94fps that is the normal fps for VR videos. So if you use a script that was made for 59.94fps version that won’t sync nicely with the 60fps file.

Same thing with people reencoding their own stuff with FunExpander by using “convert to 30fps”.

Edit: People also mostly dont give feedback or dont give a shit when it shifts a bit. I noticed that with a lot of scripts and even with a lot of mine cause I did that mistake too at first.

I can only speak from feedback I’ve got on my scripts. It’s usually that the ones subbing on VRPorn that have odd versions of videos not matching the studio version. Maybe I used a bit strong wording, but it’s my experiences as a scripter getting feedback.

Since you specifically tagged me on this (not a problem, by the way), I’ve had problems with some of the Zoey Holloway 3D conversion videos drifting from the script. I checked the FPS and realized it was the problem, and just ran them through Videoproc Converter AI to fix them. It’s NOT a free program, but well worth the price for everything else it does. I would suggest using Handbrake if you want a free one.

Ok so I did put the mollyredwolf loona scene through handbrake to change it both to h265 and change the framerate to 60 as it was the shortest scene I owned from vrporn.com

But it also happened with big studios scenes (I mostly downloaded VRConk and VRBangers)

Well, I’ll test it after work today and if it was indeed the issue I’ll tag your post as the solution.

I’m just really surprised it’s the first time I hear about FPS causing script drift.

Thank you three (I didn,t see Shayuki at first) the assistance so far.

Sorry didn,t see your reply at first. So I guess I’ll have to re-encode all the videos I get from vrporn.com in flat 60 fps

That is hard for me to wrap my head around. it takes me out completely.

But wait I’m pretty sure your Yae Miko one was part of the batch that was causing the script drift.

Oh no, it might be something else entirely. I’ll try to check if I didn,t mistake a mere offset for the drift later today.

sorry for the multiposting, guys

I popped it in OFS during lunch break and it appears forcing it to get to 60 fps (proof, sorry for french) did not help

I cobbled quickly this edit together.

I didn’t quite understand your question, but I’ve stepped on the rake once with another site.
For one of my past scripts, I downloaded a video as specified in the file properties 60 fps, wrote a script for it, published it and no one complained. But when the same video appeared on SLR - it was published at 59.94 fps - with the same frame rate. I tried to publish it - but it was pointed out to me that it was severely out of sync.
The difference between 60 and 59.94 is 1.001 or 0.999 (depending on which way you count) and if for example for the 5th minute of the video, the desynchronisation is 0.3 seconds - which is almost imperceptible (few frames), then for the 30th minute it is 1.8 seconds, which is a lot.
I then fixed funscript (which contains ordinary json) with a simple python script. I posted it here - try it.

Ok so in theory I could fix the fps discrepancy in the scripts if I use your python script?

Which I would gladly do if I had even a clue how to use it.

Do I copy your text in a txt file and save it as a .bat or something? That’s all I know to do, really. Or is it something that’s doable in OFS directly?

Obviously I’d change the file name variable and all that but I’m gonna need a “dumbshit guide” for this if you can provide one.


(I’m still compeltely floored that I had not heard that it was a possible issue before right now and I’ve been scripting and consuming scripts for a while now)

I think the right thing to do would be to make a plugin for OFS, maybe someone will - I don’t want to deal with lua yet.
You need to install python from the official site, I usually do it in the root of the C drive (C:\Python)
Then use any text editor (the same notepad) to save this text to the folder as a file with the extension *.py

Pay attention to the 3 variables, adjust them to suit you:
funscriptName = ‘VRBangers_Laid_Off_Angela_White’.
folder = ‘D:\EroScripts\Angela White\’
cor_coef = 1.001

  1. funscriptName - script name, without extensions
  2. folder - full path to the script, double ‘\’ required
  3. cor_coef - the coefficient by which we change (1.001 or 0.999), since you write that it slows down we need to speed it up, so every next point should be moved earlier in time and 0.999 will work for you.
import json

funscriptName = "VRBangers_Laid_Off_Angela_White"
folder = "D:\\EroScripts\\Angela White\\"
cor_coef = 0.999

funscript_orig = folder + funscriptName + ".funscript"
fs_cor = folder + funscriptName + ".cor" + ".funscript"

with open(funscript_orig, "r") as funscriptFile:
    funscriptJson = json.load(funscriptFile)
    fs_orig_inv = funscriptJson['inverted']
    fs_orig_metadata = funscriptJson['metadata']
    fs_orig_range = funscriptJson['range']
    fs_orig_version = funscriptJson['version']
    fs_actions = funscriptJson["actions"]
    obj_cor = {"actions":[], "inverted": fs_orig_inv, "metadata": fs_orig_metadata, "range":fs_orig_range, "version":fs_orig_version}
    for actions in fs_actions:
        obj_cor['actions'].append({"at":int(actions["at"]*cor_coef), "pos":actions["pos"]})

with open(fs_cor, 'w') as fslr:
    json.dump(obj_cor, fslr, separators=(',', ':'))

Then simply in the Windows console, run a command like this:

c:\Python312\python.exe d:\EroScripts\correction.py

c:\Python312\python.exe - path to the executable file that runs python,
d:\EroScripts\correction.py - the path to the Notepad script.
As a result, you will have a new *.cor.funscript in the folder next to the main script, where the points will be shifted in time.

1 Like

Alright, okay, I’ll try it out after work. if this works you’re my savior.

slight correction, since the script is getting progressively more in advance than the video, I want to push the points further in time but I got the gist of it. I’ll tinker around with it and figure it out. You already did a lot for this idiot lol

Edit: I’ll also make sure not to include the .mono in the funscript_orig part when it is not contained in the filename. Don’t worry, I noticed it.

If it works I’ll be sure to mark this as the solution for other people to peruse.

1 Like

Yes, my mistake, I’ll correct it.

No need, I know how to edit basic things lol

Funny thing is I used to know how to program flash, C++, C#, a little Java

One day I broke down from stress and it just… disappeared. I still work with programmers and can somewhat read their code but I can’t write anything. Mental blockage I guess.

I was mostly wondering about how to run it, whcih you explained (I never used Python except in RPGMaker) and the correction coefficient.

Welp, still got a few hours of work but I’ll be sure to let you know how it turns out when I do run it.

Final update

You are my goddamn hero
here’s the final result at the beginning of the video vs the very last stroke

(Streamable got upset at me for uploading porn lol)

I had to change the cor_coef to 1.002 for it to work for this video but like I said, I don,t mind tinkering here and there. There might be slight misalignment but honestly it could be on the scripter’s part. All in all, it looks pretty synched and it’s all I wanted. No need to re-encode videos too.

You are a legend, sir. thank you.

And thanks to everyone who tried to help as well. Be sure to link to flowerstrample’s post if anyone needs to fix the issue for themselves.

I’m off to resynch all of the vrporn.com videos I got… and to get more :stuck_out_tongue:


1 Like

Strange why 1.002, although float it is - the calculator counts 1.001001.
Glad you helped - I was also first struck by this inconsistency, that some sites change the fps but leave the number of frames as in the original.

Your guess is as good as mine for the actual cor_coef lol

For the Tommy king “In a flash” script I just had to put 1.0021 for the script to actually line up perfectly. :man_shrugging:

I’m not sure of the logic behind it but I change a number, pop it in OFS, check if it lines up beginning, middle and end. Even if it’s illogical at this point I’ll just take synched scripts lol

Thanks again, anyway, I’ll let this thread expire now.

I’m gonna answer that because I have an idea.
Could it be that vrporn do it on purpose? Change the speed of video playback + adapt the scripts that are available on their site for this? They publish scripts for videos, if I’m not mistaken.
For example, the coefficient of 1.0021 somehow does not fit with the speed of 59.94 or 60 frames. This is a kind of defence - so that people watch videos with scripts on their site and not elsewhere. And for the human eye a change of speed by thousandths will be imperceptible.

Yeah that confirms what I already suspected a few months ago. Thank you.