管道未完成从就绪到暂停的转换 [英] Pipeline does not complete transition from READY to PAUSED
本文介绍了管道未完成从就绪到暂停的转换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用一个管道,该管道应该播放文件,同时生成用于其他目的的缩放版本(因此是应用程序接收器)。
管道如下:
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
并且不会完成从就绪到暂停的转换。如果我执行以下操作之一,它会完成转换(然后通过移动到播放来正确播放):
- 从TEE中删除两个分支中的一个(因此x264enc单独工作)
- 将x264enc元素从分支标题中删除到appink。
这里有一个图形,它的管道非常接近上面的那个,它显示了同样的问题。元素是仍处于就绪->暂停转换中的应用程序接收器,但我看不出有任何理由这样做。顺便说一句,如果我从应用程序接收器分支中删除x264enc,它就可以工作了!
推荐答案
尝试tune=zerolatency
元素的选项x264enc
。或者,在tee
之后增加queue
大小。其原因是,其默认配置中的x264enc
具有比默认queue
大小更高的延迟。例如,在生成任何数据之前,它消耗的资源超过了其他queue
路径所能容纳的数量。因此,这两个分支彼此死锁,无法预滚。
这篇关于管道未完成从就绪到暂停的转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文