[native] Replace react-native-ffmpeg with ffmpeg-kit-react-native
Summary:
This diff replaces our use of react-native-ffmpeg, which is now deprecated in favor of ffmpeg-kit-react-native.
It should also address the repeated failures we've seen due to the com.arthenica:mobile-ffmpeg-min-gpl:4.3.1.LTS artifact randomly going missing on occasion: ENG-4177, ENG-8959, and ENG-8989.
Test Plan:
- Confirmed I could build and bundle the app on iOS and Android
- On release builds of both iOS and Android, tested the four usages of ffmpeg in our codebase, all called from native/media/ffmpeg.js:
- getVideoInfo
- transcodeVideo
- generateThumbnail
- hasMultipleFrames, which actually isn't in active use in our codebase. To test it I had to use this patch to make it so we transcode GIFs if they have multiple frames. It correctly ascertained whether the GIFs had multiple frames on both iOS and Android, but transcoding failed afterwards, so I left this functionality disabled.
Working on testing the actual functionality, but I want to see if CI passes first
Reviewers: will
Reviewed By: will
Subscribers: tomek
Differential Revision: https://phab.comm.dev/D13021