Я хочу получить длительность песни .mp3 в секундах, используя mp3info .
Когда я выполняю
mp3info -p "%S" file.mp3
, выводом является
file.mp3 поврежден или не является стандартным файлом MP3.
blockquote>Файл правильный 100%. Когда я выполняю команду в том же файле на другом компьютере, я получаю правильную информацию. Rpm-версия mp3info одинакова на обоих компьютерах.
Кто-нибудь знает, в чем может быть проблема?
Вы можете использовать что-то вроде avconv
/ ffmpeg
, которое вы сможете затем grep
опустить. Я рекомендую его, потому что он довольно надежный и должен выходить за рамки разбитых заголовков:
$ avconv -i ~/Music/Aqua/Aquarium/*03*
avconv version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
built on Mar 30 2013 22:20:06 with gcc 4.7.2
[mp3 @ 0x733ce0] Header missing
[mp3 @ 0x732960] max_analyze_duration reached
[mp3 @ 0x732960] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from '/home/oli/Music/Aqua/Aquarium/Aqua - 03 - Barbie Girl.mp3':
Metadata:
title : Barbie Girl
track : 03/11
artist : Aqua
album : Aquarium
genre : European Pop
TLEN : 198008
album_artist : Aqua
TBPM : 130
date : 1999
Duration: 00:03:50.32, start: 0.000000, bitrate: 128 kb/s
Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s
At least one output file must be specified
Тогда просто примените awk
вольно:
$ avconv -i ~/Music/Aqua/Aquarium/*03* 2>&1 | awk '/Duration/ {print $2}' | tr -d ,
00:03:50.32