Files and privacy
Input kind | Android | iOS |
|---|---|---|
Readable absolute local file path | Accepted | Accepted |
Readable | Accepted | Accepted |
| Accepted with a valid read grant | Unsupported |
| Unsupported directly | Unsupported directly; export/copy to a readable local file first |
HTTP or HTTPS URL | Download to local storage first | Download to local storage first |
Relative path or asset ID alone | Not an accepted local file path | Not an accepted local file path |
Keep source files and Android read grants available for the entire operation, including metadata and thumbnail creation. Export/copy iOS Photos assets to readable local files first. Download remote content before passing it to the library.
Outputs live under the app cache's media-transformer subdirectory. Use returned paths rather than hardcoding cache locations. The OS can remove cached files; copy or save them to permanent storage before long-term use.
Existing outputs require overwrite: true. Temporary exports and atomic publication preserve previous completed files if a replacement fails or is cancelled. Input/output collisions and output destinations that are symbolic links or directories are rejected. This is not a blanket rejection of all input symlinks or a permanent-backup guarantee.
The library processes video on device through native media APIs, without uploading it to a processing service or requiring a service API key. Your host app controls its own analytics, uploads, and privacy policy. Processing still needs local storage and device CPU/codec resources.
Pickers, read permissions, Photos exporting, gallery saving, downloads, uploads, durable storage, and file cleanup belong to your app or separate integrations. The library does not request storage/photo permissions and has no picker, copier, delete-output, or cache-clear export. The example app's CameraRoll integration is separate from this library.