once pocketsphinx听关键字,我启用了阀门:
self.recording_valve.set_property('drop',False)
我试图给出一个非常简短的问题。也许它不是位于这一部分,但这就是我的调试引导我的地方。
查看整个项目:
https://github.com/seraf/lisa-client-linux/blob/pocketsphinx/lisa.tac致电此类:
https://github.com/seraf/lisa-client-linux/blob/pocketsphinx/lib/listener.py致电此类: github/seraf/lisa-client-linux/blob/pocketsphinx/lib/recorder.py
认为有点愚蠢,但是我很快重写了我的filesink文件,因此即使使用1秒的时间表也看不到文件中的更改。 撤消有罪的线,向我展示了文件正确填充。 sorry有噪音。
ای了ییییکیکیکیک育خخ证خ极。告觉شش
援者,صای
ایstripsion
خخیشیشیstallyیشیشیstriplyیشیشیstriplyیشیشیstription。 要使用带有阀门元素的GSTREAMER记录流,您通常会设置一个管道来捕获和保存数据,并使用阀门控制流程。阀门元件可用于动态启动和停止数据流,而不会破坏管道。
这里是您如何设置此设置的一个基本示例:Bash GST-Launch-1.0 -E V4L2SRC设备=/dev/video0! VideoConvert! x264enc! mp4mux名称= mux! filesink location = output.mp4 v4l2src device =/dev/video0!阀滴= false! VideoConvert! x264enc! Mux。 这是组件的细分:
python
导入GI
gi.require_version('gst','1.0')
从gi.repository导入GST,gobject
def main():
GST.Init(无)
pipeline = Gst.parse_launch(
"v4l2src device=/dev/video0 ! videoconvert ! x264enc ! mp4mux name=mux ! filesink location=output.mp4 v4l2src device=/dev/video0 ! valve name=myvalve drop=false ! videoconvert ! x264enc ! mux."
)
valve = pipeline.get_by_name('myvalve')
# Start playing the pipeline
pipeline.set_state(Gst.State.PLAYING)
# To stop the recording
# valve.set_property('drop', True)
# To start the recording
# valve.set_property('drop', False)
# Run the main loop
loop = GObject.MainLoop()
try:
loop.run()
except KeyboardInterrupt:
pass
# Clean up
pipeline.set_state(Gst.State.NULL)
如果name
==“main
”: 主要的() 笔记: GSTREAMER元素:调整galvanize管道元素元素以匹配您的输入源,编解码器和文件格式。 Gobject Mainloop:该示例使用Gobject的主循环来保持应用程序运行。使用CTRL+C停止。 动态阀门控制:理想情况下,对阀门(Drop属性)的控制将与某些应用程序逻辑或用户输入相关。 错误处理:通过错误检查在设置和执行过程中处理各种条件。 此设置使您可以动态地开始并停止输入流到文件中,而无需拆除或重建管道。