2012-06-08 72 views
2

我需要解析ffmpegs元数据输出,但由于某种原因,wav和flac文件之间的输出不同。ffmpeg flac和wav的输出有所不同,为什么?

拉克:

(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输出和我的解析后的结果:

http://pastebin.com/4qJfzZNL

回答

0

我最终通过使用ffprobe与ffmpeg一起解决了它。

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

关于它支持的格式的文件See the writers section,我使用JSON,但XML,CSV和INI也都支持。

0

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

您可以在持续时间行中使用比特率,但这可能会导致误导,而无法了解正在使用哪个编解码器。

+0

那么从理论上讲,每种格式都可以有另一种流数据结构?我发现了ffprobe,它允许我以更好的可解析方式获取输出,但请查看流分节行24 http://pastebin.com/tSACMJ5N – burzum

+0

我可以尝试今晚晚些时候看看,但我无法从工作中访问pastebin,对不起。 –

+0

嘿,谢谢你的努力,但我终于要使用ffprobe,检查我的答案,这可能有助于或改善你的工作。它真的很容易解析数据。 – burzum

相关问题