如何获取自制11500Khz单声道MP3文件的准确播放时长?
自定义采样率MP3文件的准确时长获取问题
我使用abcde工具自行创建了一个11500Khz单声道MP3文件,但尝试多种工具均无法获取其准确播放时长,仅mplayer在播放时能给出正确结果。遗憾的是我之后修改了abcde.conf,已记不清原配置。
mplayer播放时输出的最后一行显示:
A: 2.0 (01.9) of 1453.0 (24:13.0) 0.1%
这表明文件实际时长为1453秒,该结果准确,而我测试的其他工具均未给出此数值。
各工具测试结果
mplayer -identify 输出
执行mplayer -identify命令得到的ID_LENGTH为290秒(即4:49.9):
ID_DEMUXER=audio ID_AUDIO_FORMAT=85 ID_AUDIO_BITRATE=40000 ID_AUDIO_RATE=11025 ID_AUDIO_NCH=0 ID_START_TIME=0.00 ID_LENGTH=290.00 ID_SEEKABLE=1 ID_CHAPTERS=0
ffprobe 输出
ffprobe给出的时长为6:39,并提示该结果可能不准确:
Input #0, mp3, from '1.mp3': Metadata: album : Grip of the Shadow Plague artist : Mull, Brandon and Stevens, E. B. track : 19 title : Chapter 4 New Knights Part 1 date : 2008 Duration: 00:06:39.64, start: 0.000000, bitrate: 29 kb/s Stream #0:0: Audio: mp3, 11025 Hz, mono, fltp, 29 kb/s
sox 统计输出
执行sox "$FILENAME" -n stat得到的时长为393秒:
Samples read: 4341303 Length (seconds): 393.768980 Scaled by: 2147483647.0 Maximum amplitude: 0.796195 Minimum amplitude: -0.790958 Midline amplitude: 0.002618 Mean norm: 0.029145 Mean amplitude: -0.000003 RMS amplitude: 0.051813 Maximum delta: 0.873437 Minimum delta: 0.000000 Mean delta: 0.010020 RMS delta: 0.020763 Rough frequency: 703 Volume adjustment: 1.256
soxi 输出
soxi给出的时长为6:33:
Input File : 1.mp3 Channels : 1 Sample Rate : 11025 Precision : 16-bit Duration : 00:06:33.77 = 4341303 samples ~ 29532.7 CDDA sectors File Size : 1.45M Bit Rate : 29.5k Sample Encoding: MPEG audio (layer I, II or III) Comments : Tracknumber=19 Year=2008
我不确定还有其他什么方法,难道真的只能通过播放该文件并抓取mplayer的输出来获取准确时长吗?
内容的提问来源于stack exchange,提问作者John Gilmore
相关产品推荐
相关产品推荐

