Gstreamer闭塞三通

Gstreamer闭塞三通,gstreamer,gstreamer-1.0,Gstreamer,Gstreamer 1.0,我正在用下面的管道测试Gstreamer。基本上是一个有两个文件输出的T型视频输入 gst-launch-1.0 videotestsrc is-live=true ! tee name=t ! queue ! videoconvert ! x264enc ! h264parse ! mp4mux ! filesink location=/assets/out1.mp4 t. ! queue ! valve drop=true ! videoconvert ! x264enc ! h264pa

我正在用下面的管道测试Gstreamer。基本上是一个有两个文件输出的T型视频输入

gst-launch-1.0 videotestsrc is-live=true ! 
tee name=t ! queue ! videoconvert ! x264enc ! h264parse ! mp4mux ! filesink location=/assets/out1.mp4
t. ! queue ! valve drop=true ! videoconvert ! x264enc ! h264parse ! mp4mux ! filesink location=/assets/out2.mp4 -e

我希望管道写入
out1.mp4
,而阀阻止输出到
out2.mp4
。但是,由于某些原因,两个文件都保持为空。是什么导致了这种情况?

请尝试
async=false
以获取阀驱动路径文件链接。请注意,valve也会丢弃EOS之类的事件。也许您最好通过PadProbe来放置样本。不过,这需要一个真正的应用程序。

谢谢您的建议。不幸的是,这似乎没有什么不同。这很奇怪吗?我实际上是从gst python应用程序和探测器开始的,但我遇到了同样的问题。我认为这个命令行示例最容易复制。
gst-launch-1.0 videotestsrc is live=true!发球台名称=t!队列视频转换!x264enc!h264parse!mp4mux!文件链接位置=out1.mp4 t!队列阀降=真!视频转换!x264enc!h264parse!mp4mux!filesink location=out2.mp4 async=false实际上对我有效。只是最后的Ctrl-C确实挂起了,因为EOS没有正确传播。抱歉,我不小心键入了
async=true
。非常感谢!