1

我尝试在特定时间或以特定时间间隔从文件中捕获一帧视频,以将其放入字符串中。我设法用 opencv 和 ffmpeg 捕获图像(作为 jpeg),但问题是它需要时间。我尝试在每个捕获的图像之间几乎实时地发送这些捕获,但是速度变慢了目前,在 ffmpeg 和 opencv 中的每个图像之间,每次捕获都有 1/2 秒,这非常慢。

我有两个问题,我不知道如何使用 opencv(或 ffmpeg)加速捕获,我使用 opencv 到达捕获帧的时间码。

我使用 ffmpeg 捕获选择的频率,但没有使用 OpenCV。

您是否知道如何使用所有 X 毫秒的 OpenCV 视频或任何其他足够快的捕获解决方案来捕获图像?

4

1 回答 1

0

使用此代码作为基础将帮助您获得高性能。您可以随时使用时间,waitKey()但 0 参数会导致错误。

VideoCapture capture(filename);
Mat frame;

if( !capture.isOpened() )
    throw "Error when reading steam_avi";

//namedWindow( "w", 1);
for(;;)
{
    capture >> frame;
    if(frame.empty())
        break;
    waitKey(20); // waits to display frame
}
于 2014-11-05T09:21:22.707 回答