Sign inSign up

outlyernet/ffmpeg-nonfree

By outlyernet

•Updated about 4 years ago

A dockerized FFmpeg compiled with non-free codecs in.

Image
1

2.3K

outlyernet/ffmpeg-nonfree repository overview

Docker Image Size (latest by date) Docker Cloud Build Status MicroBadger Layers GitHub last commit MIT License

⁠FFmpeg non-free in Docker

A dockerized FFmpeg⁠ compiled with non-free codecs in.
A script for easy invocation is included.

For Linux distributions where the included FFmpeg package isn't compiled with non-free codecs included.

This image pulls Deb Multimedia⁠'s ffmpeg package, which includes codecs such as Fraunhofer FDK AAC (aka libfdk_aac, the highest-quality AAC encoder in FFmpeg as of this writing⁠), missing from most compilations.

⁠Wrapper script installation

You can install and uninstall a wrapper script with the included makefile for easy access to the image's ffmpeg.
Running the script will pull the image if required.

$ sudo make install
$ ffmpeg-nonfree-docker [...]

You may additionally install symbolic links without the -nonfree-docker suffix:

$ sudo make install-shortnames
$ ffmpeg [...]

You may uninstall it with sudo make uninstall.

NOTE: The script will mount the host's filesystem as /host and run from the invoking directory. Additionally /home will also be mounted as simply /home.
Referencing files with relative paths should work without any extra parameter whereas absolute paths should be prepended by /host unless they're under /home.

$ ffmpeg-nonfree-docker -i input_file               # Access ./input_file from the host
$ ffmpeg-nonfree-docker -i ../input_file            # Access ../input_file from the host
$ ffmpeg-nonfree-docker -i /home/user/input_file    # Access /home/user/input_file from the host
$ ffmpeg-nonfree-docker -i /host/path/to/input_file # Access /path/to/input_file from the host

⁠A comparison of included codecs

Note the included makefile eases such comparisons (for a selection of codecs).
For each distribution with a corresponding Dockerfile in the downstream/ directory you can get run:

$ make build-$distro compare-codecs-$distro

e.g.:

$ make build-debian compare-codecs-debian

Here's an excerpt of some important codecs (I'm only including differences):

CodecEncoderthis imageDebianUbuntu LTSUbuntuAlpineFedora
h.264
h264_amfyesnonononono
h264_nvencyesnoyesyesnoyes
h264_omxnoyesyesyesnoyes
h264_qsvyesnonoyesnoyes
libopenh264yesnonononono
nvencyesnoyesyesnoyes
nvenc_h264yesnoyesyesnoyes
HEVC
hevc_amfyesnonononono
hevc_nvencyes noyesyesnoyes
hevc_qsvyes nonoyesnoyes
libkvazaaryes nonononono
nvenc_hevcyesnoyesyesnoyes
MJPEG
mjpeg_qsvyesnonoyesnoyes
MPEG-2
mpeg2_qsv yesnonononoyes
AAC
  libfdk_aacyesnonononono

Versions:

$ make pull-distros # pull the latest images
[...]
$ make versions
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
alpine:
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
debian:
ffmpeg version 4.1.6-1~deb10u1 Copyright (c) 2000-2020 the FFmpeg developers
fedora:
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
ubuntu:
ffmpeg version 4.3.1-4ubuntu1 Copyright (c) 2000-2020 the FFmpeg developers
ubuntu-lts:
ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers

Tag summary

Content type

Image

Digest

sha256:da7079481…

Size

215.7 MB

Last updated

about 4 years ago

docker pull outlyernet/ffmpeg-nonfree