Use this guide when your adopter app enables video or audio processing. The AV runtime contract is small and explicit:
- install
FFmpeg >= 6.0for the target platform - run
mix rindle.doctor - only then start background jobs that process AV variants
README.md stays the narrow quickstart. guides/getting_started.md
is the canonical deep onboarding guide. This file is the shared install/runtime
matrix both of those entrypoints link to.
Verify The Runtime
Run this in the adopter app after mix deps.get and after installing FFmpeg:
mix rindle.doctor
The command must pass before you debug Oban workers, variant failures, or delivery URLs.
FFmpeg Install Matrix
macOS (Homebrew)
brew install ffmpeg
mix rindle.doctor
Ubuntu / Debian (apt)
sudo apt-get update
sudo apt-get install -y ffmpeg
mix rindle.doctor
Alpine (apk)
apk add --no-cache ffmpeg
mix rindle.doctor
Fly.io Dockerfile
Add FFmpeg to the image build:
RUN apt-get update \
&& apt-get install -y ffmpeg \
&& rm -rf /var/lib/apt/lists/*Run mix rindle.doctor during build or release validation before the app
starts workers.
Heroku Aptfile
Add an Aptfile at the app root with:
ffmpegThen run mix rindle.doctor as part of release validation.
Render Dockerfile
Add FFmpeg to the Render image build:
RUN apt-get update \
&& apt-get install -y ffmpeg \
&& rm -rf /var/lib/apt/lists/*Run mix rindle.doctor in the build or pre-deploy command.
GitHub Actions
Use FedericoCarboni/setup-ffmpeg so CI exercises the same runtime posture:
- name: Install FFmpeg
uses: FedericoCarboni/setup-ffmpeg@v3
with:
ffmpeg-version: 6.0
- name: Verify Rindle runtime
run: mix rindle.doctorCanonical AV Profile Shape
The onboarding story stays on the stock web_720p plus poster surface. The
explicit variant declarations are:
variants: [
web_720p: [kind: :video, preset: :web_720p],
poster: [kind: :image, preset: :video_poster_scene]
]That is the same public posture taught in README.md and
guides/getting_started.md.