ffmpeg / ffprobe中的持续时间比特率和流比特率有什么区别?

时间:2019-02-09 16:25:38

标签: ffmpeg ffprobe

为什么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

(我需要获取有关文件的正确信息,因为我要处理这些文件以进行指纹识别)

1 个答案:

答案 0 :(得分:0)

如果您想要音频流的实际比特率,则需要对其进行解析。

ffmpeg -i file -c copy -map 0:a -f null -

记下最后一行的音频流大小,例如audio:8624kB及其上方一行的持续时间,例如time=00:03:43.16。将第一个除以第二个可获得流的平均比特率。

如果要使用名义比特率(即编码器的目标设置),则是流的读数。

格式比特率,即start:旁边的比特率很粗糙,只需将文件大小除以持续时间即可。但这包括所有流和标头。对于具有单个视频+单个音频的文件很有用,而对其他文件则无用。