-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
72 lines (60 loc) · 3.43 KB
/
Copy pathDockerfile
File metadata and controls
72 lines (60 loc) · 3.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Fedora/Toolbox friendly FFmpeg build container.
#
# This Containerfile intentionally mirrors what you would do inside a Fedora
# Toolbox (`toolbox create -c ffmpeg-build -i registry.fedoraproject.org/fedora-toolbox:43`).
# Building inside Toolbox keeps the finished binaries aligned with the host
# kernel/driver stack while still letting us reuse the same automation. When
# you want a fully self-contained artifact you can also `podman build` this
# file directly.
FROM registry.fedoraproject.org/fedora:43 AS builder
ENV FFMPEG_VERSION=8.0
ENV PREFIX="/opt/ffmpeg"
ENV MAKEFLAGS="-j2"
ENV PKG_CONFIG_PATH="/opt/ffmpeg/share/pkgconfig:/opt/ffmpeg/lib/pkgconfig:/opt/ffmpeg/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig"
ENV LD_LIBRARY_PATH="/opt/ffmpeg/lib:/opt/ffmpeg/lib64"
RUN set -euxo pipefail; \
dnf -y upgrade --refresh; \
dnf -y install dnf-plugins-core; \
dnf -y install \
https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm; \
dnf -y groupinstall "Development Tools" "Development Libraries"; \
dnf -y install \
git jq python3 python3-requests python3-pip curl wget tree file vim less which rsync \
autoconf automake libtool cmake meson ninja-build pkgconf-pkg-config perl texinfo \
tar bzip2 bzip2-devel xz xz-devel zlib-devel expat-devel gperf nasm yasm patch diffutils findutils \
gcc gcc-c++ make \
libdrm-devel libva libva-devel mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers mesa-libgbm-devel mesa-libGL-devel mesa-libEGL-devel \
libX11-devel libXau-devel libXext-devel libXfixes-devel libXrandr-devel libXrender-devel libXdamage-devel libXi-devel libxcb-devel \
libogg-devel opus-devel libvorbis-devel libtheora-devel \
lame-devel x264-devel x265-devel aom-devel svt-av1-devel dav1d-devel \
libvpx-devel libwebp-devel libpng-devel libjpeg-turbo-devel libtiff-devel \
freetype-devel fontconfig-devel harfbuzz-devel fribidi-devel libass-devel \
libxml2-devel libbluray-devel libvidstab-devel libzimg-devel libaribb24 libaribb24-devel openjpeg2-devel \
libsrt-devel zeromq-devel libcurl-devel openssl-devel libuuid-devel \
libplacebo-devel rav1e-devel libjxl-devel shaderc-devel glslang-devel spirv-tools-devel vulkan-loader-devel \
librtmp-devel libsmbclient samba-devel \
libva-utils \
&& \
dnf clean all && \
rm -rf /var/cache/dnf
WORKDIR /tmp/workdir
COPY generate-source-of-truth-ffmpeg-versions.py /tmp/workdir
COPY download_tarballs.sh /tmp/workdir
COPY build_source.sh /tmp/workdir
COPY install_ffmpeg.sh /tmp/workdir
RUN /tmp/workdir/generate-source-of-truth-ffmpeg-versions.py --library-list kvazaar,libvmaf,whisper
RUN /tmp/workdir/download_tarballs.sh
RUN /tmp/workdir/build_source.sh
RUN /tmp/workdir/generate-source-of-truth-ffmpeg-versions.py --library-list ffmpeg-8.0
RUN /tmp/workdir/download_tarballs.sh
RUN /tmp/workdir/build_source.sh
RUN /tmp/workdir/install_ffmpeg.sh
FROM registry.fedoraproject.org/fedora:43 AS runtime
COPY --from=builder /usr/share/fonts /usr/share/fonts
COPY --from=builder /usr/share/fontconfig /usr/share/fontconfig
COPY --from=builder /usr/bin/fc-* /usr/bin/
COPY --from=builder /usr/local /usr/local/
ENV LD_LIBRARY_PATH="/usr/local/lib:/usr/local/lib64"
CMD ["--help"]
ENTRYPOINT ["ffmpeg"]