奇怪的 ffmpeg 行为 - “-shortest” 标志过早结束音频

奇怪的 ffmpeg 行为 - “-shortest” 标志过早结束音频

我正在尝试使用 生成一些视频文件ffmpeg,但是当我使用 标志时-shortest,我得到的文件的音频流比其视频流短几秒。我尝试了几种配置,但似乎出于某些未知(对我来说)的原因,ffmpeg音频流总是提前约 8.3 秒结束。

我的实际情况相当复杂(我用来image2pipe将自动生成的图像流转换为视频,并使用apad确保音频流延伸直到视频结束),但为了简单和可重复性,我将给出一个简单的例子:

我正在使用命令ffmpeg -framerate 30 -pattern_type glob -i "images/*.bmp" -i audio.mp3 -r 30 -shortest output.mp4。该目录images包含 600 份https://samples-files.com/samples/Images/bmp/480-360-sample.bmp, 并且audio.mp3https://samples-files.com/samples/Audio/mp3/sample-file-3.mp3(这是一个1m长文件)。我得到的输出文件可以在https://drive.google.com/file/d/1BCRhafFhTa8G-RPspv6o6ji2h6fRm8C0/view。如您所见,它可以正常播放,直到大约11s,然后突然继续,没有音频。(使用mediainfo,我可以确认文件持续时间为20s,这也是视频流的持续时间,但音频流的持续时间为11.657s)。

我的ffmpeg版本是6.0-6ubuntu1

我该如何解决这个问题?

相关内容