Spaces:
Paused
Paused
Upload Dockerfile
Browse files- Dockerfile +27 -6
Dockerfile
CHANGED
|
@@ -5,7 +5,7 @@ ENV DEBIAN_FRONTEND=noninteractive
|
|
| 5 |
|
| 6 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 7 |
build-essential nasm yasm bzip2 git wget \
|
| 8 |
-
libfdk-aac-dev libx264-dev libx265-dev libnuma-dev \
|
| 9 |
&& rm -rf /var/lib/apt/lists/*
|
| 10 |
|
| 11 |
# nv-codec-headers (necessário para h264_nvenc / hevc_nvenc / cuvid)
|
|
@@ -36,6 +36,7 @@ RUN wget -q -O /tmp/ffmpeg.tar.bz2 https://ffmpeg.org/releases/ffmpeg-7.1.1.tar.
|
|
| 36 |
--enable-nvenc \
|
| 37 |
--enable-nvdec \
|
| 38 |
--enable-cuda \
|
|
|
|
| 39 |
--enable-cuvid \
|
| 40 |
--extra-cflags="-O2 -pipe -I/usr/local/cuda/include" \
|
| 41 |
--extra-ldflags="-s -L/usr/local/cuda/lib64" \
|
|
@@ -56,17 +57,37 @@ ENV DEBIAN_FRONTEND=noninteractive
|
|
| 56 |
# Só as libs de runtime necessárias
|
| 57 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 58 |
python3 python3-pip ca-certificates \
|
| 59 |
-
libfdk-aac2 libx264-163 libx265-199 libnuma1 \
|
| 60 |
&& rm -rf /var/lib/apt/lists/*
|
| 61 |
|
| 62 |
# Copia apenas os binários compilados do stage 1
|
| 63 |
COPY --from=builder /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg
|
| 64 |
COPY --from=builder /usr/local/bin/ffprobe /usr/local/bin/ffprobe
|
| 65 |
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
|
| 71 |
WORKDIR /app
|
| 72 |
COPY app.py .
|
|
|
|
| 5 |
|
| 6 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 7 |
build-essential nasm yasm bzip2 git wget \
|
| 8 |
+
libfdk-aac-dev libx264-dev libx265-dev libnuma-dev zlib1g-dev \
|
| 9 |
&& rm -rf /var/lib/apt/lists/*
|
| 10 |
|
| 11 |
# nv-codec-headers (necessário para h264_nvenc / hevc_nvenc / cuvid)
|
|
|
|
| 36 |
--enable-nvenc \
|
| 37 |
--enable-nvdec \
|
| 38 |
--enable-cuda \
|
| 39 |
+
--enable-zlib \
|
| 40 |
--enable-cuvid \
|
| 41 |
--extra-cflags="-O2 -pipe -I/usr/local/cuda/include" \
|
| 42 |
--extra-ldflags="-s -L/usr/local/cuda/lib64" \
|
|
|
|
| 57 |
# Só as libs de runtime necessárias
|
| 58 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 59 |
python3 python3-pip ca-certificates \
|
| 60 |
+
libfdk-aac2 libx264-163 libx265-199 libnuma1 zlib1g \
|
| 61 |
&& rm -rf /var/lib/apt/lists/*
|
| 62 |
|
| 63 |
# Copia apenas os binários compilados do stage 1
|
| 64 |
COPY --from=builder /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg
|
| 65 |
COPY --from=builder /usr/local/bin/ffprobe /usr/local/bin/ffprobe
|
| 66 |
|
| 67 |
+
# ── Valida que todos os filtros, decoders e demuxers necessários estão presentes ──
|
| 68 |
+
RUN set -e; \
|
| 69 |
+
echo "--- versão ---"; ffmpeg -version | head -1; \
|
| 70 |
+
echo "--- encoders ---"; \
|
| 71 |
+
for c in libx264 libx265 h264_nvenc hevc_nvenc libfdk_aac; do \
|
| 72 |
+
ffmpeg -encoders 2>/dev/null | grep -q " $c " || (echo "❌ encoder ausente: $c" && exit 1); \
|
| 73 |
+
echo " ✅ encoder $c"; \
|
| 74 |
+
done; \
|
| 75 |
+
echo "--- decoders ---"; \
|
| 76 |
+
for c in h264 hevc aac mp3 png mjpeg; do \
|
| 77 |
+
ffmpeg -decoders 2>/dev/null | grep -q " $c " || (echo "❌ decoder ausente: $c" && exit 1); \
|
| 78 |
+
echo " ✅ decoder $c"; \
|
| 79 |
+
done; \
|
| 80 |
+
echo "--- filtros ---"; \
|
| 81 |
+
for f in scale crop fps mpdecimate overlay format loudnorm aresample scale_cuda hwupload_cuda hwdownload; do \
|
| 82 |
+
ffmpeg -filters 2>/dev/null | grep -q " $f " || (echo "❌ filtro ausente: $f" && exit 1); \
|
| 83 |
+
echo " ✅ filtro $f"; \
|
| 84 |
+
done; \
|
| 85 |
+
echo "--- demuxers ---"; \
|
| 86 |
+
for d in mov mp4 matroska image2 png_pipe; do \
|
| 87 |
+
ffmpeg -demuxers 2>/dev/null | grep -q " $d " || (echo "❌ demuxer ausente: $d" && exit 1); \
|
| 88 |
+
echo " ✅ demuxer $d"; \
|
| 89 |
+
done; \
|
| 90 |
+
echo "✅ ffmpeg OK — todos os componentes presentes"
|
| 91 |
|
| 92 |
WORKDIR /app
|
| 93 |
COPY app.py .
|