如何使用 mencoder 为图像添加音乐

如何使用 mencoder 为图像添加音乐

我正在尝试使用 mencoder 制作一个在单个图像上播放音乐的视频。我使用 mf 添加图像,并且我总是得到一个带有大约一秒钟音频的视频,报告的长度为 0:00。我尝试过来自不同来源的各种 mp3 和图像,并尝试过使用各种编解码器和选项,但似乎无法解决这个问题。以下是基本命令:

mencoder "mf://image.jpg" -o out.avi -ovc lavc -lavcopts vcodec=mjpeg -audiofile music.mp3 -oac copy

有人知道该怎么做或者为什么 mencoder 会将音乐剪辑到一秒吗?

答案1

这是因为默认 FPS 设置为 30,所以 mencoder 需要每秒 30 张图像——您必须告诉 mencoder 使用一张图像进行整个记录,因此您必须将 FPS 设置为 1/“持续时间”。

添加此选项:

-fps 1/132.8 -ofps 30

其中132.8,音频的时长为(秒) 。

因此结果应如下所示:

mencoder mf://image.jpg -o out.avi \
        -ovc lavc -lavcopts vcodec=mjpeg -audiofile music.mp3 \
        -oac copy -fps 1/132.8 -ofps 30

答案2

我只想到了另一种方法,您可以从管道提供相同的图像:

for x in `seq 1 55`; do cat image.jpg; done | mencoder -o out.avi -fps 1 -ovc lavc -demuxer lavf -lavfdopts format=mjpeg -audiofile music.mp3 -oac copy -

其中,您可以将 55 替换为您希望的秒数(这将是歌曲的长度,如您所愿)。

但正如你所见,更笨比 Vojtech 的简单直接的回答更令人失望。我使用这个替代方案的唯一好处是生成的文件大小更小。

相关内容