Перечислите длительность каждого видеофайла в каталоге.

Перечислите длительность каждого видеофайла в каталоге.

У меня есть каталог, полный видеофайлов .MP4. Я хотел бы увидеть список, в котором есть имя каждого файла и его длительность в минутах и ​​секундах. Что-то вроде этого:

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

Я перепробовал много файловых менеджеров, но не нашел тот, который покажет мне эту информацию.

Решения, включающие терминал, были бы хороши.

решение1

Попробуйте это: (вдохновение изсуперпользователь.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

Однако вывод будет в формате ЧЧ:ММ:СС.МИЛЛИСЕКУНДЫ. Если вы не укажете опцию -sexagesimal, вы получите длительность в секундах.

Для желаемого выходного формата ЧЧ:ММ можно сделать что-то вроде этого:

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, Авторские права (c) 2007-2014 разработчики Libav
  собрано 6 июня 2014 г. в 18:25:37 с помощью gcc 4.7 (Debian 4.7.2-5)
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x90f4720] несколько записей в списке редактирования, может возникнуть рассинхронизация аудио/видео, патч приветствуется
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x90f4720] несколько записей в списке редактирования, может возникнуть рассинхронизация аудио/видео, патч приветствуется
Вход #0, mov,mp4,m4a,3gp,3g2,mj2, из «Zieleinlauf_2013_1886.mp4»:
  Метаданные:
    major_brand : isom
    второстепенная_версия: 512
    совместимые_бренды: isomiso2avc1mp41
    кодер: Lavf54.2.100
  Продолжительность: 00:00:14.09, начало: 0.021995, битрейт: 4009 кб/с
    Поток #0.0(und): Видео: h264 (High), yuv420p, 534x300, 3854 кбит/с, 25 кадров в секунду, 25 tbn, 50 tbc (по умолчанию)
    Поток № 0.1(und): Аудио: aac, 22050 Гц, моно, fltp, 127 кбит/с (по умолчанию)
# вывод avprobe

Связанный контент