1

我有一个在 OpenGL 中创建帧缓冲区的程序。我可以将缓冲区保存为 .png 或 .jpg 文件,并且我熟悉 Windows 上的一些实用程序(如http://www.radgametools.com/bnkmain.htm),它们会将多个图像文件转换为 .mpg

但我想要一个开源库来调用我已经在 RAM 中的缓冲区。这样的 API 存在吗?

4

2 回答 2

4

ffmpeg 的 libavcodec 可能是一个不错的起点。

于 2011-05-09T20:39:58.027 回答
4

由于您正在寻找一个库,我建议您看看OpenCV(它是 Windows/Linux/Mac 上支持的跨平台库)。

我前段时间写过下面的代码。它从当前目录加载两个 JPG 图像并用它创建一个视频文件。我相信这足以让你开始。

#include <cv.h>
#include <highgui.h>

int main()
{
    IplImage* img1 = cvLoadImage("img1.jpg", CV_LOAD_IMAGE_UNCHANGED);
    IplImage* img2 = cvLoadImage("img2.jpg", CV_LOAD_IMAGE_UNCHANGED);

    float fps = 20;
    CvVideoWriter* writer = cvCreateVideoWriter("out.avi", CV_FOURCC('M','J','P','G'), fps, cvGetSize(img1), true);
    if (!writer)
    {
      fprintf (stderr, "VideoWriter failed!\n");
      return -1;
    }

    cvWriteFrame(writer, img1);
    cvWriteFrame(writer, img2);

    cvReleaseVideoWriter(&writer);
    cvReleaseImage(&img1);
    cvReleaseImage(&img2);
}
于 2011-05-09T20:47:34.117 回答