У меня есть каталог, полный.MP4 видеофайлов. Я хотел бы видеть список, который имеет название каждого файла и его продолжительности в минутах и секундах. Что-то вроде этого:
one.mp4 4:34
two.mp4 2:23
three.mp4 8:34
four.mp4 0:43
Я попробовал много файловых менеджеров, но не могу найти тот, который покажет мне эту информацию.
Решения, которые включают терминал, были бы прекрасны.
Попробуйте это: (вдохновение от superuser.com )
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 Вы получите продолжительность в секундах.
Для желаемой outputform 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
avprobe
от пакета libav-tools
делает это.
Демонстрационный выходной avprobe myfile.mp4
avprobe version 10.1-6:10.1-1~bpo70+1, Copyright (c) 2007-2014 the Libav developers built on Jun 6 2014 18:25:37 with gcc 4.7 (Debian 4.7.2-5) [mov,mp4,m4a,3gp,3g2,mj2 @ 0x90f4720] multiple edit list entries, a/v desync might occur, patch welcome [mov,mp4,m4a,3gp,3g2,mj2 @ 0x90f4720] multiple edit list entries, a/v desync might occur, patch welcome Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Zieleinlauf_2013_1886.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf54.2.100 Duration: 00:00:14.09, start: 0.021995, bitrate: 4009 kb/s Stream #0.0(und): Video: h264 (High), yuv420p, 534x300, 3854 kb/s, 25 fps, 25 tbn, 50 tbc (default) Stream #0.1(und): Audio: aac, 22050 Hz, mono, fltp, 127 kb/s (default) # avprobe output