Avec ffmpeg, je ne connais aucun moyen d'obtenir la longueur en tant que variable que vous pouvez utiliser sur un script. Mais mp3info le fait.
mp3info -p "%S" sample.mp3 // total time in seconds
ffmpeg
affichera tout ce qu'il sait sur le fichier si vous ne lui donnez pas d'autres arguments. Utilisez grep
pour supprimer tout sauf la "Durée":
$ ffmpeg -i foo.mp3 2>&1 | grep Duration
Duration: 01:02:20.20, start: 0.000000, bitrate: 128 kb/s
Vous pouvez également utiliser mplayer
. Grep pour la ligne "ID_LENGTH=" :
$ mplayer -ao null -identify -frames 0 foo.mp3 2>&1 | grep ID_LENGTH
ID_LENGTH=3740.00
Fait intéressant, l'application EXIFTool donne la durée MP3 comme dernière ligne !
$ exiftool somefile.mp3 ExifTool Version Number : 7.98 File Name : somefile.mp3 Directory : . File Size : 49 MB File Modification Date/Time : 2009:09:10 11:04:54+05:30 File Type : MP3 MIME Type : audio/mpeg MPEG Audio Version : 2.5 Audio Layer : 3 Audio Bitrate : 64000 Sample Rate : 8000 Channel Mode : Single Channel MS Stereo : Off Intensity Stereo : Off Copyright Flag : False Original Media : True Emphasis : None ID3 Size : 26 Genre : Blues Duration : 1:47:46 (approx)