Features
Everything it does,
and exactly how.
No feature list padding and no "pro" column. This is the whole app — all of it free, all of it on your phone.
Compression
Pick how small in one of six ways. The estimate updates live, before anything is encoded.
- Ninja Auto
- Reads each video's bitrate, resolution and codec, then picks the biggest saving that still looks sharp.
- Quality
- Five steps you can name: Extreme, High, Balanced, Small, Tiny.
- Target size
- "Fit this into 25 MB" — the one for attachments and upload caps.
- Percentage
- Aim each video at a share of its own size. Useful for a mixed batch.
- Resolution
- Pick the height, 2160p down to 240p; bitrate follows.
- Manual bitrate
- For when you already know the number.
Hardware encoders do the work, so a 4K clip takes minutes. When a device's encoder refuses a file, Ninja steps down a four-rung fallback ladder and finishes in software instead of failing.

Share presets
Each preset carries its platform's size cap and its resolution and frame-rate ceilings, so the platform has no reason to re-compress what you send.
| Preset | Size cap | Max height | Max fps |
|---|---|---|---|
| 16 MB | 720p | 30 | |
| Telegram | 2 GB | 1080p | — |
| Discord | 10 MB | 720p | — |
| Discord Nitro | 500 MB | 1080p | — |
| iMessage / MMS | 3.5 MB | 480p | — |
| Gmail | 25 MB | 1080p | — |
| Outlook | 20 MB | 1080p | — |
| Yahoo Mail | 25 MB | 1080p | — |
| Instagram Feed | 650 MB | 1080p | 30 |
| Instagram Reels | 650 MB | 1920p | 30 |
| Instagram Story | 650 MB | 1920p | 30 |
| TikTok | 287 MB | 1920p | 60 |
| YouTube Shorts | 2 GB | 1920p | 60 |
| X (Twitter) | 512 MB | 1080p | — |
| 5 GB | 1080p | — |
Caps are the values each preset targets in the app, sized to the platforms' published limits as of mid-2026. Platforms change them; the guides track the current numbers, and Target size takes any value you type.

Formats
12 containers
MP4 · MKV · MOV · WebM · AVI · WMV · FLV · 3GP · MPEG · TS · M4V · OGV
6 video codecs
H.264 · H.265 / HEVC · VP8 · VP9 · AV1 · MPEG-4
H.264 and HEVC encode through your phone's hardware encoders. Ninja's FFmpeg build contains no x264, x265 or xvid — see open source for why.
Tools
Fourteen of them, none locked. Watermarks are your text or your image — Ninja never adds its own.
Convert
MP4 · MKV · WebM · MOV and more
Trim
Cut the start and end
Cut the middle
Remove sections, join the rest
Crop
Free or 16:9 · 9:16 · 1:1 · 4:5 · 4:3 · 2.35:1
Merge
Join clips into one, in your order
Speed
0.25× – 4×, pitch preserved
Reverse
Play it backwards, sound and all
Rotate / Flip
90° steps and mirror
Mute
Strip the audio track
Watermark
Your text or your image, nine positions
Subtitles
Burn in, or add a selectable track
Extract audio
MP3 · M4A · WAV · FLAC · OGG
Grab a frame
Scrub to a moment, save it as PNG or JPG
GIF maker
Palette-optimized · dithering and loop count
Your originals
An original can't be moved, replaced or deleted until the compressed copy passes every one of these, in order. There's no partial credit.
- 01It existsOutput file exists and is larger than 4 KB
- 02It parsesContainer parses with at least one video stream
- 03Same lengthDuration within max(±0.75 s, ±1%) of the expected length
- 04Sane videoVideo stream has codec, width and height
- 05Audio survivedAudio stream present and decodable when expected
- 06Frames decodeFrames decode at start, middle and final keyframe
- 07In your galleryOutput registered in the media library and readable
- 08Actually smallerOutput is smaller than the original
- 09Finished cleanlyJob completed successfully and was not cancelled
Then, one of five outcomes — your choice, per batch or as a default:
- Keep both
- Original untouched.
- Move to Ninja Vault
- The original moves to an in-app vault. Restore it any time until you empty it.
- Move to system Trash
- The original moves to your phone's Trash, restorable for 30 days.
- Replace original
- The compressed video takes the original's place, name and date — so your gallery timeline doesn't break.
- Delete permanently
- The original is gone immediately. This cannot be undone.
One confirmation per batch, a ten-second undo, and a savings threshold — 20% by default — below which both files are kept regardless of what you chose.
Reliability
- Background jobs
- A foreground service keeps long batches running while you use other apps.
- Pause and resume
- From the notification, or in the app.
- Thermal pause
- If the phone gets hot, the queue pauses between files and tells you why.
- Resume after a kill
- If the system closes Ninja mid-batch, it offers to pick up what it lost.
- Share into Ninja
- Send a video from any gallery or messenger straight into Ninja.
- History
- Searchable, with in-app playback and a same-timestamp before/after comparison.
Privacy
No analytics, no crash reporting, no advertising ID, no sign-in. The Android app doesn't request the Internet permission, so the system itself keeps it offline. When something goes wrong, the log stays on your phone until you choose to share it. The full policy.
Details
- Themes
- Dark and light — both hand-tuned rather than inverted, and contrast-checked.
- Languages
- English, Español, Português, Deutsch, Français, हिन्दी, Bahasa Indonesia, 日本語, Русский.
- Where results go
- Your gallery, next to the original, or a folder you choose.
- An honest limit
- Reverse is capped at one minute: it holds every frame in memory, and we'd rather refuse than crash.