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?
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:
libgstvorbis.so, these should be in a directory called gstreamer-1.0, usually under the systems lib directory.
Close strawberry and delete the plugin cache
You can check that the plugins are correctly detected using the
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.
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
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.