来自png文件和mp3音频的视频幻灯片

时间:2012-11-25 00:36:10

标签: ffmpeg video-encoding

我有一堆.png帧和一个.mp3音频文件,我想将其转换为视频。不幸的是,帧不对应于恒定的帧速率。例如,一帧可能需要显示1秒钟,而另一帧可能需要显示3秒钟。

是否有任何开源软件(如ffmpeg)可以帮助我实现这一目标?任何反馈将不胜感激。

非常感谢!

1 个答案:

答案 0 :(得分:0)

这不是一个优雅的解决方案,但它可以解决这个问题:根据需要复制帧,以便最终获得一些(相当高的)恒定帧速率,30或60 fps(如果需要更高的时间分辨率,则更高) 。您只需将最近的新帧重复哪个帧更改为您想要的确切时间戳。精确重复的帧将被编码为一个很小的大小(几个字节)与任何体面的编解码器,所以这是相当紧凑的。然后像往常一样使用ffmpeg进行编码。

如果您有很多这些并且需要以“正确”的方式进行:您可以在容器中指示时间(例如mp4,mkv等)或编解码器。例如,在H.264流中,您必须插入pic_timing类型的SEI消息以指定每个帧的时序。或者,您必须依靠容器库(例如Matroska(mkv)或GPAC(mp4)来编写自己的复用器,以指示容器中的时间。请注意,并非所有编解码器/容器都支持任意可变的帧速率。只有少数编解码器支持编解码器中的时序。此外,如果在容器和编解码器中都指定了计时,则使用容器计时(但如果要将流复用到容器中,则复用器应从编解码器中获取单独的帧时间戳)。