我正在寻找一种确定音频或视频文件中使用的编解码器的可靠方法。我当前使用的两件事是文件扩展名(显而易见)和通过在文件上运行“file -ib”确定的 mime 类型。
这似乎并没有让我完全明白:大量格式是“包装”格式,隐藏了其中使用的确切编解码器 - 例如,“.ogg”文件可以在内部使用 Vorbis、Speex 或FLAC 编解码器。它们的 MIME 类型通常也隐藏在“application/ogg”或类似内容下。
"file"程序显然能够告诉我使用了哪个编解码器,但它返回了人类可读的散文:
kb.ogg: Ogg data, Vorbis audio, stereo, 44100 Hz, ~0 bps
因此,以编程方式使用它是很危险的。
我本质上要问的是:是否有一个脚本(任何语言)可以遍历这些包装格式并告诉我文件的内容是什么?
最佳答案
ffmpeg包括一个名为 libavformat 的库,它可以打开和解复用几乎任何媒体格式。显然这比您实际需要的要多,但我认为您找不到其他如此完整的东西。我自己就用过它,取得了巨大的成功。看看this article进行介绍。这些库还有一些常见脚本语言的绑定(bind),例如 python .
(如果您不想使用该库构建某些内容,您可以使用常规的 ffmpeg 二进制文件。)
关于wrapper - 确定媒体文件编解码器的 Surefire 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2037407/