0%

GStreamer中audiomixer

GStreamer中audiomixer

GStreamear中audiomixer允许合并多路输出流。与叠加器不同可以同步所以输入流。但是这里的混合原理还是不算了解。不同频率的音频合并原理?

测试

首先测试频率为100的音频:

1
gst-launch-1.0 audiotestsrc freq=100 ! alsasink

然后测试频率为500的音频:

1
gst-launch-1.0 audiotestsrc freq=500 ! alsasink

然后测试混合音频:

1
gst-launch-1.0 audiotestsrc freq=100 ! audiomixer name=mix ! audioconvert ! alsasink audiotestsrc freq=500 ! mix.

混合后的音频感觉频率处在100和500之间但是。具体多大不了解。

audiotestsrc

测试音频可以产生基本的音频信号,可以提供不同的波形,可以设置不同的频率和音量。

例子(Example)

1
gst-launch-1.0 audiotestsrc ! audioconvert ! autoaudiosink

这个pipeline默认产生了默认频率40Hz默认音量为0.8的正弦波。

1
gst-launch-1.0 audiotestsrc wave=2 freq=200 ! tee name=t ! queue ! audioconvert ! autoaudiosink t. ! queue ! audioconvert ! libvisual_lv_scope ! videoconvert ! autovideosink

这个pipeline是生成锯波。 波形显示使用libvisual的展示给显示器,让您可视化地验证锯波是否正确。

audiotestsrc波形

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
GST_AUDIO_TEST_SRC_WAVE_SINE
a sine wave

GST_AUDIO_TEST_SRC_WAVE_SQUARE
a square wave

GST_AUDIO_TEST_SRC_WAVE_SAW
a saw wave

GST_AUDIO_TEST_SRC_WAVE_TRIANGLE
a tringle wave

GST_AUDIO_TEST_SRC_WAVE_SILENCE
silence

GST_AUDIO_TEST_SRC_WAVE_WHITE_NOISE
white uniform noise

GST_AUDIO_TEST_SRC_WAVE_PINK_NOISE
pink noise

GST_AUDIO_TEST_SRC_WAVE_SINE_TAB
sine wave using a table

GST_AUDIO_TEST_SRC_WAVE_TICKS
periodic ticks

GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE
white (zero mean) Gaussian noise; volume sets the standard deviation of the noise in units of the range of values of the sample type, e.g. volume=0.1 produces noise with a standard deviation of 0.1*32767=3277 with 16-bit integer samples, or 0.1*1.0=0.1 with floating-point samples.

GST_AUDIO_TEST_SRC_WAVE_RED_NOISE
red (brownian) noise

GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE
spectraly inverted pink noise

GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE
spectraly inverted red (brownian) noise