在openCV中编写可变帧率视频

Writing variable framerate videos in openCV

本文关键字:帧率 视频 openCV      更新时间:2023-10-16

在openCV中编写视频文件的步骤如下:

CvVideoWriter *writer =cvCreateVideoWriter(fileName, Codec ID, frameRate, frameSize); // Create Video Writer
cvWriteFrame(writer, frame); // Write frame
cvReleaseVideoWriter(&writer); // Release video writer

上面的代码片段以固定的帧速率进行写入。我需要写出可变帧速率的视频。我之前在libx264中使用的方法包括为每一帧写入单独的时间戳。

因此,问题是如何在openCV中为帧写入时间戳——具体的API是什么?更一般地说,如何创建可变帧速率视频?

我认为不可能在不修改代码的情况下直接使用OpenCV来实现这一点。您需要使用不同的库,如libvlc,使用imem将OpenCV中的原始RGB帧放入文件中。此链接提供了一个使用imem从OpenCV加载原始图像的示例。您只需要更改:sout选项即可使用首选编解码器保存到您想要的文件中。