Skip to content

fix: update FFmpeg on Linux to avoid GStreamer ABI conflict - #12076

Open
BenJule wants to merge 1 commit into
bambulab:masterfrom
BenJule:fix/issue-12074-linux-ffmpeg-715
Open

fix: update FFmpeg on Linux to avoid GStreamer ABI conflict#12076
BenJule wants to merge 1 commit into
bambulab:masterfrom
BenJule:fix/issue-12074-linux-ffmpeg-715

Conversation

@BenJule

@BenJule BenJule commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Summary

Update the bundled FFmpeg dependency from 7.0.2 to 7.1.5 on Linux to avoid an ABI conflict with newer system GStreamer libav plugins.

macOS remains on FFmpeg 7.0.2 and the MSVC/Windows dependency is unchanged.

Fixes #12074

Problem

The generated Linux launcher exposes BambuStudio's bundled libraries through:

export LD_LIBRARY_PATH="$DIR/bin"

BambuStudio currently bundles FFmpeg 7.0.2, including:

libavcodec.so.61
libavutil.so.59
libswresample.so.5
libswscale.so.8

On Debian 13, the system GStreamer libav plugin is built against FFmpeg 7.1.5.

Both FFmpeg versions expose the same libavutil.so.59 SONAME, but the bundled FFmpeg 7.0.2 library does not provide:

av_mastering_display_metadata_alloc_size

The system GStreamer plugin requires that symbol.

This causes gst-plugin-scanner to fail with:

libavformat.so.61:
undefined symbol: av_mastering_display_metadata_alloc_size,
version LIBAVUTIL_59

Fix

Use FFmpeg 7.1.5 for Linux builds while keeping the existing FFmpeg 7.0.2 dependency for macOS.

The MSVC dependency is not modified.

The Linux FFmpeg source archive is updated to:

n7.1.5
SHA256=e3963a50831c985933e1a625ed566ec4c7adb5c012c34fa9f84438e1d61bdacc

FFmpeg 7.1.5 retains the same relevant major library versions while providing the symbol required by newer GStreamer builds.

Validation

Before changing the dependency, the issue was reproduced using the packaged Linux build with the normal BambuStudio launcher.

With bundled FFmpeg 7.0.2:

gst-plugin-scanner:
Failed to load plugin ... libgstlibav.so

undefined symbol:
av_mastering_display_metadata_alloc_size
version LIBAVUTIL_59

As an A/B runtime test, the FFmpeg 7.0.2 libraries in an isolated copy of the package were replaced with the installed Debian 13 FFmpeg 7.1.5 libraries while keeping the original BambuStudio launcher and its LD_LIBRARY_PATH.

Results:

SYSTEM_LIBRARIES=OK
REPLACEMENT=OK
LIBRARIES=OK
av_mastering_display_metadata_alloc_size@@LIBAVUTIL_59
GSTREAMER_FFMPEG_FIX=PASS

BambuStudio started normally through the original launcher and the GStreamer/FFmpeg undefined-symbol warning disappeared.

Existing unrelated GTK warnings such as:

gtk_window_resize: assertion 'width > 0' failed

are unaffected and are not part of this fix.

Scope

Only:

deps/FFMPEG/FFMPEG.cmake

is changed.

The actual dependency change still needs to be validated by CI by building the Linux package with FFmpeg 7.1.5 and then testing that generated artifact through the normal launcher.

Update the bundled Linux FFmpeg dependency from 7.0.2 to 7.1.5.

The Linux launcher exposes bundled libraries through LD_LIBRARY_PATH.
FFmpeg 7.0.2 provides libavutil.so.59 but lacks symbols required by
newer system GStreamer libav plugins using the same SONAME.

FFmpeg 7.1.5 provides the required ABI while preserving the existing
major library versions. Update the Linux copy and install lists for the
new FFmpeg library filenames.

macOS remains on 7.0.2 and the MSVC dependency is unchanged.

Fixes bambulab#12074

Signed-off-by: Benjamin Lütker <benjamin.luetker@gmail.com>
@BenJule
BenJule force-pushed the fix/issue-12074-linux-ffmpeg-715 branch from 88acd60 to 77315f1 Compare August 29, 2026 21:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Linux package: bundled FFmpeg conflicts with system GStreamer via LD_LIBRARY_PATH

1 participant