Ffmpeg 连接两个文件,同时分别保持两个文件的持续时间相同

Ffmpeg 连接两个文件,同时分别保持两个文件的持续时间相同,ffmpeg,ffprobe,Ffmpeg,Ffprobe,当我计算要连接的每个单独文件的持续时间时,两者的值都是10.24。所以我想,当我连接这两个文件时,我会得到文件a加上文件B的持续时间或10.24+10.24,这两个文件的总持续时间为20.48。但无论我用什么命令来集中注意力,我都无法获得相同的持续时间。我做错什么了吗 ffprobe -i "audioA.mp3" -show_entries format=duration -v quiet -of csv="p=0" 10.24 总共是10.24+1

当我计算要连接的每个单独文件的持续时间时,两者的值都是10.24。所以我想,当我连接这两个文件时,我会得到文件a加上文件B的持续时间或10.24+10.24,这两个文件的总持续时间为20.48。但无论我用什么命令来集中注意力,我都无法获得相同的持续时间。我做错什么了吗

ffprobe -i "audioA.mp3" -show_entries format=duration -v quiet -of csv="p=0"
10.24 
总共是10.24+10.24=20.48秒

但是当我连接文件时,我得到了不同的持续时间。以下是我的不同尝试

尝试1

FFMPEG -y -i 'concat:audioA.mp3|audioB.mp3' -map 0:a -codec:a copy -map_metadata -1 output.mp3
ffprobe -i "output.mp3" -show_entries format=duration -v quiet -of csv="p=0"
20.610612
尝试2次

FFMPEG -y -i audioA.mp3 -i audioB.mp3 -filter_complex [0:a][1:a]concat=n=2:v=0:a=1 output.mp3
ffprobe -i "output.mp3" -show_entries format=duration -v quiet -of csv="p=0
20.453878
尝试3次

FFMPEG -y -i 'concat:audioA.mp3|audioB.mp3' output.mp3
ffprobe -i "output.mp3" -show_entries format=duration -v quiet -of csv="p=0"
20.506122
  • 是否有用于连接输出文件的命令 相同的持续时间
  • 有没有一种不用重新编码就能做到这一点的方法
  • 是什么使上述组合文件中的持续时间不同

根据我使用FFmpeg的经验,要获得精确的持续时间非常复杂。我已经看到我的输出持续时间根据格式、编解码器和使用的过滤器(显然)而变化。如果你想在不重新编码的情况下将它们连接起来,那么你就有了这样的信息,那就是这两个文件是完全相同的文件。所以它是相同的编解码器比特率-一切都是完全相同的。不知道为什么放在一起时持续时间会不同。计算的持续时间总是一致的。你是否设法保持相同的持续时间?我对解决方案感兴趣根据我使用FFmpeg的经验,实现精确的持续时间很复杂。我已经看到我的输出持续时间根据格式、编解码器和使用的过滤器(显然)而变化。如果你想在不重新编码的情况下将它们连接起来,那么你就有了这样的信息,那就是这两个文件是完全相同的文件。所以它是相同的编解码器比特率-一切都是完全相同的。不知道为什么放在一起时持续时间会不同。计算的持续时间总是一致的。你是否设法保持相同的持续时间?我对解决方案感兴趣
FFMPEG -y -i 'concat:audioA.mp3|audioB.mp3' output.mp3
ffprobe -i "output.mp3" -show_entries format=duration -v quiet -of csv="p=0"
20.506122