我需要解析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',
的Wav:
(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输出和我的解析结果:
答案 0 :(得分:0)
流线提供不同的信息,因为每个编解码器都有不同的参数。您将需要解析该行,并根据您需要的音频类型来理解它之后的那些参数。
您可以在持续时间行中使用比特率,但如果不知道正在使用哪个编解码器,这可能会产生误导。
答案 1 :(得分:0)
我最后使用ffmpeg附带的ffprobe解决了它。
ffprobe -v quiet -show_streams -show_format -show_error -print_format <format> <file>
See the writers section关于它支持的格式的文档,我使用过json,但也支持xml,csv和ini。