
.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 出力