linuxの 'file'コマンドを使ってタイプ(すなわち、画像、オーディオ、またはビデオ)

ここの file という単語は、シェルのファイルコマンドを指します。実際のファイルではありません。ファイルがたとえばビデオファイル( .mpg.mkv.avi )であるかどうかを確認したいと思います。イメージファイルの場合は image 、ビデオファイルの場合は video 、オーディオファイルの場合は audioテキストの何らかの理由で application/x-empty )。私の質問は、これがどのようにタイプを識別するための信頼性です。私が単純なことをすれば

file -ib deliverance.avi | grep video

ここで概説されているメインビデオファイルのすべてで動作します?

10
追加された
ビュー: 1

3 答え

file の結果は完璧ではなく、いくつかの種類のファイルでは他のものよりも多くの問題があります。ファイルは、基本的に、予測可能なパターンのバイナリデータの特定の部分を検索してファイルタイプを特定します。

残念なことに、特に、ビデオによく使用されるファイルタイプの中には、この「問題のある」カテゴリに分類されるものがあります。 .mp4.mkv のような新しいコンテナ形式には、通常、含まれるデータの種類に応じて異なる複数のMIMEタイプがあります。たとえば、 .mp4video/mp4audio/mp4application/mp4 の内容によって異なります。

実際には、 file は一般的な使用法に従うだけの推測をしばしば行います。たとえば、Matroskaファイルを正しく特定することで理論的な困難があると言いましたが、 file は基本的にMatroskaファイルがビデオであることを前提としています。一方、Oggコンテナの使用法は、オーディオとビデオの間で均等に分割されていますが、現在のバージョンの file では、その違いを分割し、Oggファイルを application/ogg のいずれかのカテゴリに分類されません。

私が確実に言うことの1つは、あなたが手に入れることができる file の最新バージョンがほしいということです。一致するパターンを含む「マジック」ファイルと、一致した結果生じるMIMEタイプは、WebMのような新しいファイルタイプを含むようにかなり頻繁に更新され、古いタイプの精度を向上させるために頻繁に更新されます。

9
追加された
追加された 著者 puk,
私は予備テストを行い、ファイルはかなり正確でした。もちろん、25,000種類の動画ファイルの信頼できるサンプルを取得するのは簡単ではありません。
追加された 著者 puk,
大きなサイトがこの問題をどのように処理しているか知っていますか?多分それを再生しようとするmplayerを取得します。
追加された 著者 puk,
これは間違っています。 fileコマンドは、「ファイルタイプを把握するための予測可能なパターンのバイナリデータの特定の部分」を調べません。これはファイルの最初の数文字を見ています。これはunix-landでファイルタイプを決定します。ファイルマジックナンバーとも呼ばれます。マジックナンバーテーブルはテーブル内で検索されます。以下のフランクの答えは正しい答えです
追加された 著者 Doo Dah,
私は否定的に聞こえるわけではありません。 file はおそらくあなたが得ようとしているほど良いものです。いくつかの拡張機能が特定の方法で検出されたことを確認したい場合(または実際にヒットした問題に対処するため)、拡張機能をチェックすることもできます。
追加された 著者 John Flatness,
基本的にどこでも見つけることができるマジックファイルの現在のフォーマットは、静的または可変オフセットのパターンを含む「ファイルの最初の数文字」よりもはるかに複雑なパターンを可能にします。ファイルの種類。 (また、典型的な "マジックナンバー"は、とにかく予測可能なパターンでバイナリデータの特定の部分として記述します)。
追加された 著者 John Flatness,

ファイルは、ファイルのヘッダを「マジックナンバー」ファイルと照合して動作します。私はあなたの参照リストからのファイルタイプについて、あなたのローカルマジックナンバーファイル(おそらく/ usr/share/magicでは、詳細についてはmanファイルを参照)をチェックするのが最善の方法だと思っています。

1
追加された

それはほとんどのビデオ/オーディオ/画像ファイルで動作するはずです。しかし、そうでなければ、実際には拡張子とその型の間の関係を含むファイルがあります:

これらのファイルを識別する情報は、コンパイルされたマジックファイル/usr/share/magic.mgcまたはコンパイルファイルが存在しない場合は/ usr/share/magicから読み込まれます。

see: http://linux.about.com/library/cmd/blcmdl1_file.htm

お役に立てれば!

1
追加された