2

我正在寻找一种确定音频或视频文件中使用的编解码器的可靠方法。我目前使用的两件事是文件扩展名(很明显),以及通过在文件上运行“file -ib”确定的 mime 类型。

这似乎并没有让我一路走好:许多格式是“包装”格式,它们隐藏了其中使用的确切编解码器——例如,“.ogg”文件可以在内部使用 Vorbis、Speex 或 FLAC 编解码器。它们的 MIME 类型通常也隐藏在“application/ogg”或类似名称下。

`file' 程序显然能够告诉我使用了哪个编解码器,但它以人类可读的散文形式返回:

kb.ogg: Ogg data, Vorbis audio, stereo, 44100 Hz, ~0 bps

因此,以编程方式使用是不可靠的。

我实质上要问的是:是否有一个脚本(任何语言)可以遍历这些包装格式并告诉我文件的内容是什么?

4

2 回答 2

2

ffmpeg包含一个名为 libavformat 的库,它可以打开和解复用几乎任何媒体格式。显然,这比您实际需要的要多,但我认为您找不到其他任何东西都那么完整。我自己使用它取得了巨大的成功。看看这篇文章的介绍。这些库还有一些常见脚本语言的绑定,例如python

(如果您不想使用该库构建某些东西,您可以使用常规的 ffmpeg 二进制文件。)

于 2010-01-10T15:17:06.873 回答
1

您始终可以使用自己的magic文件,从预安装的magic文件中复制和修改,并更改返回字符串,以便您的程序可以轻松解析它。

看:

于 2010-01-10T15:25:00.907 回答