48 lines
2.1 KiB
Markdown
48 lines
2.1 KiB
Markdown
# FFmpeg CI Guide
|
|
|
|
This file describes how to provide a vetted FFmpeg build to the CI workflow and how the workflow expects archive layouts.
|
|
|
|
## Secrets (recommended)
|
|
- `FFMPEG_URL` — primary URL the workflow will download. Use a stable URL to a signed/hosted FFmpeg build.
|
|
- `FFMPEG_URL_LINUX` — optional override for Linux runners.
|
|
- `FFMPEG_URL_WINDOWS` — optional override for Windows runners.
|
|
- `FFMPEG_URL_MACOS` — optional override for macOS runners.
|
|
|
|
If per-OS secrets are present, they take precedence over `FFMPEG_URL`.
|
|
|
|
## Recommended FFmpeg sources
|
|
- Use official static builds from a trusted provider (example):
|
|
- Windows (ffmpeg.exe): https://www.gyan.dev/ffmpeg/builds/
|
|
- Linux (static): https://johnvansickle.com/ffmpeg/
|
|
- macOS (static): https://evermeet.cx/ffmpeg/
|
|
|
|
Prefer hosting a copy in your own artifact store (S3, GitHub Releases) so you control the binary used in CI.
|
|
|
|
## Expected archive layouts
|
|
The workflow will attempt to extract common archive formats. Recommended layouts:
|
|
|
|
- Zip containing `ffmpeg.exe` at the archive root
|
|
- Example: `ffmpeg-2025-01-01.zip` -> `ffmpeg.exe` (root)
|
|
|
|
- Tar.gz or tar.xz containing an `ffmpeg` binary at the archive root or inside a single top-level folder
|
|
- Example: `ffmpeg-2025/ffmpeg` or `ffmpeg`
|
|
|
|
- Raw binary: a direct link to the `ffmpeg` executable is also supported (the workflow will make it executable).
|
|
|
|
If your archive nests the binary deep inside several folders, consider publishing a trimmed archive that places `ffmpeg` at the root for easier CI extraction.
|
|
|
|
## Verifying locally
|
|
To test the workflow steps locally, download your chosen archive and ensure running the binary prints version information:
|
|
|
|
```bash
|
|
# on Linux/macOS
|
|
./ffmpeg -version
|
|
|
|
# on Windows (PowerShell)
|
|
.\ffmpeg.exe -version
|
|
```
|
|
|
|
## Notes for maintainers
|
|
- If you need the workflow to handle a custom archive layout, I can update the extraction step (`.github/workflows/ffmpeg-preflight.yml`) to locate the binary path inside the archive and move it to `src-tauri/resources/ffmpeg(.exe)`.
|
|
- After adding secrets, open a PR to trigger the workflow and verify the `FFmpeg preflight OK` message in the CI logs.
|