我注意到,当我将mp3文件转换为flac时,flac文件中报告的持续时间通常会与源mp3文件的持续时间有所不同。通常,这种差异可以忽略不计,并且可以忽略不计(也许不到一秒钟)。
但是,有时定时会延迟几秒钟,这会导致我的处理流水线出现很多问题。
例如,以这个podcast episode for example为例。如果通过ffmpeg运行它,我可以看到它的持续时间为:
Duration: 00:52:38.39, start: 0.000000, bitrate: 128 kb/s
如果我随后使用以下命令将其转换为flac:
ffmpeg -i startups-for-the-rest-of-us-448.mp3 -ac 1 -ar 16000 -f flac output.flac
我可以看到flac文件的持续时间为:
Duration: 00:52:45.65, start: 0.000000, bitrate: 133 kb/s
请注意,转换过程中会显示一条错误消息,指出:
[mp3 @ 0x7fffd16d6780] Header missing
Error while decoding stream #0:0: Invalid data found when processing input
持续时间的差异是否与比特率差异有关?当我听文件时,听起来好像是一样的,我认为flac版本必须稍微慢一点,以便在播客过程中获得额外的7秒。
答案 0 :(得分:1)
您应该在ffmpeg日志顶部附近看到它
Estimating duration from bitrate, this may be inaccurate
MP3可能没有索引,因此ffmpeg必须估算持续时间,它确实使用比特率。根据比特率差异,此估算值可能会关闭。
运行ffmpeg -i in.mp3 -vn -f null -
并检查日志结尾是否有准确的估算值
size=N/A time=00:52:45.67 bitrate=N/A speed= 761x