gpt4 book ai didi

gstreamer - 队列元素在Gstreamer管道中的作用

转载 作者:行者123 更新时间:2023-12-04 10:24:47 31 4
gpt4 key购买 nike

我有这个管道:

gst-launch -v filesrc location=video.mkv ! matroskademux name=d \
d. ! queue ! ffdec_h264 ! subtitleoverlay name=overlay ! ffmpegcolorspace ! x264enc ! mux. \
d. ! queue ! aacparse ! mux. \
filesrc location=fr.srt ! subparse ! overlay. \
matroskamux name=mux ! filesink location=vid.mkv

我正在尝试刻录视频的字幕。我已经成功地读取了带字幕的文件,但是上面的管道卡住了,我收到了以下消息:
queue_dataflow gstqueue.c:1243:gst_queue_loop:<queue0> queue is empty

我的管道出了什么问题?队列元素做什么?我还不太了解文档中的内容。

最佳答案

队列元素将线程边界添加到管道并支持缓冲。输入端会将缓冲区放入队列,然后从另一个线程在输出端将其清空。通过queue元素上的属性,您可以设置队列的大小和其他一些内容。

我看不到您的管道有什么特别的问题,但是那里的消息告诉您,在某些时候,其中一个队列是空的。这可能是一个问题还是没有。稍后可能会变得更饱满。

您必须检查GStreamer调试日志,以查看其中是否有暗示实际问题的信息。我最好的猜测是,由于x264enc的编码器延迟,音频队列已满。尝试增大音频队列,或在x264enc上设置tune = zerolatency。

我还看到您正在使用GStreamer 0.10。它已超过两年不再维护,对于新应用程序,您应该真正考虑升级到1.x版本。

关于gstreamer - 队列元素在Gstreamer管道中的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26585346/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com