gpt4 book ai didi

网络摄像头 gstreamer 未以完整 FPS 录制

转载 作者:行者123 更新时间:2023-12-01 10:49:30 24 4
gpt4 key购买 nike

我有一个罗技网络摄像头,当我列出其可用格式时,它会显示(以及其他)以下内容:

Index       : 0
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUV 4:2:2 (YUYV)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.200s (5.000 fps)

所以现在我想以 640x480 @30fps 的分辨率捕获 300 帧,jpeg 压缩它们并将其复用为 avi。以 30fps 捕获 300 帧应该会产生 10 秒的电影,并且应该需要 10 秒来录制,但在我的情况下,获得 300 帧需要大约 40 秒,但它会产生预期的 10 秒视频。

这是我的管道:

gst-launch-1.0 -v v4l2src device=/dev/video0 num-buffers=300 ! \
"video/x-raw,width=640,framerate=30/1" ! jpegenc ! avimux ! \
filesink location=output.avi

我用 fpsdisplaysink 检查了很多帧:

last-message = rendered: 48, dropped: 250, fps: 1.88, drop rate: 5.64

所以显然我没有从摄像头获得 30fps。它通过 USB 2.0 连接,因此应该有足够的带宽可用。 Gstreamer 不会提示 PC 速度慢或其他任何问题。

这是相机的问题,是关于 fps 的问题,还是我遗漏了什么?还有为什么会丢这么多帧?

编辑 1:

我现在尝试在更好的光照条件下进行。使用 guvcview 我将曝光设置为固定值。当我将上限设置为 15fps 时,结果符合预期:捕获 150 帧会产生 10 秒的视频,需要 10 秒。

同时录制 300 帧 @30fps 所需的时间也减少到了 20 秒。

好的,让我们找到正确的设置:我玩了固定曝光时间,发现曝光时间越长,我越接近 10 秒内的 300 帧。所以将曝光设置为 300 解决了我在 10 秒内以 30fps 录制 300 帧的问题。

现在真正有趣的是,当我使用 fpsdisplaysink 检查流时,它显示几乎所有帧都被丢弃:

last-message = rendered: 1, dropped: 298, fps: 0.00, drop rate: 30.07 

编辑 2:

好的,当我使用 videorate 将其修复为 30fps fpsdisplay sink 显示基本没有丢帧和 30fps 的恒定速率。

生成的管道是这样的:

gst-launch-1.0 -v v4l2src device=/dev/video0 num-buffers=300 ! \
"video/x-raw,width=640,framerate=30/1" ! \
videorate ! "video/x-raw,framerate=30/1" ! tee name=a ! \
queue ! jpegenc ! avimux ! filesink location=output.avi a. ! \
queue ! fpsdisplaysink

最佳答案

我通过使用网络摄像头设置解决了这个问题。将曝光度增加到 300 而不是默认的 150 对我来说是诀窍。

也可以使用 videorate 来固定特定的帧率。

我在 10 秒内以 640x480 的分辨率和 30fps 录制 300 帧的管道,从而产生 10 秒的 avi,如下所示:

gst-launch-1.0 -v v4l2src device=/dev/video0 num-buffers=300 ! \
"video/x-raw,width=640,framerate=30/1" ! \
videorate ! "video/x-raw,framerate=30/1" ! \
jpegenc ! avimux ! filesink location=output.avi

关于网络摄像头 gstreamer 未以完整 FPS 录制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21962816/

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