Custom Docker images

The Core-FFmpeg bundle uses Docker's multi-stage process so that FFmpeg and the Core can be updated and maintained independently.

When building the Core-FFmpeg bundle, an FFmpeg image is used. The previously created Golang libraries and folder structures are copied into this image.

This process speeds up the creation of the final Core-FFmpeg bundle, as existing or previously created images can be used, and compiling all the code is no longer required.

The following base images are available:

  • docker.io/datarhei/base:alpine-ffmpeg-latest

  • docker.io/datarhei/base:alpine-ffmpeg-rpi-latest

  • docker.io/datarhei/base:ubuntu-ffmpeg-cuda-latest

  • docker.io/datarhei/base:ubuntu-ffmpeg-vaapi-latest

  • docker.io/datarhei/base:alpine-core-latest

  • docker.io/datarhei/base:ubuntu-core-latest

Specific versions are available on the Docker website:

1. Create a custom FFmpeg image

1.1 Clone the FFmpeg build files

Repository

1.2 Switch to the cloned folder

1.2 Change a Dockerfile

Dockerfile without --disable-debug and --disable-doc.

1.3 Build a custom image

Arguments:

  • default Dockerfile: Dockerfile.alpine Image name: datarhei/base:alpine-ffmpeg-latest

  • rpi Dockerfile: Dockerfile.alpine.rpi Image name: datarhei/base:alpine-ffmpeg-rpi-latest

  • cuda Dockerfile: Dockerfile.ubuntu.cuda Image name: datarhei/base:ubuntu-ffmpeg-cuda-latest

  • vaapi Dockerfile: Dockerfile.ubuntu.vaapi Image name: datarhei/base:alpine-ffmpeg-vaapi-latest

2. Create a custom Core image

2.1 Clone the Core build files

Repository

2.2 Switch into the cloned folder

2.3 Build a custom image

3. Create a custom Core-FFmpeg bundle

You can find the Dockerfile for the bundle (Dockerfile.bundle) in the cloned Core repository.

3.1 Build a custom image

Docker supports multi-architecture images via --platform linux/amd64,linux/arm64,linux/arm/v7.

Last updated

Was this helpful?