【问题标题】:How to run qt application on GPU and not on CPU如何在 GPU 而不是 CPU 上运行 qt 应用程序
【发布时间】:2016-02-08 02:03:25
【问题描述】:

我有一个小型 QT 应用程序,可以从本地存储播放视频,当我运行它时,视频阻塞且速度很慢,我使用的是 gstreamer 0.1...但是当我从终端运行它并明确说使用 gstreamer 运行时在 gpu 上它工作正常。

如何从 QT 调整它在 GPU 上运行的代码... 我的代码示例...

    QApplication app(argc, argv);

    QGraphicsView *graphicsView = new QGraphicsView;
    QMediaPlayer *player = new QMediaPlayer;
    QGraphicsScene *scene = new QGraphicsScene;

    graphicsView->setScene(scene);
    graphicsView->setMinimumSize(800,480);
    QGraphicsVideoItem *item = new QGraphicsVideoItem;
    player->setVideoOutput(item);
    graphicsView->scene()->addItem(item);
    graphicsView->show();
    player->setMedia(QUrl::fromLocalFile("/path/to/my/file"));

    QTransform mirror;
    mirror.scale(-1,1);
    item->setTransform(mirror);

    player->play();

return app.exec();

}

【问题讨论】:

  • 并非所有应用都可以在 GPU 上运行。只有视频编解码器。
  • 好的,我该怎么做? :/ 你能给我举个例子吗?
  • 不,我不知道细节。也许看看OpenCL。但这可能需要你几个月的工作......但如果gstreamer 能够做到,请尝试使用它。

标签: c++ linux qt qml gpu


【解决方案1】:

您不能使用 GPU(或在 CPU 和 GPU 之间切换)来运行您的 Qt 应用程序。您仍然需要 CPU 来运行您的应用程序。 GPU 不是通用处理器:您只能为您的 GPU 分配一些数学任务。它是 CPU 控制将在 GPU 上执行的操作。

所有 GStreamer 代码都由 CPU 执行。但是,有些元素可以使用 GPU 进行内部数学运算。 “明确说用 gstreamer 在 GPU 上运行”是什么意思?

您应该只将 GStreamer 1.x 分支与 Qt 一起使用。 GStreamer 0.1 已经 15 岁了。

【讨论】:

    猜你喜欢
    • 2011-10-02
    • 2021-11-26
    • 2020-07-26
    • 2015-02-24
    • 1970-01-01
    • 2015-07-16
    • 2016-04-09
    • 2020-01-13
    • 1970-01-01
    相关资源
    最近更新 更多