gpt4 book ai didi

python - 如何在 gstreamer 中录制预定义时间的音频?

转载 作者:太空宇宙 更新时间:2023-11-03 18:37:32 28 4
gpt4 key购买 nike

我有 python gstreamer - 1.0 代码,它使用“autoaudiosrc”元素记录音频。我的问题是在“预定义”几秒后停止管道,最好我想以 gstelement 格式添加它。

当前用于记录的管道:

gst-launch-1.0 autoaudiosrc num-buffers=100 ! audioconvert ! vorbisenc ! oggmux ! filesink location="sit.ogg"

对应的python代码

import sys, os


import gi
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst, Gtk
GObject.threads_init()
Gst.init(None)

pipeline = Gst.Pipeline()
current_state = "STATE_NULL"

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()

~

最佳答案

是的。您可以启动计时器(g_timeout_add 或通过 gst_clock_new_single_shot_id 使用 gstreamer 时钟)。当计时器/时钟回调触发时,将 eos 事件发送到管道 (gst_element_send_event(pipeline, gst_event_new_eos())。

关于python - 如何在 gstreamer 中录制预定义时间的音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21253064/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com