ディレクトリ内の各ビデオファイルの継続時間を一覧表示する

ディレクトリ内の各ビデオファイルの継続時間を一覧表示する

.MP4 ビデオ ファイルがいっぱい入ったディレクトリがあります。各ファイルの名前と、そのファイルの再生時間 (分と秒) のリストを表示したいと思います。次のようになります。

one.mp4    4:34
two.mp4    2:23
three.mp4  8:34
four.mp4   0:43

多くのファイルマネージャーを試しましたが、この情報を表示するものが見つかりません。

端末を使用するソリューションでも問題ありません。

答え1

これを試してみてください: (インスピレーションスーパーユーザー

for f in *.mp4
do
  echo -n "$f "
  ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 -sexagesimal "$f"
done

ただし、出力は HH:MM:SS.MILLISECONDS の形式になります。-sexagesimal オプションを省略すると、期間は秒単位で表示されます。

必要な出力形式 HH:MM の場合は、次のようにします。

for f in *.mp4
do
  echo -n "$f "
  dur=`ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$f"`
  min=`echo "$dur/60" | bc`
  sec=`echo "$dur%60/1" | bc`
  echo "$min:$sec"
done

答え2

avprobeパッケージからlibav-toolsこれを実行します。

サンプル出力 avprobe myfile.mp4

avprobe バージョン 10.1-6:10.1-1~bpo70+1、Copyright (c) 2007-2014 the Libav 開発者
  2014 年 6 月 6 日 18:25:37 に gcc 4.7 (Debian 4.7.2-5) でビルド
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x90f4720] 編集リストのエントリが複数あり、A/V の同期がずれる可能性があります。パッチを歓迎します
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x90f4720] 編集リストのエントリが複数あり、A/V の同期がずれる可能性があります。パッチを歓迎します
'Zieleinlauf_2013_1886.mp4' からの入力 #0、mov、mp4、m4a、3gp、3g2、mj2:
  メタデータ:
    主要ブランド: isom
    マイナーバージョン: 512
    互換性のあるブランド: isomiso2avc1mp41
    エンコーダ: Lavf54.2.100
  再生時間: 00:00:14.09、開始: 0.021995、ビットレート: 4009 kb/s
    ストリーム #0.0(und): ビデオ: h264 (高)、yuv420p、534x300、3854 kb/s、25 fps、25 tbn、50 tbc (デフォルト)
    ストリーム #0.1(und): オーディオ: aac、22050 Hz、モノラル、fltp、127 kb/s (デフォルト)
# avprobe 出力

関連情報