From a639ac21c2a8b34dd19dfdccd1d897e14101020a Mon Sep 17 00:00:00 2001 From: mmattbtw Date: Thu, 19 Feb 2026 23:56:46 -0600 Subject: [PATCH] ffmpeg --- Dockerfile | 19 ++++++++----------- README.md | 4 ++-- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 310bf7f..b5a8c60 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* RUN set -eu; \ - mkdir -p /out/sidecar/chromium /out/sidecar/ffmpeg; \ + mkdir -p /out/sidecar/chromium; \ chromium_manifest_url="https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json"; \ chromium_url="$(curl -fsSL "${chromium_manifest_url}" | jq -r '.channels.Stable.downloads["chrome-headless-shell"][] | select(.platform == "linux64") | .url')"; \ test -n "${chromium_url}" && test "${chromium_url}" != "null"; \ @@ -32,14 +32,7 @@ RUN set -eu; \ chromium_root="$(dirname "${chromium_source}")"; \ cp -R "${chromium_root}"/. /out/sidecar/chromium/; \ cp "${chromium_source}" /out/sidecar/chromium/headless_shell; \ - chmod +x /out/sidecar/chromium/headless_shell; \ - ffmpeg_url="https://ffmpeg.martin-riedl.de/redirect/latest/linux/amd64/release/ffmpeg.zip"; \ - curl -fL "${ffmpeg_url}" -o /tmp/ffmpeg.zip; \ - unzip -q /tmp/ffmpeg.zip -d /tmp/ffmpeg; \ - ffmpeg_source="$(find /tmp/ffmpeg -type f -name ffmpeg | head -n 1)"; \ - test -n "${ffmpeg_source}"; \ - cp "${ffmpeg_source}" /out/sidecar/ffmpeg/ffmpeg; \ - chmod +x /out/sidecar/ffmpeg/ffmpeg + chmod +x /out/sidecar/chromium/headless_shell FROM debian:bookworm-slim AS runtime-base WORKDIR /app @@ -94,10 +87,14 @@ ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] FROM runtime-base AS full COPY --from=sidecar-fetch /out/sidecar /opt/sidecar -RUN chown -R browserstream:browserstream /opt/sidecar +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ffmpeg \ + && rm -rf /var/lib/apt/lists/* \ + && chown -R browserstream:browserstream /opt/sidecar ENV BROWSER_STREAM_CHROMIUM_PATH=/opt/sidecar/chromium/headless_shell -ENV BROWSER_STREAM_FFMPEG_PATH=/opt/sidecar/ffmpeg/ffmpeg +ENV BROWSER_STREAM_FFMPEG_PATH=/usr/bin/ffmpeg USER browserstream diff --git a/README.md b/README.md index ca484a4..eabe159 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ cargo run -- \ `docker-compose.yml` defines two image variants: - `slim` (default service `browser-stream`): uses system `chromium` + `ffmpeg` packages in the container. -- `full` (service `browser-stream-full`): bundles sidecar binaries in image at `/opt/sidecar/...`. +- `full` (service `browser-stream-full`): bundles Chromium sidecar at `/opt/sidecar/chromium/...` and uses distro `ffmpeg`. Build and run `slim` (default): @@ -107,7 +107,7 @@ VERBOSE=0 Binary resolution in containers: - `slim`: auto-detects system `chromium`/`chromium-browser` and `ffmpeg`. -- `full`: uses bundled sidecars via `BROWSER_STREAM_CHROMIUM_PATH` and `BROWSER_STREAM_FFMPEG_PATH`. +- `full`: uses bundled Chromium sidecar via `BROWSER_STREAM_CHROMIUM_PATH` and system `ffmpeg` via `BROWSER_STREAM_FFMPEG_PATH=/usr/bin/ffmpeg`. No sidecar downloads are required for either image. Both images set `BROWSER_STREAM_NO_SANDBOX=1` for Chromium compatibility in containers. -- 2.51.2