Join our Discord Server
Avinash Bendigeri Avinash is a developer-turned Technical writer skilled in core content creation. He has an excellent track record of blogging in areas like Docker, Kubernetes, IoT and AI.

How to Use FFmpeg in Docker: Pre-built Image vs. Custom Dockerfile

1 min read

Ffmpeg is a powerful multimedia framework, but installing it directly on your system can lead to dependency conflicts. Docker offers a cleaner solution: running ffmpeg within a container. This blog will guide you through the process in two approaches:

Using a Pre-built ffmpeg Docker Image

Pull the Image:

Open your terminal and use the following command to pull the official ffmpeg image created by jrottenberg:

docker pull jrottenberg/ffmpeg

Run a Container:

Now, to run a container from this image and use ffmpeg commands inside it, use this command:

docker run -it jrottenberg/ffmpeg  bash

This will start a container, launch a bash terminal within it, and provide access to ffmpeg.

Use ffmpeg:

Once inside the container, you can use ffmpeg commands just like you would on your system. For example:

ffmpeg -i input.mp4 output.avi

This will convert the video file “input.mp4” to “output.avi”.

If the video file is on your host machine and you want to mount it directly, then the recommended way to use this command directly:

docker run --rm -v $(pwd):/data jrottenberg/ffmpeg ffmpeg -i /data/input.mp4 /data/output.avi

This command achieves the same conversion as before, but it runs ffmpeg within a temporary Docker container. The -v $(pwd):/data part mounts your current directory ($(pwd)) as /data within the container, allowing you to access your files using the /data path in the ffmpeg command.

Exit the Container:

When you’re done, simply type exit to exit the container and go back to your terminal.

Method 2: Building a Custom Dockerfile with ffmpeg

Create a Dockerfile:

Create a text file named Dockerfile with the following content:

FROM ubuntu:latest

RUN apt-get update && apt-get install -y ffmpeg

This Dockerfile specifies using the Ubuntu image as the base and then installing ffmpeg during the build process.

Build the Image:

In your terminal, navigate to the directory containing the Dockerfile and run:

docker build -t my-ffmpeg-image .

This builds a custom image named “my-ffmpeg-image” with ffmpeg installed.

Run a Container from your Image:

Use the following command to run a container from your newly built image:

docker run -it my-ffmpeg-image bash

This will start a container based on your custom image, providing access to ffmpeg within the container.

Choosing the Right Approach:

  • If you need ffmpeg occasionally, using the pre-built image (Approach 1) is quicker.
  • If you need more control over the ffmpeg version or want to include other tools, building a custom image (Approach 2) is better.

Additional Considerations:

  • You can mount volumes to share files between your system and the container for both approaches.
  • Remember to replace “input.mp4” and “output.avi” with your actual file names.

This blog equips you to leverage ffmpeg within Docker containers, offering a clean and isolated environment for your multimedia processing tasks.

Have Queries? Join https://launchpass.com/collabnix

Avinash Bendigeri Avinash is a developer-turned Technical writer skilled in core content creation. He has an excellent track record of blogging in areas like Docker, Kubernetes, IoT and AI.
Join our Discord Server
Index