Skip to content

Commit aebb757

Browse files
committed
Upgrade to ffmpeg 8.1.2, use ubuntu26.04
1 parent eeffe6f commit aebb757

5 files changed

Lines changed: 165 additions & 10 deletions

File tree

.github/workflows/build_base_ubuntu-cuda.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ jobs:
1919
cuda_version: "12.9.1"
2020
ffnvcodec_version: "12.2.72.0"
2121
ffmpeg_version: "8.1.2"
22+
- cuda: 13
23+
os: ubuntu
24+
os_version: "26.04"
25+
platforms: linux/amd64
26+
cuda_version: "13.3.0"
27+
ffnvcodec_version: "13.0.19.0"
28+
ffmpeg_version: "8.1.2"
2229
steps:
2330
- name: Get current date
2431
run: |

.github/workflows/build_base_ubuntu-vaapi.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
include:
1515
- ffmpeg_version: "8.1.2"
1616
os: ubuntu
17-
os_version: "24.04"
17+
os_version: "26.04"
1818
platforms: linux/amd64
1919
steps:
2020
- name: Get current date

Build.sh

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set -au
55
function build_default_native() {
66
export OS_NAME=alpine
77
export OS_VERSION=3.23
8-
export FFMPEG_VERSION=8.1.1
8+
export FFMPEG_VERSION=8.1.2
99

1010
docker build \
1111
--progress=plain \
@@ -18,7 +18,7 @@ function build_default_native() {
1818
function build_default() {
1919
export OS_NAME=alpine
2020
export OS_VERSION=3.23
21-
export FFMPEG_VERSION=8.1.1
21+
export FFMPEG_VERSION=8.1.2
2222

2323
docker buildx build \
2424
--load \
@@ -33,7 +33,7 @@ function build_default() {
3333
function build_rpi() {
3434
export OS_NAME=alpine
3535
export OS_VERSION=3.21
36-
export FFMPEG_VERSION=8.1.1
36+
export FFMPEG_VERSION=8.1.2
3737

3838
docker build \
3939
--progress=plain \
@@ -46,7 +46,7 @@ function build_rpi() {
4646
function build_cuda12() {
4747
export OS_NAME=ubuntu
4848
export OS_VERSION=24.04
49-
export FFMPEG_VERSION=8.1.1
49+
export FFMPEG_VERSION=8.1.2
5050
export FFNVCODEC_VERSION=12.2.72.0
5151

5252
docker build \
@@ -59,10 +59,26 @@ function build_cuda12() {
5959
-t datarhei/base:ffmpeg${FFMPEG_VERSION}-cuda-ubuntu$OS_VERSION-cuda${CUDA_VERSION} .
6060
}
6161

62+
function build_cuda13() {
63+
export OS_NAME=ubuntu
64+
export OS_VERSION=26.04
65+
export FFMPEG_VERSION=8.1.2
66+
export FFNVCODEC_VERSION=13.0.19.0
67+
68+
docker build \
69+
--progress=plain \
70+
--build-arg BUILD_IMAGE=nvidia/cuda:$CUDA_VERSION-devel-ubuntu$OS_VERSION \
71+
--build-arg DEPLOY_IMAGE=nvidia/cuda:$CUDA_VERSION-runtime-ubuntu$OS_VERSION \
72+
--build-arg FFNVCODEC_VERSION=$FFNVCODEC_VERSION \
73+
--build-arg FFMPEG_VERSION=$FFMPEG_VERSION \
74+
-f Dockerfile.ubuntu.cuda13 \
75+
-t datarhei/base:ffmpeg${FFMPEG_VERSION}-cuda-ubuntu$OS_VERSION-cuda${CUDA_VERSION} .
76+
}
77+
6278
function build_vaapi() {
6379
export OS_NAME=ubuntu
64-
export OS_VERSION=24.04
65-
export FFMPEG_VERSION=8.1.1
80+
export OS_VERSION=26.04
81+
export FFMPEG_VERSION=8.1.2
6682

6783
docker buildx build \
6884
--load \
@@ -88,6 +104,8 @@ main() {
88104
build_rpi
89105
elif [[ $1 == "cuda12" ]]; then
90106
build_cuda12
107+
elif [[ $1 == "cuda13" ]]; then
108+
build_cuda13
91109
elif [[ $1 == "vaapi" ]]; then
92110
build_vaapi
93111
fi

Dockerfile.ubuntu.cuda13

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
ARG BUILD_IMAGE=nvidia/cuda:12.6.1-devel-ubuntu24.04
2+
ARG DEPLOY_IMAGE=nvidia/cuda:12.6.1-runtime-ubuntu24.04
3+
4+
FROM $BUILD_IMAGE AS builder
5+
6+
ARG FFNVCODEC_VERSION=12.2.72.0
7+
ARG BUILD_DATE=1970-01-01T00:00:00Z
8+
ARG BUILD_COMMIT=unknown
9+
ARG FFMPEG_VERSION=none
10+
11+
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
12+
ENV SRC=/usr/local
13+
ENV DEBIAN_FRONTEND=noninteractive
14+
15+
RUN apt-get update -y && \
16+
apt-get install -y \
17+
pkg-config \
18+
curl \
19+
libcurl4-openssl-dev \
20+
git \
21+
nasm \
22+
openssl \
23+
libssl-dev \
24+
cmake \
25+
yasm \
26+
build-essential \
27+
libtool \
28+
autoconf \
29+
libv4l-dev \
30+
libasound2-dev \
31+
libx264-dev \
32+
libx265-dev \
33+
librav1e-dev \
34+
libaom-dev \
35+
libdav1d-dev \
36+
libvpx-dev \
37+
libmp3lame-dev \
38+
libopus-dev \
39+
libvorbis-dev \
40+
libogg-dev \
41+
libfreetype-dev \
42+
libharfbuzz-dev \
43+
libsrt-openssl-dev \
44+
libxml2-dev \
45+
libfdk-aac-dev \
46+
libharfbuzz-dev \
47+
libxml2-dev \
48+
libxcb1-dev \
49+
libxcb-xfixes0-dev \
50+
libxcb-shm0-dev \
51+
libxcb-shape0-dev \
52+
zlib1g-dev
53+
54+
# install and patch ffmpeg
55+
RUN mkdir -p /dist && cd /dist && \
56+
curl -OLk http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz && \
57+
curl -OLk https://github.com/FFmpeg/nv-codec-headers/releases/download/n${FFNVCODEC_VERSION}/nv-codec-headers-${FFNVCODEC_VERSION}.tar.gz && \
58+
tar -xvz -f ffmpeg-${FFMPEG_VERSION}.tar.gz && \
59+
tar -xvz -f nv-codec-headers-${FFNVCODEC_VERSION}.tar.gz && \
60+
rm ffmpeg-${FFMPEG_VERSION}.tar.gz nv-codec-headers-${FFNVCODEC_VERSION}.tar.gz && \
61+
cd nv-codec-headers-${FFNVCODEC_VERSION} && \
62+
make install
63+
64+
COPY ./contrib /contrib
65+
66+
RUN cd /dist/ffmpeg-${FFMPEG_VERSION} && \
67+
patch -p1 < /contrib/ffmpeg-jsonstats.patch && \
68+
patch -p1 < /contrib/ffmpeg-hls.patch && \
69+
./configure \
70+
--extra-version="datarhei-${BUILD_COMMIT}-${BUILD_DATE}" \
71+
--extra-libs="-lpthread -lxml2 -lm -lz -lsupc++ -lstdc++ -lssl -lcrypto -lc -ldl -lcurl" \
72+
--prefix="${SRC}" \
73+
--extra-cflags=-I/usr/local/cuda/include \
74+
--extra-ldflags=-L/usr/local/cuda/lib64 \
75+
--enable-nonfree \
76+
--enable-gpl \
77+
--enable-version3 \
78+
--enable-static \
79+
--enable-openssl \
80+
--enable-libxml2 \
81+
--enable-cuda \
82+
--enable-cuda-llvm \
83+
--enable-cuda-nvcc \
84+
--enable-nvdec \
85+
--enable-nvenc \
86+
--enable-cuvid \
87+
--enable-libv4l2 \
88+
--enable-libfreetype \
89+
--enable-libharfbuzz \
90+
--enable-alsa \
91+
--enable-libsrt \
92+
--enable-libx264 \
93+
--enable-libx265 \
94+
--enable-libvpx \
95+
--enable-libmp3lame \
96+
--enable-libfdk-aac \
97+
--enable-libopus \
98+
--enable-libvorbis \
99+
--enable-libdav1d \
100+
--enable-librav1e \
101+
--enable-libaom \
102+
--enable-libxcb \
103+
--disable-ffplay \
104+
--disable-ffprobe \
105+
--disable-debug \
106+
--disable-doc && \
107+
make -j$(nproc) && \
108+
make install && \
109+
hash -r
110+
111+
RUN mkdir -p /ffmpeglibs && \
112+
ldd /usr/local/bin/ffmpeg | grep -o -e '/lib/[a-z0-9_]*-linux-gnu/[^ ]*' | xargs -I % cp -v % /ffmpeglibs
113+
114+
FROM $DEPLOY_IMAGE
115+
116+
COPY --from=builder /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg
117+
COPY --from=builder /ffmpeglibs /ffmpeglibs
118+
119+
ENV DEBIAN_FRONTEND=noninteractive
120+
121+
RUN echo "/ffmpeglibs" > /etc/ld.so.conf.d/ffmpeg.conf && \
122+
ldconfig && \
123+
apt-get update && \
124+
apt-get install -y ca-certificates openssl tzdata v4l-utils fbset libasound2-dev && \
125+
ffmpeg -buildconf
126+
127+
ENV NVIDIA_VISIBLE_DEVICES=all
128+
ENV NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
129+
130+
WORKDIR /tmp
131+
ENTRYPOINT ["/usr/local/bin/ffmpeg"]
132+
CMD ["-version"]

Dockerfile.ubuntu.vaapi

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,7 @@ RUN git clone https://github.com/intel/gmmlib.git /tmp/gmmlib && \
8383
RUN git clone https://github.com/intel/media-driver.git /tmp/media-driver && \
8484
cd /tmp/media-driver && \
8585
mkdir build_media && cd build_media && \
86-
cmake -DCMAKE_INSTALL_PREFIX=/usr \
87-
-DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu \
88-
../ && \
86+
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu -DCMAKE_POLICY_VERSION_MINIMUM=3.5 ../ && \
8987
make -j$(nproc) && \
9088
make install
9189

0 commit comments

Comments
 (0)