逐帧创建具有可变帧速率的Motion JPEG

时间:2012-03-06 12:48:50

标签: delphi video jpeg mjpeg mplayer

我正在分析我手头的问题的一些解决方案:我正在从设备接收图像,我需要制作一个视频文件。然而,图像到达时它们之间有一些随机的延迟,我正在寻找编码它的最佳方法。我必须逐帧创建这个视频,并且在每帧之后我必须有一个带有新帧的新视频文件,替换旧的视频文件。

我正在考虑将帧速率设置为比我可能获得的最小延迟“更快”,并且只重复最后一帧直到新的帧到达,但我想这个解决方案不是最佳的。

此外,这个项目是用Delphi制作的(不,我不能改变它),我需要在每帧之后将这些帧转换成视频文件的方法。我正在考虑使用mencoder作为外部工具,但我正在阅读文档,但仍未找到使其在已编码的Motion JPEG视频文件中插入帧的选项。当我的图像以JPEG格式出现时,我认为使用Motion JPEG是合理的,但即便如此也是如此。另外,我不知道mencoder是否可以用作库。如果它确实会有很多帮助。

你会建议什么?

1 个答案:

答案 0 :(得分:2)

有些媒体容器格式支持variable frame rate,但由于存储开销,我不认为MJPEG是不错的选择。我相信最好的方法是使用I帧和P帧将JPEG帧转码为MP4格式。

您可以使用FFMPEG Delphi/FP header files进行转码。

修改

可以在GLScene repository on SourceForge.net找到最新版本的FFMPEG标头。要查看文件,您可以使用this link