我正在使用一个流水线,该流水线应播放一个文件,并同时为其他目的生成可缩放的版本(因此,应用程序接收器也是如此)。
管道如下:
gst-launch-1.0.exe filesrc location=a.mp4 ! decodebin ! tee name=fork
fork. ! queue ! videoconvert ! autovideosink
fork. ! queue ! videoconvert ! videoscale ! video/x-raw,format=I420,width=320,height=180 ! x264enc ! appsink
,并且不会完成从“就绪”到“暂停”的转换。如果我执行以下任一操作,它将完成过渡(然后通过移动到PLAYING可以正确播放):
这里有一张图,它的管道非常接近上面的管道,显示了相同的问题。 “有罪”元素是仍然处于READY-> PAUSED转换的appsink,但是我看不到任何原因。顺便说一句,如果我从appsink分支中删除了x264enc,它将起作用!
答案 0 :(得分:0)
尝试使用tune=zerolatency
元素的选项x264enc
。或者,在queue
之后增加tee
的大小。原因是x264enc
的默认配置比默认queue
的延迟高。例如。它消耗的能量比产生任何数据之前其他queue
路径所能容纳的更多。因此,这两个分支彼此僵局,无法预滚动。