You AirDropped a video to your iPhone. It arrived, sat in Files, and refused to open. Or Photos imported it and shows a black rectangle with no play button. Or the third-party player you installed crashes on the file. All three failures come from the same source: iOS is picky about the video files it will play, and there is no useful error message when a file falls outside the allowed set.
The good news is that the fix is almost always fast, and the mechanical story is simple. Here is what actually works, ordered by how quick each solution is.
#What iPhone actually accepts
iOS plays a specific short list. Everything else fails silently.
- Containers: MP4 (.mp4), M4V (.m4v), MOV (.mov), 3GP (.3gp). That is the entire list. MKV, WEBM, AVI, WMV, FLV, OGV, VOB, TS, MTS, MXF, DIVX, F4V - none of them play, regardless of what's inside.
- Video codecs inside those containers: H.264 (all profiles) and HEVC (Main + Main10). MPEG-4 Part 2, VP8, VP9, Theora, WMV3 - none of them play, even if wrapped in an MP4.
- Audio codecs: AAC-LC, AC-3, E-AC-3, Apple Lossless. MP3 also plays in most cases.
Notice what this list means practically: if your file is a "problem" video, it's almost always because either (a) the container is wrong, (b) the codec inside is wrong, or (c) both.
#The 5-second fix for most files
The majority of "won't play on iPhone" files - especially MKVs of movies, MOVs from someone else's camera, TS files from a broadcast recording, or MTS files from a camcorder - already carry H.264 or HEVC video with AAC or AC-3 audio inside. The codec side is fine. Only the container is wrong. Fixing this is a remux: rewrite the container header without touching the compressed streams. It takes seconds on any modern laptop, produces a file identical in quality to the source (bit-for-bit for the video and audio tracks), and iOS plays it instantly.
Wave does this on-device. Drop the file at wavemp4.com/mkv-to-mp4 (or any of the other landing pages that match your source), let it inspect, watch the "Fast copy" badge light up, and save the MP4. The whole thing usually takes less than a minute for a several-hundred-megabyte file, and nothing gets uploaded because there's no server. See remux vs re-encode for exactly what's happening under the hood.
#The slower fix for WEBM, WMV, VOB, and OGV
A minority of files really do use codecs iOS cannot decode: WEBM (VP9 or VP8 with Opus audio), OGV (Theora with Vorbis), WMV (WMV3 with WMA), VOB (MPEG-2 with AC-3). For these, the container swap is not enough - the codecs themselves need to be re-encoded to H.264 or HEVC.
Re-encoding takes minutes rather than seconds. Wave handles this locally too, using the browser's WebCodecs H.264 encoder (hardware-accelerated on most machines) for the video and a standard AAC encoder for the audio. On a modern laptop, a five-minute WEBM re-encodes in 30-90 seconds. On older hardware, longer.
#The getting-it-to-the-phone step
Once you have an MP4, three paths land it on the iPhone:
- AirDrop: from a Mac, right-click the .mp4 in Finder, Share → AirDrop, pick your iPhone. It shows up in Photos as a video and plays instantly. This is the fastest path for anyone in the Apple ecosystem.
- Files app: from a Windows / Linux machine or a phone-to-phone transfer, drag the .mp4 into iCloud Drive, then open Files on the iPhone. Files plays MP4s inline. From Files you can also long-press and "Save Video" to move it to the Photos library.
- Direct import to Photos: Photos → Import (or Image Capture on macOS) from a plugged-in memory card or drive works for any container Photos supports - which is exactly the same list iOS supports natively.
#Anti-pattern 1: renaming .mkv to .mp4
Do not rename. Extension does not equal container - the container is defined by the actual bytes at the start of the file. An MKV renamed to .mp4 still has an MKV structure inside, and every player checks the bytes, not the name. It will not play, or will crash, or will play just the audio and no video. Rename it back and use a real converter. See the MP4 vs MKV article for what actually differs between them.
#Anti-pattern 2: uploading to a "convert to iPhone" website that runs on a server
These sites upload your file to their server, re-encode it (usually always, even when a remux would work), and give you a link to download. The upload alone can take minutes for a large file, they impose file-size caps to control bandwidth, and your video sits on their disk for at least the duration of the job. See how to convert without uploading for the alternative approach and how to prove it's not uploading anywhere. The Wave converter runs entirely in your browser tab.
#Anti-pattern 3: using QuickTime "Export as..." on a source QuickTime cannot open
QuickTime plays a broader set than iOS but not by much - basically the same MP4 / MOV / M4V family. If it cannot open your source, its export menu is greyed out. VLC (free, cross-platform) plays essentially everything and has a File → Convert / Save that can output an iPhone-compatible MP4, but the interface is not intuitive and the defaults are not always right. A dedicated converter is a shorter path.
#Why iOS is like this
Apple bakes codec and container support into iOS at a level that touches firmware, DRM, and battery-life tuning. Every additional format adds attack surface (parsers for new file formats are historically a rich source of security bugs), memory footprint, and complexity. Apple has consistently chosen the narrower list. The trade-off is that anything outside the MPEG family is your problem to convert - which is why "convert video for iPhone" is a query people run millions of times a month.
#The one-line summary
For the majority of "won't play on iPhone" videos: remux to MP4 in your browser, AirDrop the result, done. For WEBM / WMV / OGV / VOB: expect a real re-encode that takes a minute or two, then the same AirDrop step. Do not rename extensions. Do not upload to a cloud service if you don't need to. And do not trust QuickTime's Export menu to save you.