如何在 libcamera 中设置帧率?

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

这里我指的是库,而不是命令行工具,例如

libcamera-hello
.

我做了一个简单的程序,和

libcamera
官方教程中的程序基本相同。但是,无论选择哪种像素格式/分辨率,帧速率都保持在 30 FPS。我什至
grep
ped 了整个文档的“fps”,但一无所获。如何在 libcamera 中调整帧速率?

下面是计算FPS的代码片段。帧在完成后立即重新排队。 FPS 是使用缓冲区元数据中的时间戳计算的。

uint64_t prev_time = 0;

static void requestComplete(Request* req)
{
    if (req->status() == Request::RequestCancelled) return;
    clog << "on req complete" << endl;
    for (const auto& stream_and_buf: req->buffers())
    {
        auto* stream = stream_and_buf.first;
        auto* buf = stream_and_buf.second;
        if (prev_time > 0)
        {
            auto delta_time = buf->metadata().timestamp - prev_time;
            clog << "  stream " << std::hex << size_t(stream) << " buffer " << std::hex << size_t(buf) << " capture at " << std::dec << double(delta_time / 1000000) << endl;
        }
        
        prev_time = buf->metadata().timestamp;
    }

    req->reuse(Request::ReuseBuffers);
    camera->queueRequest(req);
}
camera video-capture
© www.soinside.com 2019 - 2024. All rights reserved.