gstreamer在沉默时停止从alsasrc(line-in,cd等)录制

时间:2016-09-21 12:18:35

标签: gstreamer

这个想法是在这里声音时从Line-In录制(调谐器连接到Line-In或CD)。 我现在要做的是启动代码,并在没有声音约2秒时自动停止录制。我应该怎么做呢?

类似于Udpsrc属性,名为" timeout"。

1 个答案:

答案 0 :(得分:1)

您可以使用管道[1]中的level元素。这将在GstBus上发布音频级别。例如,您可以使用1秒的间隔,如果两个连续的消息具有低rms(< -96),则将eos发布到管道。

快速示例(编辑输出):

GST_DEBUG="level:6" gst-launch-1.0 2>&1 audiotestsrc wave=silence num-buffers=10 ! level post-messages=true ! fakesink | grep ": RMS"
gstlevel.c:766:gst_level_post_message:<level0> message: RMS -700.000000 dB, peak -350.000000 dB, decay -350.000000 dB
gstlevel.c:766:gst_level_post_message:<level0> message: RMS -700.000000 dB, peak -350.000000 dB, decay -350.000000 dB
gstlevel.c:766:gst_level_post_message:<level0> message: RMS -700.000000 dB, peak -350.000000 dB, decay -350.000000 dB

[1] https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-level.html