Mobile Video Playback Fixer
Fix phone videos that won't play properly on a PC (especially Windows): the file won't open, you get audio only, or a portrait video plays sideways. The tool checks the file in your browser and changes only what is needed. No upload; up to 500 MB.
Settings
Equivalent FFmpeg command
CLI command for your current settings. Updates live as you change controls.
ffmpeg -hide_banner -i input.mp4 -map "0:v:0?" -map "0:a:0?" -sn -dn -c:v copy -c:a copy -movflags +faststart fixed.mp4 Useful next tools
How to use
- Add your videoDrop a video file (up to 500 MB) or pick one from your device.
- Click "Analyze video"Reads container, codecs, and rotation, then shows the recommended fix.
- Pick a targetChoose Windows / Chrome (H.264 + AAC) or Apple (keep HEVC when possible). The planned fix updates when you change it.
- Fix & downloadClick Fix with these settings, then download the fixed MP4.
Recommended settings
When it goes wrong
Want to keep HEVC and guarantee Windows playback
Cause: Windows / browser HEVC support depends on OS, codec extensions, and GPU.
Fix: That cannot be guaranteed. For reliable playback, use Windows / Chrome and convert to H.264.
Portrait video rotates twice after burning
Cause: A manual transpose stacks on top of FFmpeg's autorotate or on rotation metadata left in the output.
Fix: The tool skips transpose and lets FFmpeg's autorotate burn the orientation in. On the CLI, re-encode without adding transpose.
Re-encoding is slow
Cause: Re-encode time depends on the video length, the resolution and your device.
Fix: When the analysis says "Lossless remux", nothing is re-encoded and it is quick. If you only watch on Apple devices, the Apple target avoids converting HEVC.
Colors look washed out or blown out
Cause: Converting HDR video to 8-bit H.264 does not tone-map it (adjust brightness and color for SDR screens).
Fix: This tool cannot fix that. Use an editor that converts HDR to SDR.
Files over 500 MB are rejected
Cause: The tool accepts files up to 500 MB.
Fix: Use desktop FFmpeg, or split the file below 500 MB with another app first.
Questions
Why can an MP4 still fail to play?
MP4 is only a container; what matters is the codecs inside. HEVC, VP9 or AV1 video and HE-AAC, Opus or PCM audio do not play 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 they store the stream settings (parameter sets) differently. Apple devices and apps may not play HEVC unless it is tagged `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 command is shown after the fix; replace names such as input.mp4 with your own file names and run it with desktop FFmpeg. One exception: when Metadata only is used with a video re-encode, desktop FFmpeg 8.1 does not keep the rotation flag in the output.
More detail (settings, limits, FFmpeg commands)
What each setting means
Browsers and limits
- Max input size: 500 MB
- Makes files playable; it does not tone-map HDR to SDR or improve picture quality
- Keeping HEVC does not guarantee Windows / browser playback (environment-dependent)
The same job with the FFmpeg command line
ffmpeg -i input.mov -map 0:v:0? -map 0:a:0? -c copy -movflags +faststart output.mp4 ffmpeg -i input.mov -map 0:v:0? -map 0:a:0? -c copy -tag:v hvc1 -movflags +faststart output.mp4 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 ffmpeg -i input.mp4 -map 0:v:0? -map 0:a:0? -c:v libx264 -preset veryfast -crf 23 -pix_fmt yuv420p -c:a copy -movflags +faststart output.mp4