Files
searchi/tools/media-runtime/README.md
T

37 lines
1.8 KiB
Markdown
Raw Normal View History

# Standalone media decoder tools
The desktop distribution must include FFmpeg and FFprobe alongside its Google
worker. End users should not install tools or configure paths. Development and
release preparation use:
```sh
python tools/media-runtime/provision.py --stage
python -m unittest discover -s tools/media-runtime -p 'test_*.py'
```
The manifest pins a dated BtbN release, exact archive size, and published SHA-256.
Provisioning checks the cache or downloads/verifies the archive, extracts only the
two standalone decoder executables and notices, and stages them under the native
resources directory. Executables and archives are ignored by Git. No global
installation occurs. Movie/audio decoding runs in bounded subprocesses.
Windows x86-64/ARM64 and Linux x86-64/ARM64 have pinned artifacts. Only Windows
x86-64 and Linux x86-64 have executed CPU checks. Linux checks verify pinned
archive provenance, both tool versions, a four-second speech WAV probe and
decoding to a null sink with hardware acceleration disabled. This does not
certify playback or a codec matrix; see
[Linux evidence](../../docs/evidence/linux-media-runtime.json).
A vetted macOS decoder build/staging path remains
a release gate; generic media code can accept native tools through explicit paths.
The selected build is FFmpeg 9.0.2 with LGPL configuration. Keep original notices
and corresponding source/build provenance with distribution; installer licensing
and all-platform execution are still open production gates.
Source/build provenance:
- https://github.com/BtbN/FFmpeg-Builds/releases/tag/autobuild-2026-10-12-13-12
- https://github.com/BtbN/FFmpeg-Builds
- https://ffmpeg.org/legal.html
FFmpeg capabilities vary by build. An unsupported or corrupt file must report an
error while remaining filename-searchable; it must never freeze search or be
silently reported as fully indexed.