Экспорт общей длины mp3 файлов в папке?

7632
Anastasia

У меня есть много папок mp3-файлов, и я хотел бы иметь список общей продолжительности всех mp3-файлов в каждой папке. Это было бы идеальным решением, но некоторые средства печати каталогов с индивидуальной продолжительностью mp3 также были бы хорошими. Любая помощь приветствуется. Я использую Windows 7 Home Premium, но у меня есть доступ к ряду других Windows / Mac OS.

Редактировать - я действительно нашел решение, используя функцию экспорта в бесплатной программе Tagscanner.

2
У меня есть приложение WPF, которое я написал, которое будет делать это (среди прочего), но я еще нигде не загрузил его - все еще действительно только для внутреннего использования. Однако, если больше ничего не подойдет, я могу дать вам копию. ChrisF 13 лет назад 0

4 ответа на вопрос

5
slhck

Если вы работаете в Mac OS или любой другой системе Unix, вы можете установить ffmpeg и использовать следующую команду, чтобы извлечь длительность одного файла:

ffmpeg -i filename.mp3 2>&1 | egrep "Duration" | cut -d ' ' -f 4 | sed s/,// 

Это, например, вернет "00: 08: 17.4".

Конечно, вы можете использовать это в сценарии оболочки, так что, например, здесь будут перечислены все mp3-файлы в папке и их продолжительность справа.

#!/bin/bash # call me with mp3length.sh directory # e.g. ./mp3length .  # or ./mp3length my-mp3-collection  for file in $1/*.mp3 do echo -ne $file "\t" ffmpeg -i "$file" 2>&1 | egrep "Duration"| cut -d ' ' -f 4 | sed s/,// done 
4
albfan

Вы можете легко получить это с помощью oneliner:

$ for file in *.mp3; do mp3info -p "%S\n" "$file"; done | paste -sd+ | sed 's+\(.*\)+(\1)/60+' | bc 

Разъяснение:

  • mp3info : получает индивидуальную длину mp3 в секундах
  • вставить : объединить результат столбца с +разделителем
  • Сед : положить ()сумму и делит на 60 (минут
  • bc : выполнить арифметическую операцию
3
spinodal

Вы можете добавить столбец в список файлов в Windows Explorer. Добавьте столбец свойства «Длина» в папку. Затем выберите все файлы mp3 в папке. Вы можете увидеть общую длину в нижней сводной панели win.exp ...

(Не полное решение вашего вопроса, но вы сказали "любая помощь будет оценена: D)

Спасибо, это почти то, что я делаю в данный момент. Проблема в том, что эти файлы находятся на многих жестких дисках, поэтому я хочу иметь возможность экспортировать эту информацию для использования в электронных таблицах и т. П., Не делая все это вручную. Anastasia 13 лет назад 0
1
Rahul Purush

Немного в конце дня (десятилетие!), Но я хотел сделать то же самое. Благодаря Windows Powershell, вот небольшой скрипт, который я написал сегодня.

$path = '~\MS Subbulakshmi\1. Toronto 1977\' $shell = New-Object -COMObject Shell.Application $folder = $path $shellfolder = $shell.Namespace($folder) $total_duration = [timespan] 0 foreach($file in Get-ChildItem $folder) { $shellfile = $shellfolder.ParseName($file.Name) $total_duration = $total_duration + [timespan]$shellfolder.GetDetailsOf($shellfile, 27); } Write-Host "Total Duration of $folder is $total_duration" 

На выходе будет что-то вроде этого

Общая продолжительность ~ \ MS Subbulakshmi \ 1. Торонто 1977 \ 01:52:28

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