MKV recordsdata are usually not supported on iOS.
I have never poked at this drawback in just a few years, however are you positive that is nonetheless true? Is the difficulty Matroska, or is it the codecs contained inside? Have you ever tried calling it WebM? WebM is identical as Matroska, however with restrictions on which codecs can be utilized, for the sake of getting a brandable “commonplace” media format.
Looking for (quick ahead/rewind) could be very gradual for big movies.
Is your net server able to serving ranged requests? This can be a requirement for quick searching for.
Is your video even seekable? It ought to have a Cues
factor. See additionally: https://www.matroska.org/technical/parts.html
Storing each MKV and MP4 would double the storage utilization (recordsdata are massive).
If appropriate codecs are used, you possibly can at all times transmux on the fly. This simply repackages the info and takes little or no CPU. Although, it is not clear that this solves any of your particular points.
I’m contemplating HLS streaming.
Why? All HLS does for you is add extra overhead and complexity whereas decreasing consumer compatibility. Until you are providing a number of bitrates or reside content material, there is not any level. A easy MP4 file is okay. All of your causes for not wanting to make use of MP4 additionally apply to HLS… HLS is only a playlist file that factors to a pile of fragmented MP4 recordsdata.
Is HLS absolutely supported on iOS?
Sure.
Does producing HLS segments take considerably extra storage than the unique file?
Some extra, however not sufficient extra to matter a lot.