4

我在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 是什么?更一般地说,如何创建可变帧率视频?

4

1 回答 1

1

我认为在不修改代码以提供后台访问权限的情况下直接使用 OpenCV 是不可能的。您需要使用 libvlc 等不同的库来使用imem将 OpenCV 中的原始 RGB 帧放入文件中。此链接提供了一个使用 imem 和从 OpenCV 加载的原始图像的示例。您只需要更改 :sout 选项以使用您喜欢的编解码器保存到您想要的文件。

于 2014-04-25T02:27:17.293 回答