Comments (6)
Unfortunately, on my workstation running macOS, despite having gst-plugins-good==1.18.4
installed, it looks like the wavpackenc
element is not available. There is no corresponding file like libgstwavpack.dylib
at /usr/local/Cellar/gst-plugins-good/1.18.4/lib/gstreamer-1.0
.
$ gst-inspect-1.0 | grep -i wavpack
typefindfunctions: audio/x-wavpack-correction: wvc
typefindfunctions: audio/x-wavpack: wv, wvp
libav: avenc_wavpack: libav WavPack encoder
audioparsers: wavpackparse: Wavpack audio stream parser
When using avenc_wavpack
instead, GStreamer croaks with:
gst_parse_error: could not link avenc_wavpack0 to muxer (3)
from saraswati.
However, on a Linux installment, following [1], wavpackenc
seems to be available:
$ docker run -it --rm amd64/debian:buster-slim bash
$ apt-get update
$ apt-get install --yes libgstreamer1.0 gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good
$ gst-inspect-1.0 | grep -i wavpack
wavpack: wavpackenc: Wavpack audio encoder
wavpack: wavpackdec: Wavpack audio decoder
audioparsers: wavpackparse: Wavpack audio stream parser
typefindfunctions: audio/x-wavpack-correction: wvc
typefindfunctions: audio/x-wavpack: wv, wvp
[1] https://github.com/hiveeyes/saraswati#debian-based-systems
from saraswati.
In order to approach this, I used a Docker setup.
Observations
First, I verified that I was able to record something successfully with saraswati record --channel="testdrive source=autoaudiosrc"
. Despite this warning message, it worked when using the FLAC codec.
gst-resource-error-quark: Could not open audio device for recording. (5) (gstalsasrc.c(748): gst_alsasrc_open (): /GstAlsaSrc:autoaudiosrc0-actual-src-als:
Recording open error on device 'default': No such file or directory)
However, when using the WavPack codec, as outlined through #8, GStreamer emits another warning:
gst_parse_error: Delayed linking failed. (7) (./grammar.y(510): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstWavpackEnc:wavpackenc0:
failed delayed linking some pad of GstWavpackEnc named wavpackenc0 to pad audio_0 of GstSplitMuxSink named muxer)
and it looks like the pipeline doesn't get into "playing" mode.
Outlook
We will have to check the patch #8 on a machine with a real ALSA setup.
With kind regards,
Andreas.
from saraswati.
Further observations
We will have to check the patch #8 on a machine with a real ALSA setup.
In order to rule out hardware issues, I quickly checked using audiotestsrc
:
saraswati record --channel="testdrive source=audiotestsrc wave=3 freq=200"
The observations were the same: While it works with the FLAC codec, it croaks with WavPack in the same manner as outlined above. So, the origin of the error is probably in the layout of the pipeline, where the wavpackenc
element seems to need some special treatment to fit into a pipeline using splitmuxsink
. I believe I also observed similar issues with other elements in combination with splitmuxsink
.
More details
Those are the full pipeline definitions we are using for this scenario.
Works
audiotestsrc wave=3 freq=200 ! audioconvert ! queue ! flacenc ! flactag ! flacparse ! muxer.audio_0 splitmuxsink name=muxer muxer=matroskamux max-size-time=300000000000 max-files=9999
Failure 1
audiotestsrc wave=3 freq=200 ! audioconvert ! queue ! wavpackenc ! muxer.audio_0 splitmuxsink name=muxer muxer=matroskamux max-size-time=300000000000 max-files=9999
Failure 2
When adding wavpackparse
, it croaks earlier, already when assembling the pipeline
gst_parse_error: could not link wavpackparse0 to muxer (3)
audiotestsrc wave=3 freq=200 ! audioconvert ! queue ! wavpackenc ! wavpackparse ! muxer.audio_0 splitmuxsink name=muxer muxer=matroskamux max-size-time=300000000000 max-files=9999
from saraswati.
On [1,2], I see there have been a number of fixes to splitmuxsink
in recent versions of gstreamer-plugins-good>=1.18
. However, on the Linux machine I used for testing (amd64/debian:buster-slim
), there is only GStreamer 1.14.4.
We will have to check that again using a more recent GStreamer installment on Linux.
[1] https://build.opensuse.org/package/view_file/openSUSE:Factory/gstreamer-plugins-good/gstreamer-plugins-good.changes?expand=0
[2] https://fossies.org/linux/gst-plugins-good/ChangeLog
from saraswati.
We will have to check that again using a more recent GStreamer installment on Linux.
Same error when using amd64/debian:bullseye-slim
, bringing in GStreamer 1.18.4.
2021-06-21 17:49:43,993 [saraswati.recorder] WARNING: Pipeline warning: gst_parse_error: Delayed linking failed. (7) (gst/parse/grammar.y(540): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstWavpackEnc:wavpackenc0:
failed delayed linking some pad of GstWavpackEnc named wavpackenc0 to pad audio_0 of GstSplitMuxSink named muxer)
from saraswati.
Related Issues (6)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from saraswati.