Python 停止并恢复带阀的splitmuxsink-Gstreamer

Python 停止并恢复带阀的splitmuxsink-Gstreamer,python,gstreamer,resume,Python,Gstreamer,Resume,我有一个三分支的管道,工作非常好。在一个分支中,我用splitmuxsink记录一个文件,间隔为interval,在这个分支中,队列元素后面有一个阀门,用于停止并恢复与我的逻辑有关的分支。但是,当我将阀的值设置为True时,分支似乎停止了,但我假设最大大小时间(splitmuxsink)仍在计数,因为打开阀时会生成垃圾文件,并且不会继续写入我停止时未完成的文件。在垃圾文件中,仅显示暂停记录的最后一帧,持续时间等于停止和恢复操作之间经过的时间。在垃圾文件之后,splitmuxsink以预期的方式运

我有一个三分支的管道,工作非常好。在一个分支中,我用splitmuxsink记录一个文件,间隔为interval,在这个分支中,队列元素后面有一个阀门,用于停止并恢复与我的逻辑有关的分支。但是,当我将阀的值设置为True时,分支似乎停止了,但我假设最大大小时间(splitmuxsink)仍在计数,因为打开阀时会生成垃圾文件,并且不会继续写入我停止时未完成的文件。在垃圾文件中,仅显示暂停记录的最后一帧,持续时间等于停止和恢复操作之间经过的时间。在垃圾文件之后,splitmuxsink以预期的方式运行,并生成正常的文件,直到我用valve元素再次点击resume

我使用python Gst绑定进行开发,splitmuxsink分支代码是:

 tee = Gst.ElementFactory.make('tee', 'tee')
 fileQueue = Gst.ElementFactory.make('queue', 'file_queue')
 self.fileValve = Gst.ElementFactory.make('valve', 'file_valve')
 self.fileValve.set_property("drop", not self.writeDisk)
 omxEncode = Gst.ElementFactory.make('omxh264enc', 'omxencode')
 h264Parser = Gst.ElementFactory.make('h264parse', 'h264parser')
 muxer = Gst.ElementFactory.make('matroskamux', 'file_muxer')
 muxer.set_property("offset-to-zero", True)
 infileSink = Gst.ElementFactory.make('filesink', 'infile_sink')
 infileSink.set_property("async", True)
 fileSink = Gst.ElementFactory.make('splitmuxsink', 'file_sink')
 fileSink.set_property('async-handling', True)
 fileSink.set_property("max-size-time", 1000000000 * 60 * 1)
 fileSink.set_property("muxer", muxer)
 fileSink.set_property("sink", infileSink)
 fileSink.connect("format-location", self.__format_location_callback)
如何使用splitmuxsink和valve管理正确的停止和恢复操作,或者是否有其他正确的解决方案? 谢谢