c++ - 我们如何跳过帧,计算帧数并使用视频阅读器获取当前帧

标签 c++ opencv

我现在正在使用 Opencv 进行视频解码。我可以毫无问题地播放视频。但是,我找不到跳过帧、获取总帧数和当前帧数的方法。有没有办法像 VideoCapture 一样使用 VideoReader?我已经通过他们的 api,但无法得到任何东西。

最佳答案

OpenCV 是开源库。如果你使用 VideoCapture 那么这个类的对象有任何方法:

  1. 要跳过一个帧,您应该每帧阅读 2 次。

  2. 获取总帧数如下:

    cv::VideoCapture m_capture;
    ....
    int totalFrames = m_capture.get(cv::CAP_PROP_FRAME_COUNT)
    
  3. 获取当前帧数:

    int currentFrame = m_capture.get(cv::CAP_PROP_POS_FRAMES)
    

有关详细信息,请访问 OpenCV 文档 https://docs.opencv.org/3.1.0/d8/dfe/classcv_1_1VideoCapture.html .

关于c++ - 我们如何跳过帧,计算帧数并使用视频阅读器获取当前帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51979946/

相关文章:

c++ - POCO websocket 异常

java - 如何从嵌入式软件开发过渡到Web开发?

c++ - 将 get line() 与多种类型的行尾字符一起使用

c++ - 如何使用c++类的方法作为回调函数

c - 帮助我理解这些计算时间

c++ - vc++ 中预期的常量表达式

python - cv2.rectangle() 调用重载方法,尽管我给出了其他参数

python - 使用opencv在图像上编写表情符号

git - 使用 GIT for Windows 获取 OpenCV2.4.2

c++ - 将大图像切片为 10x10 图像的有效方法(opencv)