ver tengo saber que program para mtime modificacion memoria lista letras fecha ejemplos directorio crear creacion completa como comandos comando basicos archivo unix audio sox

unix - tengo - verificar la duración de los archivos de audio en la línea de comandos



ver memoria ram linux terminal (10)

Además de la answer de cdosborn, calcular la longitud de todos los archivos .mp3 recursivamente en las subcarpetas del directorio actual y mostrar el resultado de la suma total en days:hours:minutes:seconds formato:

En zsh:

afinfo **/*.mp3 | awk ''/estimated duration/ { print $3 }'' | paste -sd+ - | bc | awk ''{printf("%d:%02d:%02d:%02d/n",($1/60/60/24),($1/60/60%24),($1/60%60),($1%60))}''

En bash o sh:

find . -name "*.mp3" -exec afinfo {} /; | awk ''/estimated duration/ { print $3 }'' | paste -sd+ - | bc | awk ''{printf("%d:%02d:%02d:%02d/n",($1/60/60/24),($1/60/60%24),($1/60%60),($1%60))}''

El resultado es así (7 días, 5 horas, 6 minutos, 58 segundos):

$ afinfo **/*.mp3 | awk ''/estimated duration/ { print $3 }'' | paste -sd+ - | bc | awk ''{printf("%d:%02d:%02d:%02d/n",($1/60/60/24),($1/60/60%24),($1/60%60),($1%60))}'' 7:05:06:58 $

Necesito verificar la duración de un grupo de archivos de audio. ¿Hay una manera simple de hacer esto en la línea de comandos de Unix?

> duration *

Tengo la asombrosa aplicación SoX que tiene una opción llamada estadísticas que genera un conjunto de información de audio, incluida la duración. Estoy buscando una forma de obtener solo duración. Soy flexible en el formato de salida, podría ser cualquier longitud de muestra, hh: mm: ss o segundos. Este último sería mi preferencia.


Otra respuesta basada en soxi incluye los nombres de los archivos y la duración en formato de horas, minutos y segundos.

$for f in *amr; do printf "$f "; soxi -d $f; done DGT20161216.amr 00:22:04.62 DGT20170108.amr 00:28:22.80 DGT20170117.amr 00:20:05.18


Una solución basada en mplayer de commandlinefu por syssyphus que funciona con archivos de audio y video:

sudo apt-get install mplayer find -type f -name "*.mp3" -print0 | xargs -0 mplayer -vo dummy -ao dummy -identify 2>/dev/null | perl -nle ''/ID_LENGTH=([0-9/.]+)/ && ($t +=$1) && printf "%02d:%02d:%02d/n",$t/3600,$t/60%60,$t%60'' | tail -n 1

Obtenga la longitud total de todos los videos / audios en el directorio actual (y abajo) en H: m: s

Cambia el *.mp3 a lo que quieras emparejar (por ejemplo, *.avi , *.wav ), puedes eliminarlo por completo si deseas verificar todos los archivos.

Ejemplo de salida: 00:00:37


mediainfo puede hacer esto, pero mediainfo es una de esas herramientas útiles que está tan mal documentada que casi necesita saber cómo usarla para aprender a usarla (sucede mucho en el mundo de Linux).

Después de horas de pruebas y lecturas altas y bajas, finalmente logré generar una lista recursiva de nombres de archivos separados por comas y su duración en milisegundos.

cd al directorio inicial y emita el siguiente comando:

find "$(pwd)" -type f -print0 | xargs -0 -I {} mediainfo --Inform="General;%CompleteName%,%Duration%" {} > list.txt

Los resultados se enviarán a list.txt.


mediainfo le devolverá los milisegundos de un archivo de audio. Suponiendo que el directorio actual solo tiene archivos de audio, el siguiente

mediainfo --Inform="Audio;%Duration%" "Miley Cyrus - Wrecking Ball.mp3"

Para calcular la duración de todo el audio en el directorio local, esta esencia ayudará:

shopt -s nullglob let playlist_duration_ms=0 for song_file in *.{mp3,ogg,m4a,flac,wav}; do playlist_duration_ms=$(expr $playlist_duration_ms + $(mediainfo --Inform="Audio;%Duration%" "$song_file")) done shopt -u nullglob let playlist_duration_secs=$(expr $playlist_duration_ms / 1000) let playlist_duration_mins=$(expr $playlist_duration_ms / 60000) let playlist_duration_remaining_secs=$(expr $playlist_duration_secs - $(expr $playlist_duration_mins /* 60)) echo $playlist_duration_mins minutes, $playlist_duration_remaining_secs seconds


en OSX

Imprime la longitud de cada archivo de audio en el directorio actual:

afinfo * | awk ''/estimated duration/ { print $3 }''

Incluye la ruta de archivo

afinfo * | awk ''/File:/ { song=$2 } /estimated duration/ { print song, $3 }''


ffmpeg -i <audiofile> 2>&1 | grep Duration


mp3info -p "%m:%s/n" filename

le da la longitud del archivo especificado.


sox --info -D file --> duration in seconds sox --info -d file --> duration in HH:mm:ss.ss sox --info file --> metadata


soxi -D filename soxi -D *

Soxi consulta metadatos de archivos de audio; D es la opción de duración. Es compatible con globbing. El hermano mayor de sox hace el procesamiento de audio en línea de comandos.