使用 GStreamer 的 Clementine 无法播放 OGG 文件

使用 GStreamer 的 Clementine 无法播放 OGG 文件

从最近开始,大约 2-3 周前,我相信经过一些更新后,Clementine 停止播放 OGG 文件。我玩的所有其他格式都没有任何问题。同时VLC可以播放这些相同的OGG文件。

当失败时,Clementine 会弹出一个错误窗口,仅显示以下消息:内部数据流错误。

内部数据流错误

同时,此错误消息被打印到终端:

(clementine:647736): GStreamer-CRITICAL **: 11:27:26.111: gst_pad_get_range_unchecked: assertion '!*buffer || res_buf == *buffer' failed

(clementine:647736): GStreamer-CRITICAL **: 11:27:26.111: gst_mini_object_unref: assertion 'GST_MINI_OBJECT_REFCOUNT_VALUE (mini_object) > 0' failed
11:27:26.186 WARN  unknown                          QTimeLine::start: already running 
11:27:26.691 WARN  unknown                          QTimeLine::start: already running 
11:27:26.691 WARN  unknown                          QTimeLine::start: already running 
11:27:26.695 WARN  unknown                          QTimeLine::start: already running 

版本信息:

  • Fedora 33 5.9.11-200.fc33.x86_64
  • 克莱门汀.x86_64:1.4.0-3.rc1.20200617gitedb8c3b.fc33.1
  • gstreamer1.x86_64:1.18.2-1.fc33
  • gstreamer1-libav.x86_64:1.18.1-1.fc33
  • gstreamer1-插件-openh264.x86_64:1.16.2-2.fc33
  • gstreamer1-plugins-bad-free.x86_64:1.18.2-1.fc33
  • gstreamer1-plugins-bad-free-extras.x86_64:1.18.2-1.fc33
  • gstreamer1-plugins-base.x86_64:1.18.2-1.fc33
  • gstreamer1-plugins-good.x86_64:1.18.2-1.fc33
  • gstreamer1-插件-good-gtk.x86_64:1.18.2-1.fc33
  • gstreamer1-插件-good-qt.x86_64:1.18.2-1.fc33
  • gstreamer1-plugins-ugly.x86_64:1.18.1-1.fc33
  • gstreamer1-plugins-ugly-free.x86_64:1.18.2-1.fc33

知道是什么原因造成的以及如何解决它吗?

答案1

我想我在 Ubuntu 20.10 上也遇到了同样的问题,或者至少是同样的症状。它以同样的方式从命令行影响 Clementine 和 gst-play-1.0。从 20.04 升级后出现问题。就我而言,它只影响了我收藏的约 680 个 ogg 文件中的几张专辑。事实证明,这是一个可能有问题的特定编码器。当对这些文件运行 ogginfo 时,它将显示供应商字符串,如下所示:

供应商:Xiphophorus libVorbis I 20010813 (1.0 rc2)

和这样的错误:

警告:在大约偏移量 5265129 字节处发现数据(128 字节)中的漏洞。腐败的奥格。

因此,您可能还遇到了旧编码器中的错误,以前版本的 GStreamer 忽略了该错误,但现在出现了问题。

我发现用 ffmpeg 重新编码文件解决了这个问题: ffmpeg -i file.ogg -acodec copy newfile.ogg

我还在您在此处打开的错误报告中发布了基本相同的详细信息: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/848

答案2

元素绿色。感谢您发布您的答案,我特地加入了 stackexchange 来发布此感谢,但由于我是新人,所以无法投票或发表评论。

我编辑了大部分音乐的 ID3 标签,并且所有基于 .ogg 的文件在 Clementine 和 Rhythmbox 音频播放器上都开始出现“内部数据流”错误的问题。通过 VLC 可以正常播放文件。

我当时没有将问题与编辑标签联系起来。 gstreamer bug 中的参考表明该问题可能是由于 ID3 标签造成的。

ogginfo在问题文件上运行报告“标头之外的 Vorbis 流上的负颗粒位置或零颗粒位置 (0)。此文件是由有问题的编码器创建的”

ogginfo 位于 Vorbis-tools 包中,适合像我这样的新手并试图找到它。

运行ffmpeg -i file.ogg -acodec copy newfile.ogg所有有问题的文件,再次清理它们,现在一切正常。

相关内容