Eu tenho um diretório com muitos arquivos mp3 e preciso de uma maneira simples de encontrar a duração acumulada deles. Eu sei que posso encontrar a duração de um arquivo com
ffmpeg -i <file> 2>&1 | grep Duration
Também sei que posso executar este comando em todos os arquivos mp3 em um diretório com o comando
for file in *.mp3; do ffmpeg -i "$file" 2>&1 | grep Duration; done
Isso pode ser um pouco filtrado com
for file in *.mp3; do ffmpeg -i "$file" 2>&1 | grep Duration | cut -f4 -d ' '; done
Mas como resumir tudo? Não é necessário usar ffmpeg
. O formato de saída também não é tão importante. Segundos ou mm:ss ou algo semelhante servirá. Eu gostaria que ficasse algo assim:
$ <command>
84:33
Você pode obter exatamente a duração em segundos e somar com bc:
Converta este número para o formato HH:MM:SS você mesmo. por exemplo https://stackoverflow.com/a/12199816/6481121
A resposta de Ipors Sicer funcionou perfeitamente. Para adicionar à sua resposta, retirei tudo após o ponto e usei esta resposta com uma pequena modificação para obter isso:
E obtive esta saída: