Как найти битрейт mp3 файла через командную строку?

30

Какая команда терминала может использоваться для определения битрейта mp3-файла?

Есть ли другой вариант, кроме mpg321 -t name.mp3?

devav2
источник

Ответы:

36

Проще говоря:

file song.mp3

Примечание: file включено в Ubuntu.


Для любителей псевдонимов вставьте это в конец вашего ~/.bashrcфайла:

bitrate () {
    echo `basename "$1"`: `file "$1" | sed 's/.*, \(.*\)kbps.*/\1/' | tr -d " " ` kbps
}

Откройте новое окно терминала. Теперь вы можете запустить следующую команду:

bitrate song.mp3
SirCharlo
источник
1
Вау. Простая fileкоманда сделала свое дело.
devav2
9
Имейте в виду: если файл имеет переменную скорость передачи (VBR), файл сообщит только одну из множества существующих скоростей передачи. (Я думаю, что это битрейт первого кадра.) Ответ может быть обманчивым, если большая часть файла имеет очень разную скорость. Если вы хотите узнать среднюю скорость передачи, смотрите ответ apacheuk.
Алан Де Смет
+1 Есть ли шанс, что вы можете добавить краткое резюме к этому ответу, объясняя, как это работает?
голоса
2
По некоторым причинам fileне работает с большим количеством MP3-файлов, которые у меня есть, и которые exiftoolлучше идентифицированы и даже лучше mediainfo.
Джамадагни
Не работает для большинства моих файлов в Ubuntu 16.04. Как было сказано выше, я уверен, что это из-за того, что файл неправильно понимает файлы VBR. «file» просто говорит «Audio file с ID3 версии 2.3.0»
slacy
34

MediaInfo является еще одним решением для этого (не только в mp3).

sudo apt-get install mediainfo

Пример:

mediainfo Aphrodite_-_Superman_\(dnb\).mp3 | grep "Bit rate"

Выход:

Bit rate mode                            : Constant
Bit rate                                 : 192 Kbps

Другой пример:

mediainfo Aphrodite_-_Superman_\(dnb\).mp3 | grep 'Bit rate  '

Другой вывод:

Bit rate                                 : 192 Kbps

Получите именно аудио битрейт через mediainfo в бит / с:

mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP3'

или в кбит / с:

mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP3'
Базз-DEE
источник
Вы можете просто указать, --Output=JSONчтобы получить результат в формате JSON. Это полезно, если вы используете mediainfoвнутри другого приложения.
Крис
26

Установить пакет mp3info

sudo apt-get install mp3info

Чтобы найти битрейт используйте

mp3info -r a -p "%f %r\n" *.mp3 

даст необходимую информацию, а также имеет некоторые другие полезные функции man mp3infoдля получения дополнительной информации

apacheuk
источник
1
mp3info не поддерживает теги ID3v2.
Ян
1
@Ian: правда, как бы то ни было, это не имеет отношения к этому вопросу или этому ответу.
Иоганн
1
Если вам интересно только скорость передачи данных, то да - это не имеет значения. Если вы нашли этот ответ, потому что работали над сценарием, для которого требовался битрейт в дополнение к другим полям из ваших mp3-файлов (некоторые из которых имеют только теги ID3v2), то эта информация не позволит вам зайти в тупик с mp3infoпомощью Программа, которая не всегда извлекает информацию из mp3.
Ян
8

Вы можете установить пакет libimage-exiftool-perl:

sudo apt-get install libimage-exiftool-perl

Затем запустите:

exiftool -AudioBitrate GoldLion.mp3

Это выведет что-то вроде:

Audio Bitrate : 192 kbps
Carey
источник
Круто! Это обеспечивает прекрасную мета-информацию о файле.
devav2
Да, но это не идентифицирует VBR. Ответ Buzz-Dee ниже о MediaInfo помогает в этом.
Джамадагни
4

Лучшая информация, безусловно, предоставляется ffprobe(часть ffmpegпакета). mpg123 также хорош, но трудно получить вывод, поэтому, вероятно, вы просили что-то еще.

$ mpg123 -t example.mp3 2>&1 | grep -A1 -E "^MPEG"
MPEG 2.5 L III cbr32 11025 mono

$ ffprobe example.mp3 2>&1 | grep Stream
    Stream #0:0: Audio: mp3, 11025 Hz, mono, s16p, 32 kb/s

Для про-использования, сделайте это:

# ffprobe -v quiet -print_format json -show_format -show_streams example.mp3

{
    "streams": [
        {
            "index": 0,
            "codec_name": "mp3",
            "codec_long_name": "MP3 (MPEG audio layer 3)",
            "codec_type": "audio",
            "codec_time_base": "1/11025",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "sample_fmt": "s16p",
            "sample_rate": "11025",
            "channels": 1,
            "channel_layout": "mono",
            "bits_per_sample": 0,
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/14112000",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 55294344,
            "duration": "3.918250",
            "bit_rate": "32000",
            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            }
        }
    ],
    "format": {
        "filename": "example.mp3",
        "nb_streams": 1,
        "nb_programs": 0,
        "format_name": "mp3",
        "format_long_name": "MP2/3 (MPEG audio layer 2/3)",
        "start_time": "0.000000",
        "duration": "3.918250",
        "size": "17260",
        "bit_rate": "35240",
        "probe_score": 51,
        "tags": {
            "title": "Sound Effects - Female Operatic La 1 - Opera singer sings La.",
            "artist": "Download Sound Effects - SoundDogs - AOS",
            "album": "http://www.Sounddogs.com",
            "track": "0",
            "copyright": "(c) 2010 Sounddogs.com, All Rights Reserved",
            "genre": "SFX - Humans; Vocalizations",
            "comment": "Royalty Free Sound Effects - Sounddogs.com",
            "date": "2008"
        }
    }
}
not2qubit
источник