簡體   English   中英

C++/opencv/Ubuntu:GoPro 非常低的 fps

[英]C++/opencv/Ubuntu : GoPro very low fps

我只買這個: https ://www.amazon.fr/gp/product/B08CGVSRQV/ref=ppx_yo_dt_b_asin_title_o00_s00?ie = UTF8&psc =1 ...我擁有一個 gopro3,我想將它用作網絡攝像頭並使用 opencv 進行處理.

我的系統:gopro3 => microHDMI 轉 HDMI => HDMI 轉 USB3(我在上面購買)=> 我的電腦。

在 Ubuntu 上,使用這個基本程序:

#include <iostream>
#include <opencv4/opencv2/opencv.hpp>
#include <opencv4/opencv2/videoio.hpp>

using namespace cv;

int main() {
    VideoCapture vid(0);
    if (!vid.isOpened()) {...}

    Mat frame;
    for(;;) {
        vid >> frame; // get a new frame from camera
        imshow("edges", frame);
        if (waitKey(30) >= 0) break;
    }
    vid.release(); destroyAllWindows(); return 0;
}

出現一個小窗口,大約 800/600,一切正常,延遲好,fps 好,質量差,但沒什么奇怪的。 如果我強制使用 1920/1080:

vid.set(3, 1920);
vid.set(4, 1080);

我可以看到我的視頻延遲大約 1 秒,也許 5 fps;

我想,也許我的 USB3(用於捕獲 HDMI)有問題,但我嘗試了“guvcview”,它限制為 30fps,一切正常(延遲、fps、質量)。

我不知道如何用 1920/1080/60 和 opencv 讀取我的 gopro(30fps 應該足夠了)。 Gopro 可以做 1920/1080/60,下一個電纜也可以,采集卡也可以,Ubuntu 也可以...

也許問題不是 opencv 而是 Ubuntu 配置。

任何的想法 ?

我有同樣的問題,但在 Windows 上。 指定視頻捕獲以使用 DSHOW 為我解決了問題

cv::VideoCapture cap(0 + cv::CAP_DSHOW);

但不幸的是,據我所知,DSHOW 僅適用於 Windows。 但也許這是后話,您必須指定另一個 API 來用於讀取視頻流。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM