Av1an/Dockerfile
Josh Holmer f52c82f15c
Use a different method for ffmpeg frame count (#368)
* Use a different method for ffmpeg frame count

This method uses ffprobe to count the number of packets
(which is identical to the number of frames, but faster)
in a video stream. This works with more video formats,
including with --enable-keyframe-filtering=2 in aomenc.
Performance should be similar or better than ffmpeg -copy.

* Add sanity check when using keyframe filtering 2

* Use ffmpeg-next crate for getting frame count

* Add LLVM/Clang to Github Actions

* Enable ffmpeg static and build features by default
2021-10-01 23:48:40 +03:00

41 lines
1 KiB
Docker

FROM luigi311/encoders-docker:latest
ENV MPLCONFIGDIR="/home/app_user/"
ARG DEBIAN_FRONTEND=noninteractive
ARG DEPENDENCIES="mkvtoolnix curl llvm clang"
# Install dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
${DEPENDENCIES} && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Install VTM
RUN git clone https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM.git /VTM && \
mkdir -p /VTM/build
WORKDIR /VTM/build
RUN cmake .. -DCMAKE_BUILD_TYPE=Release && \
make -j"$(nproc)" && \
ln -s ../bin/EncoderAppStatic /usr/local/bin/vvc_encoder
# Create user
RUN useradd -ms /bin/bash app_user
USER app_user
# Install rust
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y --default-toolchain nightly
ENV PATH="/home/app_user/.cargo/bin:$PATH"
# Copy av1an and build av1an
COPY --chown=app_user . /Av1an
WORKDIR /Av1an
RUN cargo build --release
# Open up /Av1an to all users
RUN chmod 777 /Av1an
VOLUME ["/videos"]
WORKDIR /videos
ENTRYPOINT [ "/Av1an/target/release/av1an" ]