oh god. I thought every social media was breaking my audio when uploaded, but no, they're transcoding my mp4 into a perfectly sync'd mp4.

which firefox/their video player then plays out of sync.

I feel like less shit for making a video that played wrong, I thought I fucked up the sync.

but now I have zero idea how to fix this

yeah, it's not tumblr that's fucking this, I made my own HTML that was just <title>VIDEO</title><video width="320" height="240" controls><source src="video.mp4" type="video/mp4"></video> and it still plays out of sync in firefox

ahh, if I convert the video to webm with handbrake, it burns the audio de-sync into the file.

but if I convert it to mp4, I get a mp4 that plays correct in VLC and chrome, but not firefox.

weird.

@foone webm if you don't override settings uses vp9 for video, mp4 uses h264 so it's very likely you don't have accelerated h264 playback set up correctly. edit: double checked to be sure, looks like more recent versions of firefox use the OpenH264 plugin from cisco by default now which calls libva/libvaapi directly for your video card to accelerate decoding.
@raptor85 the thing is, I can play other mp4s in firefox just fine and they don't desync. so it's something with my video
@foone what codecs are the audio/video in the other mp4s? mp4 is just the container format, vp9/opus is more or less web standard but that's not default in ffmpeg when encoding, and mp4+vp9/opus videos will play directly, they don't need the additional plugin like h264 does.
@raptor85 h264/aac mp4, I'm comparing apples to apples here
@foone hmm, maybe check the framerate on the source file and the output mp4, could have something screwy going on there, I know openh264 has had issues with defaulting to 25fps in the past when it can't properly read that info