我想要做的是在某个时间(例如 20 秒)获取视频帧。我知道我可以做这样的事情 - 倒带视频并暂停它:
QMediaPlayer* player = new QMediaPlayer;
...
player->play();
player->setPosition(20000);
player->pause();
但是有没有更优雅的解决方案(这对我来说似乎是一个黑客,因为我不需要整个视频,但有时只需要一个帧)?
我想要做的是在某个时间(例如 20 秒)获取视频帧。我知道我可以做这样的事情 - 倒带视频并暂停它:
QMediaPlayer* player = new QMediaPlayer;
...
player->play();
player->setPosition(20000);
player->pause();
但是有没有更优雅的解决方案(这对我来说似乎是一个黑客,因为我不需要整个视频,但有时只需要一个帧)?
以下步骤可以帮助您从视频文件中捕获帧。
项目级别
代码级别
上述示例应用程序可以在这里找到
(应用程序屏幕截图)
打开视频文件:浏览并选择一个视频文件
滑块:选择您想要的位置
捕获:捕获图像并在 QLabel 中查看
保存:保存捕获的图像