FFMPEG 在嵌入封面图像的音频文件上使用图像解复用器

FFMPEG 在嵌入封面图像的音频文件上使用图像解复用器

我有一个嵌入了封面的 mp3 文件。我想生成一个带有音频播放的图像视频,播放时间与音频播放时间相同。

我可以使用以下方法通过单独文件中的图像实现此目的:

ffmpeg -loop 1 -framerate 1 -i "image.jpg" -i "audio.mp3" -map 0:v -map 1:a -shortest -r 1 "output.mp4"

不将图像分离成其自己的文件就可以做到这一点吗?

如果我运行ffprobe -i audio.mp3它表明

Stream #0:1: Video: mjpeg (Progressive), yuvj420p(pc, bt470bg/unknown/unknown), 1200x1200 [SAR 300:300 DAR 1:1], 90k tbr, 90k tbn (attached pic)
Metadata:
  title           : front cover
  comment         : Cover (front)

这是图像的 ffprobe:ffprobe -i image.jpg

Input #0, image2, from 'folder.jpg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 53163 kb/s
  Stream #0:0: Video: mjpeg (Progressive), yuvj420p(pc, bt470bg/unknown/unknown), 1200x1200 [SAR 300:300 DAR 1:1], 25 fps, 25 tbr, 25 tbn

据我了解,-loopframerate选项是图像解复用器的一部分。

这可能吗?如果不在 CLI 上,是否可以在不到 37 年的时间内修改源代码来做到这一点?

谢谢

答案1

我发现使用环路滤波器有效:

ffmpeg -i "first.mp3" -filter_complex "[0:v]scale=-1:-1[vid];[vid]loop=loop=-1:size=1:start=0[vid2]" -map [vid2]:v -map 0:a -b:a 320k -shortest -r 1 -movflags +faststart "output.mp4"

不过速度很慢,只有 5 倍。我会继续尝试,看看能否找到更快的方法。

相关内容