4

我正在用 c 为大学写一些物理模拟,现在我输出了一系列数百个 png,然后我以快速顺序观看......有没有办法用一些简单的无损编解码器库将它们合并到 c 中的视频?

PS 我正在使用 cairo 图形,并且通常在图形编程方面经验很少

4

3 回答 3

3

如果您想避免使用外部程序,libavcodec可能是生成视频的最佳方式。它在 C 语言中,并且有很好的文档记录(参见上面的链接)。

关于 Jonas 使用 mencoder 的解决方案的更多文档在这里

于 2009-10-05T13:14:36.410 回答
2

您只是想观看一些 PNG 作为视频?您不需要合并它们:

mplayer -fps 2 mf://*.png

如果您想这样做而不是编写 PNG,那么 ffmpeg 的 libavcodec 中有快速无损编解码器。例如 ffvhuff 或 huffyuv。

或者,如果您不想使用 libavcodec,您可以编写 y4m 原始输出并将其通过管道传输到某些东西。yuv4mpeg 是一个带有帧速率和帧大小的标题,然后是每个帧的未压缩像素。

于 2009-12-09T22:45:59.940 回答
2

不完全符合您的要求,但我不会自己动手,我会使用 mencoder:

mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o output.avi

PS。mencoder 是 MPlayer 的一部分并且是开源的。DS。

于 2009-06-10T12:37:35.440 回答