Як знайти бітрейт файлу mp3 за допомогою командного рядка?


30

Що це за термінальна команда, яка може знайти бітрейт файлу mp3?

Чи є інший варіант, окрім mpg321 -t name.mp3?

Відповіді:


36

Простіше кажучи:

file song.mp3

Примітка: file входить до Ubuntu.


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

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

Відкрийте нове вікно терміналу. Тепер ви можете виконати таку команду:

bitrate song.mp3

1
Ого. Проста fileкоманда зробила трюк.
devav2

9
Будьте попереджені: якщо файл із змінною швидкістю передачі (VBR), файл повідомить лише про одну з багатьох присутніх бітових швидкостей. (Я думаю, що це швидкість передачі першого кадру.) Відповідь може бути оманливою, якщо більша частина файлу має дуже різну швидкість. Якщо ви хочете знати середню швидкість передачі, див відповідь apacheuk.
Алан Де Смет

+1 Будь-який шанс, що ви можете додати коротку резюме до цієї відповіді, пояснюючи, як це працює?
голоси

2
Чомусь fileне працює з великою кількістю MP3-файлів, які у мене є, які належним чином ідентифіковані, exiftoolа ще краще mediainfo.
jamadagni

Не працює для більшості моїх файлів на Ubuntu 16.04. Як було сказано вище, я впевнений, що це через те, що файл не розуміє файли VBR правильно. "файл" просто говорить "Аудіофайл з версією ID3 версії 2.3.0"
слайс

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 в bps:

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

або в Кбіт / с:

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

Ви можете просто вказати, --Output=JSONщоб вихід був відформатований як JSON. Це корисно, якщо ви використовуєте mediainfoвсередині іншого додатка.
Кріс

26

Встановіть mp3info- пакет

sudo apt-get install mp3info

Щоб знайти бітрейт, використовуйте

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

дасть необхідну інформацію, а також має деякі інші корисні функції man mp3infoдля отримання додаткової інформації


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

Класно! Це забезпечує чудову мета-інформацію про файл.
devav2

Так, але це не ідентифікує VBR. Відповідь Buzz-Dee про MediaInfo нижче в цьому допомагає.
jamadagni

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"
        }
    }
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.