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.
- package/README.md +27 -0
- 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.
|