24 votos

Obtener la longitud del MP3 en Linux / FreeBSD

Tengo un montón de archivos mp3 con longitud diferentes. Quiero cortar hasta 50-60% de longitud. Dice: desde 1 minuto hasta 30 segundos. Debería ser trivial usando ffmpeg. Pero, no sé cómo determinar la longitud original del mismo como base para el procesamiento utilizando ffmpeg.

¿Alguien tiene una idea?

26voto

A Dwarf Puntos 14537

Con ffmpeg no hay manera que saber para obtener la longitud como una variable que se puede utilizar en una secuencia de comandos. Pero mp3info .

mp3info -p "%S" sample.mp3   // total time in seconds

22voto

user12786 Puntos 454

ffmpegtodo lo que sabe sobre el archivo si no se dan otros argumentos imprime. Uso grep para quitar todo pero la "duración":

$ ffmpeg -i foo.mp3 2>&1 | grep Duration
  Duration: 01:02:20.20, start: 0.000000, bitrate: 128 kb/s

También se podría utilizar mplayer . Grep para la línea "ID_LENGTH =":

$ mplayer -ao null -identify -frames 0 foo.mp3 2>&1 | grep ID_LENGTH
ID_LENGTH=3740.00

9voto

Brian Vallee Puntos 61

Curiosamente el EXIFTool aplicación da MP3 duración como la última línea!

$ exiftool somefile.mp3
ExifTool Número De Versión : 7.98
Nombre de archivo : somefile.mp3
Directorio : .
Tamaño de archivo : 49 MB
Fecha De Modificación Del Archivo/El Tiempo : 2009:09:10 11:04:54+05:30
Tipo de archivo : MP3
Tipo MIME : audio/mpeg
MPEG Audio de la Versión : 2.5
Capa De Audio : 3
El Bitrate De Audio : 64000
Frecuencia De Muestreo : 8000
Modo De Canal : Canal Único
MS Estéreo : Off
La Intensidad Estéreo : Off
Los Derechos De Autor De La Bandera : False
Los Medios De Comunicación Original : True
Énfasis : Ninguno
ID3 Tamaño : 26
Género : Blues
Duración : 1:47:46 (aprox.)

1voto

Craig Puntos 111

Yo personalmente uso Mplayer para extraer la información, sobre todo porque ya tengo instalado y no se molestaron en instalar nuevo software innecesariamente. La ventaja de esto es que no se limita a archivos mp3 en particular y debería funcionar con cualquier archivo multimedia que Mplayer puede manejar. La siguiente línea devolverá la longitud de la pista en segundos.

mplayer -identify -ao null -vo null -frames 0 Filename.mp3 | grep ^ID_LENGTH= | cut -d = -f 2

1voto

Monica Sol Puntos 11

Puede usar ffmpeg para conseguir duración de archivo. Sólo tiene que utilizar:

ffmpeg -i <infile> 2>&1 | grep "Duration" | cut -d ' ' -f 4 | sed s/,//

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: