代码之家  ›  专栏  ›  技术社区  ›  jameshfisher

确定媒体文件编解码器的方法

  •  2
  • jameshfisher  · 技术社区  · 15 年前

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

    这似乎并不能让我完全理解:加载的格式是“包装”格式,它隐藏了在中使用的确切编解码器,例如,.ogg文件可以在内部使用vorbis、speex或flac编解码器。它们的mime类型通常也隐藏在“application/ogg”或类似的文件下。

    “file”程序显然能够告诉我使用的是哪种编解码器,但它返回的是人类可读的散文:

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

    因此,以编程方式使用是不明智的。

    我的基本要求是: 有没有一个脚本(任何语言)可以通过这些包装格式,告诉我文件的肉是由什么组成的?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Emil H    15 年前

    ffmpeg 包括一个名为libavformat的库,它可以打开和反复用几乎任何媒体格式。显然,这比你实际需要的要多,但我认为你找不到其他完全一样的东西。我自己用得很成功。看一看 this article 作为介绍。这些库也有一些常用脚本语言的绑定,例如 python .

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

        2
  •  0
  •   slebetman    15 年前

    你总是可以用你自己的 magic 文件,从预安装文件复制和修改 魔术 文件,并更改返回字符串,以便程序可以轻松地解析它。

    见: