Platform behavior
Area | Android | iOS |
|---|---|---|
Native implementation | Media3 Transformer | AVFoundation reader/writer |
Library baseline | API 24+ | Implementation targets iOS 15.1+; React Native can require a higher target |
Output | MP4, H.264 by default; optional HEVC | MP4, H.264 by default; optional HEVC |
Audio output when present and not muted | AAC | AAC |
Default audio bitrate | 128000 bits per second, or selected preset's value | 128000 bits per second, or selected preset's value |
Default audio sample rate/channels | Source unless explicitly overridden | 44100 Hz, stereo unless explicitly overridden |
Multiple audio tracks | Media3 selects source audio | Source audio tracks are mixed |
Requested channel conversion | Mono/stereo controls; input mixing matrices cover 1–6 channels | Mono/stereo AAC conversion through AVFoundation |
Accepted sources | File paths/URLs and granted content URIs | Local file paths/URLs |
Encoder availability | Device dependent | Device dependent |
Device decoders determine accepted input formats. Encoders determine HEVC, bitrate, frame-rate, and audio-setting support; unsupported inputs/settings reject. There is no universal guaranteed extension list or automatic codec fallback.
One video track is exported. iOS mixes source audio tracks; Android Media3 selects source audio. Subtitles, chapters, location, and other source metadata are not preserved. HDR/Dolby Vision preservation and consistent tone mapping across devices are not guaranteed.
Re-encoding an efficient source can produce a larger file. Compare sizes and inspect results before replacing originals. No preset guarantees a size reduction, exact output size, speed, or lossless output.
Version 0.1.0 exports MP4 video (H.264 or HEVC, with AAC when audio is retained) and JPEG thumbnails. It has no public crop, merge, overlay, filter, playback, image-compression, audio-only, GIF, rotation-editing, subtitle-extraction, or arbitrary track-selection API. Preserving source orientation does not provide rotation editing.