mirror of
https://github.com/datarhei/ffmpeg
synced 2025-12-24 13:08:07 +08:00
Update workflow for cuda11 and cuda12 builds
This commit is contained in:
33
.github/workflows/build_base_ubuntu-cuda.yaml
vendored
33
.github/workflows/build_base_ubuntu-cuda.yaml
vendored
@@ -9,6 +9,13 @@ on:
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: [self-hosted]
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- cuda: 11
|
||||
platforms: linux/amd64
|
||||
- cuda: 12
|
||||
platforms: linux/amd64
|
||||
steps:
|
||||
- name: Get current date
|
||||
run: |
|
||||
@@ -23,7 +30,7 @@ jobs:
|
||||
|
||||
- uses: cardinalby/export-env-action@v2
|
||||
with:
|
||||
envFile: "Build.ubuntu.env|Build.ubuntu.cuda.env"
|
||||
envFile: "Build.ubuntu.cuda${{ matrix.cuda }}.env"
|
||||
export: "true"
|
||||
expandWithJobEnv: "true"
|
||||
expand: "true"
|
||||
@@ -49,28 +56,16 @@ jobs:
|
||||
with:
|
||||
builder: ${{ steps.buildx.outputs.name }}
|
||||
context: .
|
||||
file: ./Dockerfile.ubuntu.cuda
|
||||
file: ./Dockerfile.ubuntu.cuda${{ matrix.cuda }}
|
||||
build-args: |
|
||||
BUILD_IMAGE=nvidia/cuda:${{ env.CUDA_VERSION }}-devel-${{ env.OS_NAME }}${{ env.OS_VERSION }}
|
||||
BUILD_IMAGE=nvidia/cuda:${{ env.CUDA_VERSION }}-devel-ubuntu${{ env.OS_VERSION }}
|
||||
DEPLOY_IMAGE=nvidia/cuda:${{ env.CUDA_VERSION }}-runtime-ubuntu${{ env.OS_VERSION }}
|
||||
BUILD_DATE=${{ env.CURRENT_DATE }}
|
||||
BUILD_COMMIT=${{ env.CURRENT_COMMIT }}
|
||||
DEPLOY_IMAGE=nvidia/cuda:${{ env.CUDA_VERSION }}-runtime-${{ env.OS_NAME }}${{ env.OS_VERSION }}
|
||||
FFNVCODEC_VERSION=${{ env.FFNVCODEC_VERSION }}
|
||||
FREETYPE_VERSION=${{ env.FREETYPE_VERSION }}
|
||||
XML2_VERSION=${{ env.XML2_VERSION }}
|
||||
SRT_VERSION=${{ env.SRT_VERSION }}
|
||||
X264_VERSION=${{ env.X264_VERSION }}
|
||||
X265_VERSION=${{ env.X265_VERSION }}
|
||||
VPX_VERSION=${{ env.VPX_VERSION }}
|
||||
LAME_VERSION=${{ env.LAME_VERSION }}
|
||||
OPUS_VERSION=${{ env.OPUS_VERSION }}
|
||||
OGG_VERSION=${{ env.OGG_VERSION }}
|
||||
VORBIS_VERSION=${{ env.VORBIS_VERSION }}
|
||||
DAV1D_VERSION=${{ env.DAV1D_VERSION }}
|
||||
RAV1E_VERSION=${{ env.RAV1E_VERSION }}
|
||||
FFMPEG_VERSION=${{ env.FFMPEG_VERSION }}
|
||||
platforms: linux/amd64
|
||||
platforms: ${{ matrix.platforms }}
|
||||
push: true
|
||||
tags: |
|
||||
datarhei/base:${{ env.OS_NAME }}-ffmpeg-cuda-${{ env.OS_VERSION }}-${{ env.FFMPEG_VERSION }}-${{env.CUDA_VERSION}}
|
||||
datarhei/base:ffmpeg${{ env.FFMPEG_VERSION }}-cuda-${{ env.OS_NAME }}${{ env.OS_VERSION }}-cuda${{env.CUDA_VERSION}}
|
||||
datarhei/base:ubuntu-ffmpeg-cuda-${{ env.OS_VERSION }}-${{ env.FFMPEG_VERSION }}-${{ env.CUDA_VERSION }}
|
||||
datarhei/base:ffmpeg${{ env.FFMPEG_VERSION }}-cuda-ubuntu${{ env.OS_VERSION }}-cuda${{ env.CUDA_VERSION }}
|
||||
|
||||
69
Build.sh
69
Build.sh
@@ -39,44 +39,38 @@ function build_default() {
|
||||
function build_rpi() {
|
||||
source_env ./Build.alpine.env
|
||||
source_env ./Build.alpine.rpi.env
|
||||
# "--load" does not support multiple platforms
|
||||
# use "--push" to publish
|
||||
# --platform linux/arm64,linux/arm/v7
|
||||
docker buildx build \
|
||||
--load \
|
||||
docker build \
|
||||
--progress=plain \
|
||||
--build-arg BUILD_IMAGE=$OS_NAME:$OS_VERSION \
|
||||
--build-arg FFMPEG_VERSION=$FFMPEG_VERSION \
|
||||
--platform linux/arm64 \
|
||||
-f Dockerfile.alpine.rpi \
|
||||
-t datarhei/base:ffmpeg${FFMPEG_VERSION}-rpi-${OS_NAME}${OS_VERSION} .
|
||||
docker tag datarhei/base:ffmpeg${FFMPEG_VERSION}-rpi-${OS_NAME}${OS_VERSION} datarhei/base:$OS_NAME-ffmpeg-rpi-$OS_VERSION-$FFMPEG_VERSION
|
||||
docker tag datarhei/base:ffmpeg${FFMPEG_VERSION}-rpi-${OS_NAME}${OS_VERSION} datarhei/base:$OS_NAME-ffmpeg-rpi-latest
|
||||
}
|
||||
|
||||
function build_cuda() {
|
||||
source_env ./Build.ubuntu.env
|
||||
source_env ./Build.ubuntu.cuda.env
|
||||
docker buildx build \
|
||||
--load \
|
||||
--build-arg BUILD_IMAGE=nvidia/cuda:$CUDA_VERSION-devel-$OS_NAME$OS_VERSION \
|
||||
--build-arg DEPLOY_IMAGE=nvidia/cuda:$CUDA_VERSION-runtime-$OS_NAME$OS_VERSION \
|
||||
function build_cuda11() {
|
||||
source_env ./Build.ubuntu.cuda11.env
|
||||
docker build \
|
||||
--progress=plain \
|
||||
--build-arg BUILD_IMAGE=nvidia/cuda:$CUDA_VERSION-devel-ubuntu$OS_VERSION \
|
||||
--build-arg DEPLOY_IMAGE=nvidia/cuda:$CUDA_VERSION-runtime-ubuntu$OS_VERSION \
|
||||
--build-arg FFNVCODEC_VERSION=$FFNVCODEC_VERSION \
|
||||
--build-arg FREETYPE_VERSION=$FREETYPE_VERSION \
|
||||
--build-arg XML2_VERSION=$XML2_VERSION \
|
||||
--build-arg SRT_VERSION=$SRT_VERSION \
|
||||
--build-arg X264_VERSION=$X264_VERSION \
|
||||
--build-arg X265_VERSION=$X265_VERSION \
|
||||
--build-arg VPX_VERSION=$VPX_VERSION \
|
||||
--build-arg LAME_VERSION=$LAME_VERSION \
|
||||
--build-arg OPUS_VERSION=$OPUS_VERSION \
|
||||
--build-arg VORBIS_VERSION=$VORBIS_VERSION \
|
||||
--build-arg FFMPEG_VERSION=$FFMPEG_VERSION \
|
||||
--platform linux/amd64 \
|
||||
-f Dockerfile.ubuntu.cuda \
|
||||
-t datarhei/base:ffmpeg${FFMPEG_VERSION}-cuda-${OS_NAME}${OS_VERSION}-cuda${CUDA_VERSION} .
|
||||
docker tag datarhei/base:ffmpeg${FFMPEG_VERSION}-cuda-${OS_NAME}${OS_VERSION}-cuda${CUDA_VERSION} datarhei/base:$OS_NAME-ffmpeg-cuda-$OS_VERSION-$FFMPEG_VERSION-$CUDA_VERSION
|
||||
docker tag datarhei/base:ffmpeg${FFMPEG_VERSION}-cuda-${OS_NAME}${OS_VERSION}-cuda${CUDA_VERSION} datarhei/base:$OS_NAME-ffmpeg-cuda-latest
|
||||
-f Dockerfile.ubuntu.cuda11 \
|
||||
-t datarhei/base:ffmpeg${FFMPEG_VERSION}-cuda-ubuntu$OS_VERSION-cuda${CUDA_VERSION} .
|
||||
}
|
||||
|
||||
function build_cuda12() {
|
||||
source_env ./Build.ubuntu.cuda12.env
|
||||
docker build \
|
||||
--progress=plain \
|
||||
--build-arg BUILD_IMAGE=nvidia/cuda:$CUDA_VERSION-devel-ubuntu$OS_VERSION \
|
||||
--build-arg DEPLOY_IMAGE=nvidia/cuda:$CUDA_VERSION-runtime-ubuntu$OS_VERSION \
|
||||
--build-arg FFNVCODEC_VERSION=$FFNVCODEC_VERSION \
|
||||
--build-arg FFMPEG_VERSION=$FFMPEG_VERSION \
|
||||
-f Dockerfile.ubuntu.cuda12 \
|
||||
-t datarhei/base:ffmpeg${FFMPEG_VERSION}-cuda-ubuntu$OS_VERSION-cuda${CUDA_VERSION} .
|
||||
}
|
||||
|
||||
function build_vaapi() {
|
||||
@@ -87,28 +81,15 @@ function build_vaapi() {
|
||||
--progress=plain \
|
||||
--build-arg BUILD_IMAGE=$OS_NAME:$OS_VERSION \
|
||||
--build-arg DEPLOY_IMAGE=$OS_NAME:$OS_VERSION \
|
||||
--build-arg FREETYPE_VERSION=$FREETYPE_VERSION \
|
||||
--build-arg XML2_VERSION=$XML2_VERSION \
|
||||
--build-arg SRT_VERSION=$SRT_VERSION \
|
||||
--build-arg X264_VERSION=$X264_VERSION \
|
||||
--build-arg X265_VERSION=$X265_VERSION \
|
||||
--build-arg VPX_VERSION=$VPX_VERSION \
|
||||
--build-arg LAME_VERSION=$LAME_VERSION \
|
||||
--build-arg OPUS_VERSION=$OPUS_VERSION \
|
||||
--build-arg VORBIS_VERSION=$VORBIS_VERSION \
|
||||
--build-arg DAV1D_VERSION=$DAV1D_VERSION \
|
||||
--build-arg RAV1E_VERSION=$RAV1E_VERSION \
|
||||
--build-arg FFMPEG_VERSION=$FFMPEG_VERSION \
|
||||
--platform linux/amd64 \
|
||||
-f Dockerfile.ubuntu.vaapi \
|
||||
-t datarhei/base:ffmpeg${FFMPEG_VERSION}-vaapi-${OS_NAME}${OS_VERSION} .
|
||||
docker tag datarhei/base:ffmpeg${FFMPEG_VERSION}-vaapi-${OS_NAME}${OS_VERSION} datarhei/base:$OS_NAME-ffmpeg-vaapi-$OS_VERSION-$FFMPEG_VERSION
|
||||
docker tag datarhei/base:ffmpeg${FFMPEG_VERSION}-vaapi-${OS_NAME}${OS_VERSION} datarhei/base:$OS_NAME-ffmpeg-vaapi-latest
|
||||
}
|
||||
|
||||
main() {
|
||||
if [[ $# == 0 ]]; then
|
||||
echo "Options available: default, default_native, rpi, cuda, vaapi"
|
||||
echo "Options available: default, default_native, rpi, cuda11, cuda12, vaapi"
|
||||
exit 0
|
||||
else
|
||||
if [[ $1 == "default" ]]; then
|
||||
@@ -117,8 +98,10 @@ main() {
|
||||
build_default_native
|
||||
elif [[ $1 == "rpi" ]]; then
|
||||
build_rpi
|
||||
elif [[ $1 == "cuda" ]]; then
|
||||
build_cuda
|
||||
elif [[ $1 == "cuda11" ]]; then
|
||||
build_cuda11
|
||||
elif [[ $1 == "cuda12" ]]; then
|
||||
build_cuda12
|
||||
elif [[ $1 == "vaapi" ]]; then
|
||||
build_vaapi
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# FFMPEG CUDA PACKAGES
|
||||
OS_NAME=ubuntu
|
||||
OS_VERSION=22.04
|
||||
XML2_VERSION=2.9.14
|
||||
CUDA_VERSION=11.7.1
|
||||
CUDA_VERSION=11.8.0
|
||||
FFNVCODEC_VERSION=11.1.5.3
|
||||
FFMPEG_VERSION=7.0.2
|
||||
6
Build.ubuntu.cuda12.env
Normal file
6
Build.ubuntu.cuda12.env
Normal file
@@ -0,0 +1,6 @@
|
||||
# FFMPEG CUDA PACKAGES
|
||||
OS_NAME=ubuntu
|
||||
OS_VERSION=24.04
|
||||
CUDA_VERSION=12.6.1
|
||||
FFNVCODEC_VERSION=12.1.14.0
|
||||
FFMPEG_VERSION=7.0.2
|
||||
@@ -1,16 +0,0 @@
|
||||
# FFMPEG BASE PACKAGES
|
||||
OS_NAME=ubuntu
|
||||
OS_VERSION=22.04
|
||||
FREETYPE_VERSION=2.13.2
|
||||
XML2_VERSION=2.12.6
|
||||
SRT_VERSION=1.5.3
|
||||
X264_VERSION=stable
|
||||
X265_VERSION=3.5
|
||||
VPX_VERSION=1.14.0
|
||||
LAME_VERSION=3.100
|
||||
OPUS_VERSION=1.4
|
||||
OGG_VERSION=1.3.5
|
||||
VORBIS_VERSION=1.3.7
|
||||
DAV1D_VERSION=1.4.1
|
||||
RAV1E_VERSION=0.7.1
|
||||
FFMPEG_VERSION=7.0.2
|
||||
@@ -1,26 +1,23 @@
|
||||
ARG BUILD_IMAGE=nvidia/cuda:11.4.2-devel-ubuntu20.04
|
||||
ARG DEPLOY_IMAGE=nvidia/cuda:11.4.2-runtime-ubuntu20.04
|
||||
ARG BUILD_IMAGE=nvidia/cuda:11.8.0-devel-ubuntu22.04
|
||||
ARG DEPLOY_IMAGE=nvidia/cuda:11.8.0-runtime-ubuntu22.04
|
||||
|
||||
FROM $BUILD_IMAGE AS builder
|
||||
|
||||
ARG FFNVCODEC_VERSION=11.1.5.3
|
||||
ARG BUILD_DATE=1970-01-01T00:00:00Z
|
||||
ARG BUILD_COMMIT=unknown
|
||||
ARG FFMPEG_VERSION=none
|
||||
|
||||
ARG FFNVCODEC_VERSION=11.1.5.1
|
||||
|
||||
ARG FREETYPE_VERSION=2.10.4
|
||||
ARG FREETYPE_VERSION=2.13.2
|
||||
ARG XML2_VERSION=2.9.14
|
||||
ARG SRT_VERSION=1.4.2
|
||||
ARG SRT_VERSION=1.5.3
|
||||
ARG X264_VERSION=stable
|
||||
ARG X265_VERSION=3.4
|
||||
ARG VPX_VERSION=1.11.0
|
||||
ARG LAME_VERSION=3.100
|
||||
ARG OPUS_VERSION=1.3.1
|
||||
ARG VPX_VERSION=1.14.0
|
||||
ARG OPUS_VERSION=1.4
|
||||
ARG OGG_VERSION=1.3.5
|
||||
ARG VORBIS_VERSION=1.3.7
|
||||
ARG RAV1E_VERSION=0.7.1
|
||||
ARG DAV1D_VERSION=1.4.1
|
||||
ARG FFMPEG_VERSION=4.4.2
|
||||
|
||||
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
|
||||
ENV SRC=/usr/local
|
||||
@@ -40,20 +37,24 @@ RUN apt-get update -y && \
|
||||
libtool \
|
||||
autoconf \
|
||||
libx265-dev \
|
||||
libmp3lame-dev \
|
||||
libfdk-aac-dev \
|
||||
libv4l-dev \
|
||||
libasound2-dev \
|
||||
rust-all \
|
||||
meson \
|
||||
zlib1g-dev
|
||||
|
||||
# install rust
|
||||
RUN curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh -s -- -y
|
||||
|
||||
# install librav1e
|
||||
RUN mkdir -p /dist && cd /dist && \
|
||||
curl -OLk https://github.com/xiph/rav1e/archive/refs/tags/v${RAV1E_VERSION}.tar.gz && \
|
||||
tar xfvz v${RAV1E_VERSION}.tar.gz && \
|
||||
rm v${RAV1E_VERSION}.tar.gz && \
|
||||
cd rav1e-${RAV1E_VERSION} && \
|
||||
cargo install cargo-c && \
|
||||
cargo cinstall --release
|
||||
/root/.cargo/bin/cargo install cargo-c && \
|
||||
/root/.cargo/bin/cargo cinstall --release
|
||||
|
||||
# install libxml2
|
||||
RUN mkdir -p /dist && cd /dist && \
|
||||
@@ -125,20 +126,6 @@ RUN mkdir -p /dist && cd /dist && \
|
||||
make -j$(nproc) && \
|
||||
make install
|
||||
|
||||
# install libmp3lame
|
||||
RUN mkdir -p /dist && cd /dist && \
|
||||
curl -OLk https://downloads.sourceforge.net/project/lame/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz && \
|
||||
tar -xvz -f lame-${LAME_VERSION}.tar.gz && \
|
||||
rm lame-${LAME_VERSION}.tar.gz && \
|
||||
cd lame-${LAME_VERSION} && \
|
||||
./configure \
|
||||
--prefix="${SRC}" \
|
||||
--bindir="${SRC}/bin" \
|
||||
--disable-static \
|
||||
--enable-nasm && \
|
||||
make -j$(nproc) && \
|
||||
make install
|
||||
|
||||
# install vpx
|
||||
RUN mkdir -p /dist && cd /dist && \
|
||||
curl -OLk https://github.com/webmproject/libvpx/archive/refs/tags/v${VPX_VERSION}.tar.gz && \
|
||||
@@ -224,6 +211,7 @@ RUN cd /dist/ffmpeg-${FFMPEG_VERSION} && \
|
||||
--enable-libx265 \
|
||||
--enable-libvpx \
|
||||
--enable-libmp3lame \
|
||||
--enable-libfdk-aac \
|
||||
--enable-libopus \
|
||||
--enable-libvorbis \
|
||||
--enable-libdav1d \
|
||||
@@ -236,24 +224,30 @@ RUN cd /dist/ffmpeg-${FFMPEG_VERSION} && \
|
||||
make install && \
|
||||
hash -r
|
||||
|
||||
RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/ffmpeg.conf && \
|
||||
ldconfig && \
|
||||
mkdir -p /ffmpeglibs && \
|
||||
ldd /usr/local/bin/ffmpeg | grep -o -E -e ' (/usr/local/lib|/lib/[a-z0-9_]+-linux-gnu)/[^ ]*' | xargs -I % cp -v % /ffmpeglibs
|
||||
|
||||
FROM $DEPLOY_IMAGE
|
||||
|
||||
COPY --from=builder /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg
|
||||
COPY --from=builder /usr/local/lib /usr/local/lib
|
||||
COPY --from=builder /ffmpeglibs /ffmpeglibs
|
||||
|
||||
RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/ffmpeg.conf && \
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN echo "/ffmpeglibs" > /etc/ld.so.conf.d/ffmpeg.conf && \
|
||||
ldconfig && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
v4l-utils \
|
||||
fbset \
|
||||
x265 \
|
||||
zlib1g \
|
||||
libasound2-dev && \
|
||||
ffmpeg -buildconf
|
||||
|
||||
ENV NVIDIA_VISIBLE_DEVICES all
|
||||
ENV NVIDIA_DRIVER_CAPABILITIES compute,video,utility
|
||||
ENV NVIDIA_VISIBLE_DEVICES=all
|
||||
ENV NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
|
||||
|
||||
WORKDIR /tmp
|
||||
ENTRYPOINT ["/usr/local/bin/ffmpeg"]
|
||||
124
Dockerfile.ubuntu.cuda12
Normal file
124
Dockerfile.ubuntu.cuda12
Normal file
@@ -0,0 +1,124 @@
|
||||
ARG BUILD_IMAGE=nvidia/cuda:12.6.1-devel-ubuntu24.04
|
||||
ARG DEPLOY_IMAGE=nvidia/cuda:12.6.1-runtime-ubuntu24.04
|
||||
|
||||
FROM $BUILD_IMAGE AS builder
|
||||
|
||||
ARG FFNVCODEC_VERSION=12.2.72.0
|
||||
ARG BUILD_DATE=1970-01-01T00:00:00Z
|
||||
ARG BUILD_COMMIT=unknown
|
||||
ARG FFMPEG_VERSION=none
|
||||
|
||||
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
|
||||
ENV SRC=/usr/local
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update -y && \
|
||||
apt-get install -y \
|
||||
pkg-config \
|
||||
curl \
|
||||
libcurl4-openssl-dev \
|
||||
git \
|
||||
nasm \
|
||||
openssl \
|
||||
libssl-dev \
|
||||
cmake \
|
||||
yasm \
|
||||
build-essential \
|
||||
libtool \
|
||||
autoconf \
|
||||
libv4l-dev \
|
||||
libasound2-dev \
|
||||
libx264-dev \
|
||||
libx265-dev \
|
||||
librav1e-dev \
|
||||
libaom-dev \
|
||||
libdav1d-dev \
|
||||
libvpx-dev \
|
||||
libmp3lame-dev \
|
||||
libopus-dev \
|
||||
libvorbis-dev \
|
||||
libogg-dev \
|
||||
libfreetype-dev \
|
||||
libsrt-openssl-dev \
|
||||
libxml2-dev \
|
||||
libfdk-aac-dev \
|
||||
libharfbuzz-dev \
|
||||
libxml2-dev \
|
||||
zlib1g-dev
|
||||
|
||||
# install and patch ffmpeg
|
||||
RUN mkdir -p /dist && cd /dist && \
|
||||
curl -OLk http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz && \
|
||||
curl -OLk https://github.com/FFmpeg/nv-codec-headers/releases/download/n${FFNVCODEC_VERSION}/nv-codec-headers-${FFNVCODEC_VERSION}.tar.gz && \
|
||||
tar -xvz -f ffmpeg-${FFMPEG_VERSION}.tar.gz && \
|
||||
tar -xvz -f nv-codec-headers-${FFNVCODEC_VERSION}.tar.gz && \
|
||||
rm ffmpeg-${FFMPEG_VERSION}.tar.gz nv-codec-headers-${FFNVCODEC_VERSION}.tar.gz && \
|
||||
cd nv-codec-headers-${FFNVCODEC_VERSION} && \
|
||||
make install
|
||||
|
||||
COPY ./contrib /contrib
|
||||
|
||||
RUN cd /dist/ffmpeg-${FFMPEG_VERSION} && \
|
||||
patch -p1 < /contrib/ffmpeg-jsonstats.patch && \
|
||||
patch -p1 < /contrib/ffmpeg-hls.patch && \
|
||||
./configure \
|
||||
--extra-version="datarhei-${BUILD_COMMIT}-${BUILD_DATE}" \
|
||||
--extra-libs="-lpthread -lxml2 -lm -lz -lsupc++ -lstdc++ -lssl -lcrypto -lc -ldl -lcurl" \
|
||||
--prefix="${SRC}" \
|
||||
--extra-cflags=-I/usr/local/cuda/include \
|
||||
--extra-ldflags=-L/usr/local/cuda/lib64 \
|
||||
--enable-nonfree \
|
||||
--enable-gpl \
|
||||
--enable-version3 \
|
||||
--enable-postproc \
|
||||
--enable-static \
|
||||
--enable-openssl \
|
||||
--enable-libxml2 \
|
||||
--enable-cuda \
|
||||
--enable-cuvid \
|
||||
--enable-nvenc \
|
||||
--enable-libnpp \
|
||||
--enable-libv4l2 \
|
||||
--enable-libfreetype \
|
||||
--enable-alsa \
|
||||
--enable-libsrt \
|
||||
--enable-libx264 \
|
||||
--enable-libx265 \
|
||||
--enable-libvpx \
|
||||
--enable-libmp3lame \
|
||||
--enable-libfdk-aac \
|
||||
--enable-libopus \
|
||||
--enable-libvorbis \
|
||||
--enable-libdav1d \
|
||||
--enable-librav1e \
|
||||
--enable-libaom \
|
||||
--disable-ffplay \
|
||||
--disable-ffprobe \
|
||||
--disable-debug \
|
||||
--disable-doc && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
hash -r
|
||||
|
||||
RUN mkdir -p /ffmpeglibs && \
|
||||
ldd /usr/local/bin/ffmpeg | grep -o -e '/lib/[a-z0-9_]*-linux-gnu/[^ ]*' | xargs -I % cp -v % /ffmpeglibs
|
||||
|
||||
FROM $DEPLOY_IMAGE
|
||||
|
||||
COPY --from=builder /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg
|
||||
COPY --from=builder /ffmpeglibs /ffmpeglibs
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN echo "/ffmpeglibs" > /etc/ld.so.conf.d/ffmpeg.conf && \
|
||||
ldconfig && \
|
||||
apt-get update && \
|
||||
apt-get install -y ca-certificates openssl tzdata v4l-utils fbset libasound2-dev && \
|
||||
ffmpeg -buildconf
|
||||
|
||||
ENV NVIDIA_VISIBLE_DEVICES=all
|
||||
ENV NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
|
||||
|
||||
WORKDIR /tmp
|
||||
ENTRYPOINT ["/usr/local/bin/ffmpeg"]
|
||||
CMD ["-version"]
|
||||
Reference in New Issue
Block a user