如何控制 gstreamer 管道中的帧速率?

问题描述 投票:0回答:2

我有一个以 60fps 编码的流,但我的 gstreamer 管道以 fps 播放它,所以视频看起来很慢。我创建了一个 gstreamer 管道作为

appsrc name=src ! video/x-h264 ! decodebin ! autovideosink sync=false

appsrc 会将缓冲区推送到解码器中。现在我想为我正在播放的视频强制设置一些帧速率。我尝试在

videorate
decodebin
之间插入
autovideosink
。但这没有用。然后我插入
framerate=30/1
来强制帧速率为 30fps。但这也不起作用;那么如何强制 gstremer 管道中解码器的帧速率?

c decode gstreamer frame-rate
2个回答
8
投票

在没有看到您尝试过的其他管道的情况下,我想出了这个:

gst-launch-1.0 filesrc location=movie.avi ! decodebin ! \
videorate ! "video/x-raw,framerate=5/1" ! autovideosink

movie.avi 包含一个 30fps 的视频,然后在显示之前固定为 5fps。


0
投票

正如另一个答案所说,在

videoscale
之后添加元素
decodebin
并添加 capfilter 来指定帧速率。

将属性

max-rate
添加到
videoscale
也可以。

gst-launch-1.0 filesrc location=movie.avi ! decodebin ! \
videorate max-rate=5 ! autovideosink
© www.soinside.com 2019 - 2024. All rights reserved.