jrottenberg / ffmpeg

Docker build for FFmpeg on Ubuntu / Alpine / Centos / Scratch / nvidia / vaapi
https://hub.docker.com/r/jrottenberg/ffmpeg/
Apache License 2.0
1.37k stars 450 forks source link

libvmaf in alpine 5.1 #364

Closed Bond246 closed 1 year ago

Bond246 commented 1 year ago

Hello everyone,

i tried to install libvmaf in the ffmpeg 5.1 alpine image. Actually --enable-libvmaf was not used so i added it but it seems to that this is not working:

RUN \
        if which meson || false; then \
        echo "Building VMAF." && \
        DIR=/tmp/vmaf && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://github.com/Netflix/vmaf/archive/v${LIBVMAF_VERSION}.tar.gz && \
        tar -xz --strip-components=1 -f v${LIBVMAF_VERSION}.tar.gz && \
        cd /tmp/vmaf/libvmaf && \
        meson build --buildtype release --prefix=${PREFIX} && \
        ninja -vC build && \
        ninja -vC build install && \
        mkdir -p ${PREFIX}/share/model/ && \
        cp -r /tmp/vmaf/model/* ${PREFIX}/share/model/ && \
        rm -rf ${DIR}; \
        else \
        echo "VMAF skipped."; \
        fi

So i addet this:

ENV LIBVMAF_VERSION=v2.3.1

RUN     apk add --no-cache --update python3 py-pip
RUN     pip install meson

and changed the vmaf-command

RUN \
        DIR=/tmp/vmaf && \
        mkdir -p ${DIR} && \
        git clone --branch ${LIBVMAF_VERSION} https://github.com/Netflix/vmaf.git ${DIR} ; \
        cd ${DIR}/libvmaf && \
        meson build --buildtype release --prefix=${PREFIX} && \
        ninja -vC build && \
        ninja -vC build install && \
        mkdir -p ${PREFIX}/share/model/ && \
        cp -r ${DIR}/model/* ${PREFIX}/share/model/ && \
        rm -rf ${DIR}

But i get a ton of error messages. I think the problem could be this:

#0 14.95 ninja: job failed: /usr/bin/xxd --include src/vmaf_4k_v0.6.1.json src/vmaf_4k_v0.6.1.json.c                                                                                                                                  
#0 14.95 /usr/bin/xxd: unrecognized option: include                                                                                                                                                                                   #0 14.95 BusyBox v1.32.1 () multi-call binary. 

Any ideas? Thanks

Bond246 commented 1 year ago

I think i've found the solution. https://stackoverflow.com/questions/60943778/xxd-not-doing-anything-on-alpine-linux

adding: RUN buildDeps=xxd and live is good.