软件包: gstreamer1.0-libav 1.24.6-1deepin2 (crimson/main,amd64) libgstreamer1.0-0 1.24.6-1 (crimson/main,amd64)
系统环境: Deepin(社区仓库 crimson / beige) 架构:amd64
问题描述: gstreamer1.0-libav 的版本号标注为 1.24.6-1deepin2,但包内的 libgstlibav.so 实际是使用 GStreamer 1.26 的头文件编译的,插件注册的 ABI 版本为 1.26。系统核心 libgstreamer1.0-0 为 1.24.6,GStreamer 加载插件时因主版本不匹配而拒绝加载,导致所有依赖 libav 插件的软件不可用。
gstreamer1.0-libav
1.24.6-1deepin2
libgstlibav.so
libgstreamer1.0-0
复现步骤:
sudo apt install gstreamer1.0-libav gstreamer1.0-tools rm -rf ~/.cache/gstreamer-1.0 GST_DEBUG=GST_PLUGIN_LOADING:4 gst-inspect-1.0 libav 2>&1 | grep -i -E "libav|error|not found"
sudo apt install gstreamer1.0-libav gstreamer1.0-tools
rm -rf ~/.cache/gstreamer-1.0
GST_DEBUG=GST_PLUGIN_LOADING:4 gst-inspect-1.0 libav 2>&1 | grep -i -E "libav|error|not found"
预期结果: gst-inspect-1.0 libav 正常列出 avdec_h264、avdec_aac 等元素。
gst-inspect-1.0 libav
实际结果: gst-inspect-1.0 libav 输出"没有那样的组件或插件'libav'",调试日志显示: WARN GST_PLUGIN_LOADING gstplugin.c:499:gst_plugin_register_func: plugin "/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so" has incompatible version (plugin: 1.26, gst: 1.24), not loading
WARN GST_PLUGIN_LOADING gstplugin.c:499:gst_plugin_register_func: plugin "/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so" has incompatible version (plugin: 1.26, gst: 1.24), not loading
原因分析: dpkg -L gstreamer1.0-libav 确认 libgstlibav.so 已正常安装于 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so,文件本身存在,仅因编译时所用 GStreamer 版本(1.26)与仓库中 libgstreamer1.0-0(1.24.6)不一致而无法注册。包版本号 1.24.6-1deepin2 与包内实际 ABI 版本(1.26)不符,应属打包时链接到了错误版本的 GStreamer 开发包,或打包环境与仓库其余 GStreamer 组件(plugins-base/good 为 1.24.13,plugins-bad/ugly 为 1.24.6)未对齐。
dpkg -L gstreamer1.0-libav
/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so
修复建议: 使用与 libgstreamer1.0-0 = 1.24.6 匹配的 GStreamer 开发环境重新构建 gstreamer1.0-libav;或在仓库整体升级至 GStreamer 1.26 时一并推进,并使版本号与实际 ABI 保持一致。
libgstreamer1.0-0 = 1.24.6
No replies yet
Featured Collection
Popular Ranking
Popular Events
软件包:
gstreamer1.0-libav 1.24.6-1deepin2 (crimson/main,amd64)
libgstreamer1.0-0 1.24.6-1 (crimson/main,amd64)
系统环境:
Deepin(社区仓库 crimson / beige)
架构:amd64
问题描述:
gstreamer1.0-libav的版本号标注为1.24.6-1deepin2,但包内的libgstlibav.so实际是使用 GStreamer 1.26 的头文件编译的,插件注册的 ABI 版本为 1.26。系统核心libgstreamer1.0-0为 1.24.6,GStreamer 加载插件时因主版本不匹配而拒绝加载,导致所有依赖 libav 插件的软件不可用。复现步骤:
sudo apt install gstreamer1.0-libav gstreamer1.0-toolsrm -rf ~/.cache/gstreamer-1.0GST_DEBUG=GST_PLUGIN_LOADING:4 gst-inspect-1.0 libav 2>&1 | grep -i -E "libav|error|not found"预期结果:
gst-inspect-1.0 libav正常列出 avdec_h264、avdec_aac 等元素。实际结果:
gst-inspect-1.0 libav输出"没有那样的组件或插件'libav'",调试日志显示:WARN GST_PLUGIN_LOADING gstplugin.c:499:gst_plugin_register_func: plugin "/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so" has incompatible version (plugin: 1.26, gst: 1.24), not loading原因分析:
dpkg -L gstreamer1.0-libav确认libgstlibav.so已正常安装于/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so,文件本身存在,仅因编译时所用 GStreamer 版本(1.26)与仓库中libgstreamer1.0-0(1.24.6)不一致而无法注册。包版本号1.24.6-1deepin2与包内实际 ABI 版本(1.26)不符,应属打包时链接到了错误版本的 GStreamer 开发包,或打包环境与仓库其余 GStreamer 组件(plugins-base/good 为 1.24.13,plugins-bad/ugly 为 1.24.6)未对齐。修复建议:
使用与
libgstreamer1.0-0 = 1.24.6匹配的 GStreamer 开发环境重新构建gstreamer1.0-libav;或在仓库整体升级至 GStreamer 1.26 时一并推进,并使版本号与实际 ABI 保持一致。