2

オーディオ ファイルまたはビデオ ファイルで使用されているコーデックを特定する確実な方法を探しています。私が現在使用しているのは、ファイル拡張子 (明らか) と、ファイルに対して「file -ib」を実行して決定される MIME タイプの 2 つです。

これではうまくいきません: 多くの形式は、内部で使用されている正確なコーデックを隠す「ラッパー」形式です。たとえば、「.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 と呼ばれるライブラリが含まれており、ほぼすべてのメディア形式を開いて demux できます。明らかに、これは実際に必要な量を超えていますが、これほど完全なものは他にないと思います。私はそれを自分で使用して大成功を収めました。紹介はこちらの記事を参考にしてください。これらのライブラリには、pythonなどの一般的なスクリプト言語用のバインディングもあります。

(ライブラリを使用して何かをビルドしたくない場合は、おそらく通常の ffmpeg バイナリを使用できます。)

于 2010-01-10T15:17:06.873 に答える
1

magic事前にインストールされたファイルからコピーおよび変更された独自のファイルをいつでも使用できmagic、プログラムで簡単に解析できるように戻り文字列を変更できます。

見る:

于 2010-01-10T15:25:00.907 に答える