コーデックごとにすべてのビデオを検索する(コンテナ形式やMIMEタイプではない)

コーデックごとにすべてのビデオを検索する(コンテナ形式やMIMEタイプではない)

使用されたビデオコーデックを含むすべてのビデオのリストをどのように取得できますか?

次のような興味深いコマンドを見つけました。メディア情報ffmpegまたはエクスポートツールしかし、ただ一つの映像で多くの情報を提供しています。

私が見つけた最も興味深いコマンドは次のとおりです。文書そして私に次のような出力を与えます。

$ file *
8 Mile (2002).avi:        RIFF (little-endian) data, AVI, 640 x 272, 23.98 fps, video: XviD, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)
1984 (1984).avi:          RIFF (little-endian) data, AVI, 960 x 540, ~24 fps, video: H.264 X.264 or H.264, audio: MPEG-1 Layer 3 (stereo, 48000 Hz)

次のような出力が必要です(たとえば、次にXviDコーデックを持つビデオのみを変換します)。

~/Movies/8 Mile (2002).avi     XviD
~/Movies/1984 (1984).avi       H.264

注: 私macOS シエラレオン(10.12)しかし、Linuxコマンドも翻訳できます。

ベストアンサー1

修正する

ありがとう@don_crissti{}次に渡されたことを示しますshいつもエラー - 回避策は次のとおりです。

find ~/Movies/ -type f -iname "*.avi" -exec sh -c "echo $1; file $1 | cut -d, -f5 | cut -d: -f2 | sed 's/ //g' | sed 's/X.264orH.264//g'" {} \;

これを試してみることができます - テストされていません。

find ~/Movies/ -type f -iname "*.avi" -exec sh -c "echo {}; file '{}' | cut -d, -f5 | cut -d: -f2 | sed 's/ //g' | sed 's/X.264orH.264//g'" \;
  • find: すべてのaviファイルを検索~/Movies/
  • echo {}ファイル名の印刷
  • fileこれを実行filename
  • cut -d, -f5coma(,) で切り捨てた 5 番目のテキストフィールドを取得します。
  • cut -d: -f2コロン(:)で切り捨てられた2番目のテキストフィールドを取得します。
  • sedテキストから空白と重複するH264文字列を削除します。

おすすめ記事