快速捕获特定帧

时间:2013-06-13 14:57:04

标签: opencv video ffmpeg capture

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

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

我来ffmpeg捕获一个选择的频率但不是OpenCV。

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

1 个答案:

答案 0 :(得分: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
}