I expect you are running into the problem described here:
The issue is that Cloudflare provides multiple streams, some of which are very low quality. Some mobile devices, such as iOS devices, start with the lowest quality stream, then as data gets delivered quickly, switch to the higher quality streams. Unfortunately, for short videos, they never get a chance to do so.
The documentation originally described being able to set a bandwidth hint for a minimum quality, which would solve the problem by eliminating the terrible quality. But unfortunately, the actual behaviour is to lock the quality to a particular level, so video players would never be able to play a higher quality than the one you specify. We’re still waiting for Cloudflare to implement real quality hints, but if you are happy to lock to a specific bitrate, perhaps what they currently have will solve your problem.