Applying an audio edit list...

andrea sarkiaponius at
Wed Feb 5 13:40:19 PST 2014


I'm trying to use gnonlin to remove some pieces from an audio file, but
I just can remove one, not more. Here a working pipeline to select an
interval to be send to the output (alsasink just for testing purposes):

gst-launch-0.10 gnlcomposition { gnlfilesource location=/tmp/test.mp3
start=$((400*10**90)) duration=$((10*10**9)) media-start=$((500*10**9))
media-duration=$((10*10**9)) }  ! audioconvert ! alsasink

This just extracts 10 seconds of the stream starting after 400 seconds.
But I would like to get other pieces of the same stream, extracted the
same way, to be queued to the same output file. I tried to accomplish
something like that with the following pipeline:

gst-launch-0.10 gnlcomposition { gnlfilesource location=/tmp/test.mp3
start=$((400*10**9)) duration=$((10*10**9)) media-start=$((500*10**9))
media-duration=$((10*10**9)) gnlfilesource location=/tmp/test.mp3 start=
$((510*10**9)) duration=$((10*10**9)) media-start=$((800*10**9))
media-duration=$((10*10**9)) }  !  identity single-segment=true !
queue ! audioconvert ! alsasink

This should extract two 10 seconds interval from the stream, the first
starting at 400 seconds, the second starting at 800 seconds. It's very
similar to removing commercials, actually. But the above pipeline gives
me the following message:

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from
element /GstPipeline:pipeline0/GnlFileSource:gnlfilesource0/GstURIDecodeBin:internal-uridecodebin/GstDecodeBin2:decodebin21/GstMpegAudioParse:mpegaudioparse1: GStreamer encountered a general stream error.
Additional debug info:
gstbaseparse.c(2890): gst_base_parse_loop
(): /GstPipeline:pipeline0/GnlFileSource:gnlfilesource0/GstURIDecodeBin:internal-uridecodebin/GstDecodeBin2:decodebin21/GstMpegAudioParse:mpegaudioparse1:
streaming stopped, reason not-linked
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

A more sofisticated approach would be to select an impredictable number
of intervals. What I have in mind is applying a cut or edit list.

Any hint would very much appreciated.

Best regards.

Andrea <sarkiaponius'at'>

More information about the gstreamer-devel mailing list