Você pode facilmente se livrar das informações colocadas em stderr
com a opção -loglevel -quiet
. Nesse caso, você precisa consultar o campo que deseja exibir.
[user@host ~]$ ffprobe -loglevel quiet -show_entries format=duration test/test.mp3
[FORMAT]
duration=172.434286
[/FORMAT]
Agora, isso ainda fornece algumas informações extras que podem ser removidas e a duração em segundos.
[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
Aqui, o -print_format
pode ser usado para se livrar da informação extra:
-
default=noprint_wrappers=1
removerá o [FORMAT]
stuff
-
nokey=1
removerá o nome da chave duration=
Por último, mas não menos importante, você pode usar -pretty
ou apenas -sexagesimal
para converter a duração em segundos para um formato HH:MM:SS.MICROSECONDS
.
Para encontrar todos os arquivos MP3 em uma pasta, você pode combinar find
e o comando ffprobe
acima.
[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