2

我需要解析 ffmpegs 元数据输出,但由于某种原因,wav 和 flac 文件之间存在差异。

弗拉克:

(int) 14 => '  Duration: 00:03:18.93, bitrate: 1045 kb/s',
(int) 15 => '    Stream #0:0: Audio: flac, 44100 Hz, stereo, s16',

声音:

(int) 13 => '  Duration: 00:00:15.00, bitrate: 1411 kb/s',
(int) 14 => '    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s',

我认为我也可以从持续时间线获得比特率,但为什么会有所不同?未来的版本会不会有更多不同?真的很糟糕,没有比解析它的输出更好的方法来从 ffmpeg 获取信息。有更好的想法吗?

这是我的整个 ffmpeg 输出和我的解析结果:

http://pastebin.com/4qJfzZNL

4

2 回答 2

1

我最终通过使用 ffmpeg 附带的 ffprobe 解决了它。

ffprobe -v quiet -show_streams -show_format -show_error -print_format <format> <file>

有关它支持的格式,请参阅文档的作者部分,我使用过 json,但也支持 xml、csv 和 ini。

于 2012-06-09T21:17:48.480 回答
0

流线提供不同的信息,因为每个编解码器具有不同的参数。您将需要解析该行并根据音频类型,您需要了解它之后的那些参数。

您可以只在持续时间行中使用比特率,但是如果不知道正在使用哪个编解码器,这可能会产生误导。

于 2012-06-08T08:36:27.020 回答