Sign inSign up

runsascoded/ffmpeg

By runsascoded

•Updated almost 6 years ago

Image
0

1.6K

runsascoded/ffmpeg repository overview

⁠FFmpeg Docker images

Docker images containing FFmpeg⁠ built from source and pushed to Docker Hub via GitHub Actions.

⁠Run ffmpeg without installing ffmpeg

$ docker run runsascoded/ffmpeg -version
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/root/bin --enable-gpl --enable-gnutls --enable-libaom --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
libavutil      56. 51.100 / 56. 51.100
libavcodec     58. 91.100 / 58. 91.100
libavformat    58. 45.100 / 58. 45.100
libavdevice    58. 10.100 / 58. 10.100
libavfilter     7. 85.100 /  7. 85.100
libswscale      5.  7.100 /  5.  7.100
libswresample   3.  7.100 /  3.  7.100
libpostproc    55.  7.100 / 55.  7.100

These Docker images give you access to specific ffmpeg releases, built in GitHub Actions that you can audit⁠.

⁠Passing arguments

Any arguments you'd normally pass to ffmpeg can be sent to docker run runsascoded/ffmpeg instead.

However, input and output paths must additionally be mounted into the container. For example, if your inputs and outputs are in your current directory ($PWD), you can just mount it in (here to /mnt, and setting that as the working directory inside the container):

# down-sample `./my_video.mp4` to 10Mbps
$ docker run -v "$PWD:/mnt" -w /mnt runsascoded/ffmpeg -i my_video.mp4 -b:v 10M my_video_10M.mp4

This is analogous to the undockerized ffmpeg command:

ffmpeg -i my_video.mp4 -b:v 10M my_video_10M.mp4

If you run it this way frequently (operating on paths in the current directory), you could define a bash ffmpeg function to abstract the boilerplate away:

ffmpeg() {
  docker run -v "$PWD:/mnt" -w /mnt runsascoded/ffmpeg "$@"
}

then pretend you're running a locally-installed ffmpeg, as above:

ffmpeg -i my_video.mp4 -b:v 10M my_video_10M.mp4

⁠Source

See runsascoded/FFmpeg⁠:

Tag summary

Content type

Image

Digest

Size

853.8 MB

Last updated

almost 6 years ago

docker pull runsascoded/ffmpeg