我的管道中的阀门有问题:

问题描述 投票:0回答:2

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有噪音。

ای了ییییکیکیکیک育خخ证خ极。告觉شش

援者,صای

ای
python linux gstreamer
2个回答
2
投票

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。 这是组件的细分:

0
投票
V4L2SRC设备=/dev/video0:捕获位于/dev/video0的网络摄像头的视频。将其更改为实际的视频设备。 VideoConvert:转换视频像素格式(需要在编码之前)。 X264enc:将视频编码为H.264格式。 mp4mux名称= mux:mux将编码的视频放入MP4容器中。 filesink location = output.mp4:将输出保存到名为output.mp4的文件中。 阀滴= false:控制是否通过管道传递数据。设置drop = true可以停止流动而无需删除元素或drop = false继续流动。 动态控制 要动态控制阀门元素(例如,开始/停止录制),您将需要使用诸如Python之类的编程语言使用GSTREAMER。这是您可以在Python中做到这一点的方法:

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属性)的控制将与某些应用程序逻辑或用户输入相关。 错误处理:通过错误检查在设置和执行过程中处理各种条件。 此设置使您可以动态地开始并停止输入流到文件中,而无需拆除或重建管道。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.