gstreamer sink issue with .ogg files on freeBSD
-
Hello! I’m sorry but I don’t want to waste hours and hours trying to find a solution when there are probably people around here who know how to debug this.
I’m on FreeBSD (yeah, don’t ask) and strawberry works largely fine, which I am very happy about. I installed the gstreamer1-plugins-all meta package and the vorbis package is definitely installed. And yet, ogg files don’t play. Instead I get this nonsense:
The stream is in the wrong format. ../gst-libs/gst/audio/gstaudiobasesink.c(1193): gst_audio_base_sink_preroll (): /GstPlayBin3:pipeline-10-pipeline/GstPlaySink:playsink/GstBin:abin/GstBin:audiobin/GstAutoAudioSink:pipeline-10-autoaudiosink/GstSndioSink:pipeline-10-autoaudiosink-actual-sink-sndio: sink not negotiated.
I don’t understand why it has trouble figuring out its sink only in this specific file format. I don’t know if I’m doing something wrong, or if something is wrong with the FreeBSD package, or if this is an honest bug. How do I find out?
Edit: I just had the genius idea to try playing the same files in vlc, and that works fine. So, is this a bug in strawberry?
-
@skyenosaur
The .ogg files, are you sure those are Ogg Vorbis? In that case you need the gstreamer ogg and vorbis plugins, check that you have the files:libgstogg.so
andlibgstvorbis.so
, these should be in a directory called gstreamer-1.0, usually under the systems lib directory.
Close strawberry and delete the plugin cache~/.cache/gstreamer-1.0/*.bin
.
You can check that the plugins are correctly detected using thegst-inspect-1.0
utility.:gst-inspect-1.0 ogg gst-inspect-1.0 vorbis
-
I suggest also to check the files with file utility to double-check that the files are actually Ogg Vorbis, there is also Opus and FLAC which could use the same extension.
file <filename>
Should return Ogg data, Vorbis audio
-
@jonas hi, thank you for your reply! i deleted the cache file and checked all the things you recommended. the libraries are present, gst-inspect looks pretty satisfied with them, the files are definitely vorbis. i am a little stumped
-
@skyenosaur
What format are the audio files in, are they 44.1Khz / 16 bit or something else?
If you enable the equalizer or the replay gain, do they play then?Does it play using gst-play-1.0?
gst-play-1.0 --use-playbin3 file:///filepath
-
I now notice from the debug message that you are using sndio, that's a 3rdparty unsupported plugin not part of gstreamer. I suggest to report this issue to FreeBSD.
-
@jonas thanks a lot!! yeah gst-play does indeed not play them. i’m gonna find the right people to report this issue to. thank you very much, you saved me a bunch of headaches here
also i made it work by simply removing the sndio package, that was a very helpful hint.
-
@jonas
In FreeBSD 14.0, following the instructions given in this post, my case is the same, strawberry only works if I remove the sndio package. It turns out that sndio is necessary to open the ungoogled-chromium browser, because without it the browser doesn't work!Other programs like smplayer, and ogg itself play ogg, possibly because they don't use this gst.
In other words, that gst is a problem!
Is there anything you can do to use strawberry? Because you can't choose between strawberry and Ungoogle Chromium. I need both working! Any ideas?
-
@apprentice
Like I already said, report it to FreeBSD.
Someone from the BSD community needs to maintain the sndio plugin for GStreamer.