为什么ffmpeg / ffprobe为流和整个文件提供不同的比特率值?
当我使用ffprobe分析mp3文件时,它在第一行和第二行给出不同的比特率。 有谁知道,有什么区别?
// File 1, there is problem
Duration: 02:05:47.04, start: 0.000000, bitrate: 193 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 192 kb/s
// File 2, no problem
Duration: 02:05:51.05, start: 0.000000, bitrate: 192 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 192 kb/s
(我需要获取有关文件的正确信息,因为我要处理这些文件以进行指纹识别)
答案 0 :(得分:0)
如果您想要音频流的实际比特率,则需要对其进行解析。
ffmpeg -i file -c copy -map 0:a -f null -
记下最后一行的音频流大小,例如audio:8624kB
及其上方一行的持续时间,例如time=00:03:43.16
。将第一个除以第二个可获得流的平均比特率。
如果要使用名义比特率(即编码器的目标设置),则是流的读数。
格式比特率,即start:
旁边的比特率很粗糙,只需将文件大小除以持续时间即可。但这包括所有流和标头。对于具有单个视频+单个音频的文件很有用,而对其他文件则无用。