I was having same issue and none of the listed solution work for me. I was displaying videos on the site from S3 but they were not playing on iOS and giving issue listed above but one of the video was working without issue. I tried to add -tag:v hvc1 too but it didn't worked. I compared both videos via FFmpeg and found that it was an encoding issue. I was generating video via FFmpeg and adding -fbrand mp4mp42 in generating the video worked.
In short, it is most probably due to different encoding format although both are of type video/mp4.