【发布时间】:2015-12-10 14:16:32
【问题描述】:
我是 Gstreamer 的新手,基本上已经阅读了一天的文档。我需要一个程序,每 5 分钟从音频输入中捕获 10-15 秒的音频并将其存储到文件中。 我唯一不知道该怎么做的是捕获本身,因为我以前没有使用过输入。现在我在网上找到了这段代码,但不知道它是否对我有帮助(我了解其中的大部分内容,但不知道它在哪里保存文件,如果它完全保存它们)任何帮助将不胜感激
import gi
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst, Gtk
GObject.threads_init()
Gst.init(None)
pipeline = Gst.Pipeline()
autoaudiosrc = Gst.ElementFactory.make("autoaudiosrc", "autoaudiosrc")
audioconvert = Gst.ElementFactory.make("audioconvert", "audioconvert")
vorbisenc = Gst.ElementFactory.make("vorbisenc", "vorbisenc")
oggmux = Gst.ElementFactory.make("oggmux", "oggmux")
filesink = Gst.ElementFactory.make("filesink", "filesink")
url = "1.ogg"
filesink.set_property("location",url)
pipeline.add( autoaudiosrc)
pipeline.add( audioconvert)
pipeline.add( vorbisenc)
pipeline.add( oggmux)
pipeline.add( filesink)
autoaudiosrc.link( audioconvert)
audioconvert.link( vorbisenc)
vorbisenc.link( oggmux)
oggmux.link( filesink)
pipeline.set_state(Gst.State.PLAYING)
Gtk.main()
附:一位教授向我推荐了 gstreamer,但我还没有找到一个好的选择,所以这就是我尝试它的原因,但如果有更好的方法请告诉我,因为我觉得 gstreamer 更适合播放器/播放性质
【问题讨论】:
标签: audio gstreamer audio-recording