FFmpeg Cookbook

Mobile Video Playback Fixer

Analyze a phone video and fix playback issues on PC (Windows / Chrome) with the smallest necessary change.

Local processing only — your file never leaves the browser
📱
Drag & drop a video, or tap to select
MP4 / MOV / MKV / WebM, up to 500 MB
🎬
Settings
Container Video Audio Rotation
Processing… 0%
Download fixed video
FFmpeg command used

Useful next tools

Popular uses
iPhone video not playing on WindowsPortrait video plays sideways fixHEVC/VP9/AV1 compatibility

What this tool does

  • Auto-selects the minimal fix: remux (`-c copy`) / AAC-only / H.264-only / full transcode
  • Detects HEVC (H.265), VP9, AV1, ProRes, DNxHR and other incompatible codecs
  • Solves the iPhone portrait "plays sideways" problem (metadata-only or burn-in)
  • Handles `hvc1` vs `hev1` tagging automatically (Apple mode rewrites to hvc1)
  • Shows the exact FFmpeg command — easy to reproduce on CLI or batch

How to use

  1. 1

    Add your video

    Drop a video file (up to 500 MB) or pick one from your device.

  2. 2

    Click "Analyze video"

    Reads container, codecs, and rotation, then shows the recommended fix.

  3. 3

    Pick a target

    Windows / Chrome (recommended) or Apple (keep HEVC).

  4. 4

    Fix & download

    Progress bar updates live, then download the fixed MP4 and copy the command if needed.

What each setting means

Compatibility target
Windows / Chrome (H.264 + AAC) for maximum compatibility. Apple (keep HEVC) prefers remux for speed and lossless output, though Windows HEVC playback is environment-dependent.
Orientation fix
Auto = burn for Windows, keep metadata for Apple. Metadata only = fast and lossless but some players ignore it. Burn into pixels = always correct but requires video re-encoding.
Quality (on video re-encode)
High = CRF 20 (best quality, larger) / Balanced = CRF 23 (recommended) / Smaller = CRF 28 (smallest).
Stereo downmix
Downmix 5.1/7.1 to 2-channel stereo. Improves playback reliability on older players and certain devices.

Recommended settings

iPhone video won't play on Windows / audio only
Windows / Chrome + Auto
Usually caused by HEVC or 10-bit pix_fmt. Converting to H.264 + AAC has the highest success rate.
Portrait video plays sideways
Windows / Chrome + Burn into pixels
Some players ignore rotation metadata. Burning guarantees the correct orientation.
Android VP9 / AV1 won't open in desktop editors
Windows / Chrome + Auto
Most editors reject VP9 / AV1. H.264 fixes it.
ProRes / DNxHR needs a delivery MP4
Windows / Chrome + Balanced
Intermediate codecs have limited playback support. H.264 + AAC is the safe bet for distribution.
Sharing between Apple devices (keep HEVC)
Apple + Auto
Remux finishes in seconds with no quality loss. The hvc1 tag is rewritten automatically when needed.

Common pitfalls

Symptom: Want to keep HEVC and guarantee Windows playback

Cause: Windows / browser HEVC support depends on OS, codec extensions, and GPU.

Fix: Not reliable. For "guaranteed" playback, use the Windows target and convert to H.264.

Symptom: Portrait video rotates twice after burning

Cause: Applying transpose without `-noautorotate` causes FFmpeg to auto-rotate AND apply the filter.

Fix: The tool adds `-noautorotate` automatically. If you reproduce on CLI, do the same.

Symptom: Re-encoding is slow

Cause: Re-encode time scales with input size and CPU.

Fix: Try remux first (when the analysis shows "A_REMUX") and re-encode only what's necessary.

Symptom: Colors look washed out or blown out

Cause: HDR → SDR tone mapping is a separate problem from playback compatibility.

Fix: This tool focuses on playback. HDR correction will be added in a future tool.

Symptom: Files over 500 MB are rejected

Cause: Browser memory limit.

Fix: Trim first or use desktop FFmpeg for large inputs.

Equivalent FFmpeg commands

Reference commands you can run on the desktop FFmpeg CLI.

Lossless MOV → MP4 remux (+faststart)
ffmpeg -i input.mov -map 0:v:0? -map 0:a:0? -c copy -movflags +faststart output.mp4
Keep HEVC but force hvc1 tag (Apple-friendly, lossless)
ffmpeg -i input.mov -map 0:v:0? -map 0:a:0? -c copy -tag:v hvc1 -movflags +faststart output.mp4
Most compatible output (H.264 + AAC)
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
Burn orientation (avoid metadata-only rotation issues)
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
Without -noautorotate, FFmpeg rotates twice.

Browser support & limits

  • Max input size: 500 MB (browser-only processing)
  • Targets playback compatibility, not HDR tone mapping or advanced restoration
  • Keeping HEVC does not guarantee Windows / browser playback (environment-dependent)

Privacy

This tool runs ffmpeg.wasm directly in your browser. Files never leave your device — everything runs locally. Read the privacy policy →

Frequently asked questions

Why can an MP4 still fail to play?

MP4 is a container. The internal codecs matter. HEVC / VP9 / AV1, HE-AAC / Opus / PCM audio, or rotation metadata can break playback on some systems.

What is remux (-c copy)? Does it reduce quality?

Remux rewrites the container while copying streams as-is. No re-encoding, so no quality loss.

Why does portrait video sometimes play sideways?

Phones often store orientation as metadata. Some players ignore it. Burning orientation into pixels fixes it more reliably.

What's the difference between hvc1 and hev1?

Both are HEVC in MP4, but the tag indicates different parameter set storage. Apple workflows often require `hvc1`.

Can I fix audio only?

Yes. If video is already compatible, the tool keeps it as-is and only transcodes audio to AAC.

Is my file uploaded?

No. Everything runs locally in your browser.

Can it fail?

Yes — corrupt inputs, unusual stream layouts, or memory constraints can cause failures. Try a shorter clip first.

Can I reuse the command on CLI?

Yes. The exact FFmpeg command is shown after the fix. Copy and run it locally to reproduce or batch.

Related tools

Related FFmpeg recipes