gpt4 book ai didi

gstreamer - 'num-buffers' 在 gstreamer 中有什么作用?

转载 作者:行者123 更新时间:2023-12-05 06:57:14 25 4
gpt4 key购买 nike

我只能找到几页对 num-buffers 的单行解释。喜欢this一个。

发送 EOS(流结束)之前要输出的缓冲区数。默认 = -1(无限制)

我有一个使用 gst-launch-1.0 multifilesrc 和默认 loop=False 的虚拟管道。由于 num-buffers=-1 作为默认值,管道循环。

我不希望它循环,这恰好是在我设置 num-buffers=1 或任何其他有限数字时发生的。

num-buffers=1(或该意义上的任何值)是什么意思?

编辑:带有 10 秒视频的示例管道

# 1. With loop=false and num-buffers=1
$> GST_DEBUG=3 gst-launch-1.0 multifilesrc location=preview.h264 loop=false num-buffers=1 ! h264parse ! avdec_h264 ! fakesink
...
Got EOS from element "pipeline0".
Execution ended after 0:00:00.425738029
...

# 2. With loop=false and num-buffers=10
$> GST_DEBUG=3 gst-launch-1.0 multifilesrc location=preview.h264 loop=false num-buffers=10 ! h264parse ! avdec_h264 ! fakesink
...
Got EOS from element "pipeline0".
Execution ended after 0:00:04.256451070
...

# 3. With neither loop flag (default=false) nor num-buffers (default=-1, unlimited)
$> GST_DEBUG=3 gst-launch-1.0 multifilesrc location=preview.h264 ! h264parse ! avdec_h264 ! fakesink
...This never ends because num-buffers=-1. Why?...

无论如何我都没有收到任何警告。

最佳答案

"num-buffers" 定义给定元素(如 videotestsrc)将发布多少帧。发送 "num-buffers" 后,EOS 事件被发布。

我发现它在测试中很有用,您可以定义帧数和帧率,然后设置在给定时间内应接收多少帧的预期值(例如,使用 probe)。

multifilesrc 似乎不支持 "num-buffers":它将读取所有文件并退出(或在 loop=正确的)。在 multifilesrc 上设置 "num-buffers" 时,您应该会看到警告。

multifilesrc 继承自 GstBaseSrc 元素并具有 num-buffers 属性。它应该用于将一系列帧重播为视频:

gst-launch-1.0 multifilesrc location="%08d.png"loop=true num-buffers=1000 !解码箱!视频转换! ximagesink

将名为 00000000.png 的图像一个接一个地重播到 99999999.png

为了您的目的,只需使用 filesrc 元素,而不是 multifilesrc

关于gstreamer - 'num-buffers' 在 gstreamer 中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64925592/

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