我已经编写了一个自定义的 QtGStreamer 应用程序,它工作正常。我在尝试使用 tee 拆分管道以处理流记录时遇到了麻烦,因为管道开始预滚动但从未进入播放状态。
我的管道:
souphttpsrc location="%1" ! queue ! tee name=tp tp.! queue ! tsdemux ! h264parse ! splitmuxsink muxer=mpegtsmux location=/tmp/rec/video%02d.mov max-size-time=60000000000 max-size-bytes=100000000 tp.! queue ! appsink name="mysink"
如果我评论两个 tee 分支中的任何一个,任何事情都会按预期工作。
这也有效:
souphttpsrc location="%1" ! queue ! tee name=tp tp.! queue ! tsdemux ! h264parse ! splitmuxsink muxer=mpegtsmux location=/tmp/rec/video%02d.mov max-size-time=60000000000 max-size-bytes=100000000 tp.! queue ! decodebin ! autovideosink
为什么我的 AppSink 只能单独工作?