合并音频与合并视频时长不一致问题求助
合并音频与合并视频时长不一致问题求助
大家好,我碰到一个棘手的问题,想请各位前辈帮忙排查一下原因。
我手头有一批存在同一文件夹里的图片和音频文件,打算用ffmpeg分别合并它们。下面是我的具体操作流程:
音频合并操作
我先整理了音频文件的列表audios.txt,内容如下:
file audio1.wav file audio2.wav file audio3.wav
执行的合并命令是:
ffmpeg -f concat -i audios.txt merged.wav
这部分没问题,合并后的merged.wav时长是20秒,和预期一致。
图片转视频操作
为了让每张图片的显示时长匹配对应音频的时长,我用Python的librosa库计算了每个音频的时长,然后整理了图片列表images.txt,内容如下:
file image1.png duration 3.3589115646258505 file image2.png duration 4.958730158730159 file image3.png duration 11.687709750566894
计算时长的Python代码:
import librosa def get_duration(path): return librosa.get_duration(path=path)
接着执行视频合并命令:
ffmpeg -f concat -i images.txt -c png merged.mp4
遇到的异常情况
现在奇怪的地方来了:合并后的音频是正确的20秒,但生成的merged.mp4却只有11秒,和总时长对不上。有没有小伙伴知道这是哪里出了问题?麻烦帮忙支个招,感谢大家!
备注:内容来源于stack exchange,提问作者roku




