munim-ffmpeg 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +27 -0
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -68,6 +68,7 @@
68
68
  - [📚 Documentation](#-documentation)
69
69
  - [🚀 Features](#-features)
70
70
  - [Platform support matrix](#platform-support-matrix)
71
+ - [Where this is verified](#where-this-is-verified)
71
72
  - [Bundled FFmpeg builds](#bundled-ffmpeg-builds)
72
73
  - [📦 Installation](#-installation)
73
74
  - [Working with media paths](#working-with-media-paths)
@@ -134,6 +135,32 @@
134
135
 
135
136
  Codec availability is determined by the native FFmpeg builds described in [Bundled FFmpeg builds](#bundled-ffmpeg-builds). Do not assume every FFmpeg codec or external library is present.
136
137
 
138
+ ## Where this is verified
139
+
140
+ Every release runs the example's 24-check device suite. For 0.3.x:
141
+
142
+ | Target | Result |
143
+ | --- | --- |
144
+ | iPad Air (M3), iOS 26 | 24/24 |
145
+ | iOS Simulator, arm64 | 24/24 |
146
+ | Galaxy A14 5G, arm64-v8a | 24/24 |
147
+ | Android emulator, arm64 | 13/24 — see below |
148
+ | Android `armeabi-v7a`, `x86_64` | Built and statically checked, not executed |
149
+
150
+ `x86_64` cannot be run on an Apple Silicon machine: the Android emulator refuses non-native system images, and no x86_64 hardware was available. Both remaining ABIs were verified to be correct ELF binaries with the right architecture, the expected JNI exports, only system libraries unresolved, and the same FFmpeg 9.0.1 and codec set as arm64.
151
+
152
+ ### Android emulators cannot encode video
153
+
154
+ An Android emulator has no working MediaCodec **encoder**. `h264_mediacodec` and `hevc_mediacodec` report success and produce a file containing no frames, so anything downstream of an encode fails. Everything else — audio encoding, filters, FFprobe, muxing, cancellation, protocols — works normally there.
155
+
156
+ This is an emulator limitation, not a package one, but it is worth knowing before debugging: **test video encoding on a physical device**. If you need encoding to work in an emulator, encode to a software codec the build does provide:
157
+
158
+ ```typescript
159
+ const encoder = await pickEncoder(['h264_videotoolbox', 'h264_mediacodec', 'mpeg4'])
160
+ ```
161
+
162
+ `mpeg4` and `libvpx-vp9` are software encoders and work everywhere. There is deliberately no software H.264 encoder: `libx264` is GPL, and bundling it would make every app using this package GPL too.
163
+
137
164
  ## Bundled FFmpeg builds
138
165
 
139
166
  Both platforms run **FFmpeg 9.0.1**, built from [ffmpeg.org](https://www.ffmpeg.org/) by the scripts in [`scripts/ffmpeg/`](./scripts/ffmpeg). There is no FFmpegKit here: that project was retired in 2025 and pinned to FFmpeg 6.0.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "munim-ffmpeg",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Fast FFmpeg and FFprobe for Expo and React Native, powered by Nitro Modules",
5
5
  "main": "lib/index",
6
6
  "module": "lib/index",