Список файлов MP3 и продолжительности

Вероятно, вы забыли передать xscreensaver соответствующие cookies аутентификации.

Смотрите https://github.com/the-cavalry/light-locker/issues/81 для примера, как это сделать, и так как вы не используете light-locker, проблема не применима, и скрипты, упомянутые в том сообщении, должны "просто работать" для вас.

1
09.09.2018, 01:32
2 ответа

Чтобы получить такой вывод:

00:07:22 first.mp3
00:02:33 second.mp3
00:04:04 third.mp3

использовать:

for file in *.mp3
do
  echo -n $(ffprobe $file 2>&1 | grep 'Duration' | cut -d',' -f1 | cut -d' ' -f4 | cut -d'.' -f1)
  echo " $file"
done 

где

  • 2>&1перенаправляет stderr на stdout
  • grep...фильтрует только строку с длительностью
  • 1-я cut...выпискиDuration: 00:07:22.33
  • 2-я cut...выписки00:07:22.33
  • 3-я cut...выписки00:07:22
2
28.04.2021, 23:42

Вы можете легко избавиться от информации, помещенной в stderr, с помощью опции -loglevel -quiet. В этом случае вам нужно запросить поле, которое вы хотите отобразить.

[user@host ~]$ ffprobe -loglevel quiet -show_entries format=duration test/test.mp3 
[FORMAT]
duration=172.434286
[/FORMAT]

Это по-прежнему дает некоторую дополнительную информацию, которую можно сократить, и продолжительность в секундах.

[user@host test]$ ffprobe -loglevel quiet -show_entries format=duration \-print_format default=noprint_wrappers=1:nokey=1 -pretty test.mp3 
0:02:52.434286

Здесь можно использовать -print_format, чтобы избавиться от лишней информации.:

  • default=noprint_wrappers=1удалит [FORMAT]материал
  • nokey=1удалит ключевое имяduration=

И последнее, но не менее важное: вы можете использовать -prettyили просто -sexagesimalдля преобразования длительности в секундах в формат HH:MM:SS.MICROSECONDS.


Чтобы найти все файлы MP3 в папке, вы можете объединить findи команду ffprobeвыше.

[user@host ~]$ find test/ -name '*mp3' -printf "%f:\t" -exec ffprobe -loglevel error -print_format default=noprint_wrappers=1:nokey=1 -pretty -show_entries stream=duration "{}" \;
test.mp3:   0:02:52.434286
0
28.04.2021, 23:42

Теги

Похожие вопросы