我有一个在OpenGL中创建帧缓冲区的程序。我可以将缓冲区保存为.png或.jpg文件,我熟悉Windows上的一些实用程序(如http://www.radgametools.com/bnkmain.htm),它们会将多个图像文件转换为.mpg
但是我想要一个开放源代码库来调用RAM中的缓冲区。这样的API是否存在?
答案 0 :(得分:4)
ffmpeg的libavcodec可能是一个很好的起点。
答案 1 :(得分: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);
}