FROM rust:trixie
WORKDIR /app/src
ENV FFMPEG_DIR=/app/src/ffmpeg
COPY . .
RUN apt update && \
    apt install -y \
    build-essential \
    libx264-dev \
    libx265-dev \
    libwebp-dev \
    libvpx-dev \
    libopus-dev \
    libdav1d-dev \
    nasm \
    libva-dev \
    va-driver-all \
    libclang-dev && \
    if [ "$(dpkg --print-architecture)" == "amd64" ]; then \
        apt install -y libvpl-dev; \
    fi && \
    rm -rf /var/lib/apt/lists/*

## nv-codec-headers
RUN git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git && \
    cd nv-codec-headers && \
    make -j$(nproc) install


RUN wget -O ffmpeg.tar.bz2 https://ffmpeg.org/releases/ffmpeg-8.1.tar.bz2 && \
    tar xfv ffmpeg.tar.bz2 && \
    cd ffmpeg-8.1 && \
    ./configure \
    --prefix=$FFMPEG_DIR \
    --disable-programs \
    --disable-doc \
    --enable-gpl \
    --enable-version3 \
    --enable-libx264 \
    --enable-libx265 \
    --enable-libwebp \
    --enable-libvpx \
    --enable-libopus \
    --enable-libdav1d \
    --disable-static \
    --enable-shared && \
    make -j$(nproc) && make install
