Здравия!
Имею цель стереопоток с alsasrc разбить на два моно канала. Один канал пустить на alsasink напрямую, а второй поток пропустить через audiomixer и добавлять к нему иные потоки. Базовую конструкцию пайплайна делаю сразу. Она работает и имеет вот такой вид:
gst-launch-1.0 audiotestsrc ! audio/x-raw,channels=2 ! deinterleave name=deinterleave_tsh_in \
deinterleave_tsh_in.src_0 ! audioconvert ! queue! volume name=volume_tsh_in ! \
audiomixer name=audiomixer_tsh ! volume ! queue ! interleave_tsh.sink_0 \
deinterleave_tsh_in.src_1 ! queue! interleave_tsh.sink_1 \
interleave name=interleave_tsh ! capssetter caps="audio/x-raw,channels=2,channel-mask=(bitmask)0x3" ! alsasink \
audiotestsrc freq=2000 ! capsfilter name=c4 caps="audio/x-raw,channels=1" ! queue ! audioconvert ! audiomixer_tsh. \
audiotestsrc freq=3000 ! capsfilter name=c41 caps="audio/x-raw,channels=1" ! queue ! audioconvert ! audiomixer_tsh. \
audiotestsrc freq=4000 ! capsfilter name=c42 caps="audio/x-raw,channels=1" ! queue ! audioconvert ! audiomixer_tsh. \
audiotestsrc freq=5000 ! capsfilter name=c43 caps="audio/x-raw,channels=1" ! queue ! audioconvert ! audiomixer_tsh. \
audiotestsrc freq=6000 ! capsfilter name=c44 caps="audio/x-raw,channels=1" ! queue ! audioconvert ! audiomixer_tsh.
Вывод вот такой:
Установка конвейера в состояние PAUSED…
Подготовка конвейера (PREROLL)…
0:00:00.070060800 9983 0x1c50990 WARN aggregator gstaggregator.c:1391:gst_aggregator_query_latency_unlocked:<audiomixer_tsh> Latency query failed
0:00:00.070674960 9983 0x1c04540 FIXME default gstutils.c:3764:gst_pad_create_stream_id_internal:<audiotestsrc1:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.071309280 9983 0x1c04540 WARN alsa conf.c:4694:snd_config_expand: alsalib error: Unknown parameters {AES0 0x02 AES1 0x82 AES2 0x00 AES3 0x02}
0:00:00.071452680 9983 0x1c045e0 FIXME default gstutils.c:3764:gst_pad_create_stream_id_internal:<audiotestsrc2:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.071794440 9983 0x1c04540 WARN alsa pcm.c:2239:snd_pcm_open_noupdate: alsalib error: Unknown PCM default:{AES0 0x02 AES1 0x82 AES2 0x00 AES3 0x02}
0:00:00.074060400 9983 0x1c509e0 FIXME default gstutils.c:3764:gst_pad_create_stream_id_internal:<audiotestsrc3:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.079287560 9983 0x1c04140 FIXME default gstutils.c:3764:gst_pad_create_stream_id_internal:<audiotestsrc4:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.079586600 9983 0x1c50990 WARN aggregator gstaggregator.c:1391:gst_aggregator_query_latency_unlocked:<audiomixer_tsh> Latency query failed
0:00:00.082484760 9983 0x1c50990 WARN aggregator gstaggregator.c:1391:gst_aggregator_query_latency_unlocked:<audiomixer_tsh> Latency query failed
0:00:00.084717000 9983 0x1c50990 WARN aggregator gstaggregator.c:1391:gst_aggregator_query_latency_unlocked:<audiomixer_tsh> Latency query failed
0:00:00.084800520 9983 0x1c508f0 FIXME default gstutils.c:3764:gst_pad_create_stream_id_internal:<audiotestsrc5:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.086415160 9983 0x1c50990 WARN aggregator gstaggregator.c:1391:gst_aggregator_query_latency_unlocked:<audiomixer_tsh> Latency query failed
0:00:00.087054520 9983 0x1c046d0 FIXME default gstutils.c:3764:gst_pad_create_stream_id_internal:<audiotestsrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.087060200 9983 0x1c50990 WARN aggregator gstaggregator.c:1391:gst_aggregator_query_latency_unlocked:<audiomixer_tsh> Latency query failed
0:00:00.097438800 9983 0x1c04630 FIXME interleave interleave.c:919:gst_interleave_sink_event:<interleave_tsh> FIXME: merge tags and send after stream-start
0:00:00.097968240 9983 0x1c50b20 WARN interleave interleave.c:317:gst_interleave_set_channel_positions:<interleave_tsh> Invalid channel positions, using NONE
0:00:00.098058360 9983 0x1c50b20 FIXME basesink gstbasesink.c:3125:gst_base_sink_default_event:<alsasink0> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
0:00:00.105754240 9983 0x1c50b20 FIXME interleave interleave.c:919:gst_interleave_sink_event:<interleave_tsh> FIXME: merge tags and send after stream-start
Перераспределение латентности…
Конвейер подготовлен (PREROLLED)…
Установка конвейера в состояние PLAYING…
New clock: GstAudioSinkClock
Умные и грамотные люди, поясните сии уведомления.
С уважением!
audio, gstreamer, mono, stereo