There are two main causes for this:
1, if you are using an NVIDIA GPU please make sure you have Keyframe INT set to 1 in OBS,
2, if you're using an AMD GPU these are not supported by Windows Media Foundation (AVPro) so don't use them they are bad!
Set audio sample rate to 48kHZ as any other sample rate is not supported by most VR platforms.
When using software encoding, DO NOT use the "zerolatency" tune, AVPro for some reason does not like this
Ensure you're using a hardware encoder (NVENC, etc), ensure you're using the RTSP URL (if applicable, PC only) AND that the video player in world has the low latency box checked
Other known issues can be found here: https://wiki.vrcdn.live/en/Known-Issues
We created a very simple world on VRChat where you can verify that your stream is working correctly, you can find it here: https://vrchat.com/home/world/wrld_a52637bc-159c-43b6-9e1a-5a384d927190
We host a JS clock on our website which you can load into OBS as a browser source. The clock will show time down to the millisecond which will help you determine the latency your stream has. You can find it here: https://panel.vrcdn.live/tools/clock
Note, this link uses white font so it may not show in your browser. However, when using this link in a browser source the font will show normally.
You're not using an X264 based video encoder. Please ensure you are either using: