This is happening on my iPhone 12 Pro as well with videos from as recent as 2 months ago. I don’t use iCloud (so optimize photos is not enabled),
I’m running the latest version of iOS (14.4), and I have plenty of storage (using 150 gb of 256). I don’t know why this happens, but I have found that if I just iMessage the non-loading video to someone (I send it to my work phone, an iPhone XR), then the video will start working again. Kind of annoying but it works.