You AirDrop a clip from your iPhone to a Windows PC, double-click it, and… nothing plays. Or the audio plays but the video is a black screen. Or a portrait clip renders sideways. In 2026 these still happen daily, and they almost always fall into three causes.

This guide explains each cause and shows you both the browser-based one-click fix and the equivalent FFmpeg command.

If you just want to fix the file right now, drop it into the Mobile Video Playback Fixer. No upload, max 500MB.


Why iPhone videos sometimes fail on Windows

Since iOS 11 (2017), iPhone defaults to recording videos in HEVC (H.265) inside a MOV container:

iPhone default recording (2026):
- Container: MOV (.mov)
- Video:     HEVC (H.265, hvc1 tag)
- Audio:     AAC LC
- Resolution: 1080p / 4K depending on settings
- Bit depth: 10-bit when HDR is enabled

HEVC saves about 50% bytes vs H.264 at the same visual quality, but it requires a specific decoder to play back. Windows 10/11 ships without a HEVC decoder. You either install the paid HEVC Video Extensions from the Microsoft Store, or you use a third-party player like VLC.

And even with HEVC Extensions, HDR (10-bit) iPhone videos can still fail to play in some Windows environments.

HEVC vs H.264 compatibility at a glance

AspectHEVC (H.265)H.264 (AVC)
File size at same quality~50%Baseline (100%)
Windows out-of-the-box playbackNo (needs HEVC Extensions)Yes
Android out-of-the-box playbackPatchy (device dependent)Yes
Browser playback (Chrome / Edge)Patchy (OS decoder required)Yes
10-bit HDR supportYesNo (8-bit only)
Recommended for sharingNoYes

Rule of thumb: keep HEVC if the file stays inside your Apple devices. If there’s any chance it leaves the Apple ecosystem, transcode to H.264 with 8-bit yuv420p — that’s the lowest-friction shareable format in 2026.


The three failure patterns

Pattern 1: File won’t open / “codec missing” error

Symptoms

  • Windows Media Player or Films & TV says “Can’t play”
  • A codec-missing dialog or unsupported-format error appears

Root cause

  • The OS has no HEVC decoder
  • Or the file is HEVC HDR (10-bit yuv420p10le) and the decoder can’t handle the bit depth

Fix (recommended): convert to MP4 with H.264 + AAC.

In a browser, open the Mobile Video Playback Fixer, pick “Windows / Chrome (H.264 + AAC)”, click Analyze, then Fix. The tool transcodes the video to H.264 with yuv420p (8-bit 4:2:0) and the audio to AAC LC so Windows can play it.

Equivalent CLI command:

ffmpeg -i input.mov \
  -map 0:v:0? -map 0:a:0? \
  -c:v libx264 -preset veryfast -crf 23 -pix_fmt yuv420p \
  -c:a aac -b:a 192k \
  -movflags +faststart output.mp4

Key points:

  • -pix_fmt yuv420p downconverts 10-bit HDR to 8-bit (huge compatibility win on Windows)
  • -movflags +faststart moves the moov atom to the start (enables progressive playback)
  • -c:a aac keeps audio as AAC LC, the most widely supported audio codec

Pattern 2: Audio only, no video

Symptoms

  • The file opens but the video is black; only audio plays
  • Plays fine in some players, fails in others

Root cause

  • HEVC tag mismatch: hvc1 vs hev1
  • iPhone records hvc1 by default, but some editors or conversion tools rewrite it to hev1, which Apple players sometimes can’t decode

Fix: remux losslessly and force the tag to hvc1:

ffmpeg -i input.mov \
  -map 0:v:0? -map 0:a:0? \
  -c copy -tag:v hvc1 \
  -movflags +faststart output.mp4

In the Mobile Video Playback Fixer, choose “Apple (keep HEVC)” — the tool keeps HEVC but rewrites the tag to hvc1. No re-encoding, so it finishes in seconds with zero quality loss.


Pattern 3: Portrait video plays sideways

Symptoms

  • You shot vertical on iPhone, but on Windows it shows up 90° on its side
  • Correct orientation on iPhone / Mac, sideways on Windows / older Android

Root cause

  • iPhone records the video stream landscape and just adds a “rotate 90°” metadata tag
  • iOS, macOS, and modern Windows 11 read that metadata and rotate at playback
  • Some older Windows players and Android apps ignore rotation metadata, so the raw landscape video is displayed

Two fixes:

(a) Keep the metadata (lossless)

If your playback target supports rotation metadata (VLC, PotPlayer, modern Windows 11 Media Player), a clean remux is enough:

ffmpeg -i input.mov -map 0:v:0? -map 0:a:0? -c copy -movflags +faststart output.mp4

(b) Burn the orientation into the pixels (most compatible)

If you need it correct on every player, rotate the actual pixels and zero out the metadata. This requires re-encoding video:

ffmpeg -noautorotate -i input.mp4 \
  -map 0:v:0? -map 0:a:0? \
  -vf "transpose=1" -metadata:s:v:0 rotate=0 \
  -c:v libx264 -preset veryfast -crf 23 -pix_fmt yuv420p \
  -c:a copy -movflags +faststart output.mp4

Important:

  • -noautorotate is mandatory. Without it FFmpeg auto-rotates AND the transpose filter runs on top, causing double rotation
  • 90° = transpose=2, 180° = transpose=1,transpose=1, 270° = transpose=1

In the Mobile Video Playback Fixer, pick “Burn into pixels” under Orientation. It runs the same command above automatically.


Triage flow

When you don’t know which pattern your file hits:

1. Does Windows open the file?
   ├─ NO  → Pattern 1 (codec not supported)
   └─ YES
       2. Is video visible (not just audio)?
          ├─ NO  → Pattern 2 (hvc1/hev1 tag mismatch)
          └─ YES
              3. Is the orientation correct?
                 ├─ NO  → Pattern 3 (rotation metadata)
                 └─ YES → Already fine

The Mobile Video Playback Fixer does this triage automatically by reading the file’s container, video codec, pixel format, audio profile, and rotation, then telling you exactly which fix to apply.

One-liner ffprobe triage

If you have FFmpeg locally, this one command surfaces everything you need to identify which pattern hit you:

ffprobe -v error -select_streams v:0 \
  -show_entries stream=codec_name,codec_tag_string,pix_fmt,width,height \
  -show_entries stream_tags=rotate \
  -show_entries format=format_name \
  -of default=nw=1 input.mov

Sample output:

format_name=mov,mp4,m4a,3gp,3g2,mj2
codec_name=hevc
codec_tag_string=hvc1
width=1920
height=1080
pix_fmt=yuv420p10le
TAG:rotate=90

How to read it:

  • codec_name=hevcPattern 1 candidate (no built-in Windows decoder)
  • codec_tag_string=hev1Pattern 2 (audio-only on Apple players)
  • pix_fmt=yuv420p10le is HDR 10-bit (often fails on Windows even with HEVC Extensions — drop to 8-bit)
  • TAG:rotate=90 plus a player that ignores rotation metadata → Pattern 3

Diagnosing a video someone sent you

When a clip arrives from someone else’s iPhone and won’t play right, run the ffprobe triage first — it avoids needless re-encodes.

  1. Run the ffprobe command above to read codec_name / codec_tag_string / pix_fmt / TAG:rotate
  2. Pattern 1 confirmed (HEVC or 10-bit) → transcode to H.264 + yuv420p
  3. Pattern 2 confirmed (hev1) → lossless remux with -c copy -tag:v hvc1
  4. Pattern 3 confirmed (rotate tag + visibly sideways) → bake rotation with -noautorotate + transpose

To do all of this in the browser, drop the file into the Mobile Video Playback Fixer — same triage, same fixes, one click.


Pre-share checklist for non-Apple recipients

Before sending an iPhone clip to a Windows, Android, or browser-only viewer, walk this list once and you’ll prevent ~90% of playback complaints:

  • Video codec is H.264 (avc1), not HEVC
  • pix_fmt is yuv420p (8-bit), not yuv420p10le
  • Audio is AAC LC (HE-AAC and Opus are environment-dependent)
  • Container is .mp4 (.mov triggers warnings on stock Windows players)
  • moov atom is at the start (-movflags +faststart)
  • Portrait videos have their orientation baked into pixels, not stored as metadata
  • (Optional) GPS coordinates stripped with the Strip Video Metadata Tool

Stop the problem at the source on iPhone

You can configure iPhone to record H.264 + AAC + MP4 directly:

  1. Open Settings on your iPhone
  2. Go to Camera → Formats
  3. Choose “Most Compatible” (default is “High Efficiency” = HEVC)

After this, all new recordings are H.264 + AAC and play on Windows out of the box. The trade-off is ~1.5–2× larger file sizes at the same quality.

A common workflow: keep “High Efficiency” for storage, switch to “Most Compatible” before recording things you’ll share with non-Apple users.


FAQ

Q. Why does the same file play fine on my Mac?

A. macOS and iOS ship system-level HEVC decoders and respect rotation metadata. So the HEVC + rotation combo that works seamlessly between Apple devices breaks on Windows / Android, where one or both of those assumptions fail.

Q. Will buying “HEVC Video Extensions” from the Microsoft Store solve it?

A. Partially. HEVC 8-bit usually plays after that, but HDR (10-bit) HEVC can still fail in some Windows setups even with HEVC Extensions installed. For reliable distribution, converting to H.264 is the safer call.

Q. Can I also shrink the file while converting?

A. Yes. Convert to H.264 and pick a lower bitrate / higher CRF. Use the Video Compressor for a target size, or destination-specific tools like Gmail 25MB, Discord, or Slack.

Q. Colors look washed out in my editor

A. That’s an HDR → SDR tone-mapping problem, not one of the three patterns above. HDR footage looks faded when displayed on SDR pipelines. A separate tone-mapping step is required.

Q. I have dozens of iPhone clips to convert

A. Browser tools handle one file at a time. For batch jobs the desktop FFmpeg CLI is more efficient — wrap the CLI commands shown above in a shell loop over your file list.