https://linear.app/comm/issue/ENG-10314/migrate-comm-app-to-use-new-media-module
Changes:
- on the native side we check progress every 200ms and send an event to the js side. The JS side then calls the callback with the progress
- we can specify the profile and bitrate, we can't specify fps though
- width and height is mandatory to keep it simple (ios requires it)
- I'm returning some basic stats (speed, size and duration) but some are missing compared to ffmpeg implementation because I don't see much sense in collecting them. However I can add them if necessary (should be easy on Android, more complicated on iOS)
I'm using AVWriter instead of AVAssetExportSession. Using AVWriter is more complicated and messy but allows for more options.
Depends on D14478