Como encontrar a taxa de bits de um arquivo mp3 via linha de comando?

30

Qual é o comando do terminal que pode ser usado para encontrar a taxa de bits de um arquivo mp3?

Existe alguma outra opção disponível além de mpg321 -t name.mp3?

devav2
fonte

Respostas:

36

Simplificando:

file song.mp3

Nota: file está incluído no Ubuntu.


Para os amantes de alias, insira isso no final do seu ~/.bashrcarquivo:

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

Abra uma nova janela do Terminal. Agora você pode executar o seguinte comando:

bitrate song.mp3
SirCharlo
fonte
1
Uau. fileComando simples fez o truque.
Devv2
9
Esteja avisado: se o arquivo for uma taxa de bits variável (VBR), o arquivo relatará apenas uma das muitas taxas de bits presentes. (Eu acho que é a taxa de bits do primeiro quadro). A resposta pode ser enganosa se a maior parte do arquivo estiver em uma taxa muito diferente. Se você quiser saber a taxa de bits média, consulte a resposta do apacheuk.
Alan De Smet
+1 Alguma chance de você poder adicionar um breve resumo a esta resposta, explicando como ela funciona?
vozes
2
Por alguma razão file, não funciona com muitos MP3s que eu tenho, que são identificados corretamente exiftoole até melhor mediainfo.
Jamadagni
Não funciona na maioria dos meus arquivos no Ubuntu 16.04. Como mencionado acima, eu tenho certeza que é devido ao arquivo não entender os arquivos VBR corretamente. "file" apenas diz "arquivo de áudio com ID3 versão 2.3.0"
slacy 4/10/16
34

MediaInfo é outra solução para fazer isso (não apenas em mp3).

sudo apt-get install mediainfo

Exemplo:

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

Saída:

Bit rate mode                            : Constant
Bit rate                                 : 192 Kbps

Outro exemplo:

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

Outra saída:

Bit rate                                 : 192 Kbps

Obtenha exatamente a taxa de bits do áudio via mediainfo em bps:

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

ou em Kbps:

mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP3'
BuZZ-dEE
fonte
Você pode apenas especificar --Output=JSONpara obter a saída formatada como JSON. Isso é útil se você estiver usando mediainfodentro de outro aplicativo.
Chris
26

Instale o pacote mp3info

sudo apt-get install mp3info

Para encontrar a taxa de bits, use

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

fornecerá as informações necessárias, além de outras funções úteis man mp3infopara obter mais informações

apacheuk
fonte
1
mp3info não suporta marcação ID3v2.
Ian
1
@ Ian: por mais verdadeiro que seja, é irrelevante para esta pergunta ou esta resposta.
Johann
1
Se você está curioso sobre a taxa de bits sozinha, então sim - é irrelevante. Se você encontrou esta resposta porque estava trabalhando em um script que precisava da taxa de bits, além de outros campos de seus arquivos mp3 (alguns dos quais possuem apenas tags ID3v2), essas informações impediriam que você caísse em um beco sem saída com mp3info- a programa que nem sempre extrai informações de mp3s.
Ian
8

Você pode instalar o pacote libimage-exiftool-perl:

sudo apt-get install libimage-exiftool-perl

Então corra:

exiftool -AudioBitrate GoldLion.mp3

Ele produzirá algo como:

Audio Bitrate : 192 kbps
carey
fonte
Legal! Isso fornece informações meta maravilhosas sobre o arquivo.
Devv2
Sim, mas não identifica o VBR. A resposta da Buzz-Dee abaixo sobre o MediaInfo ajuda nisso.
27416 jamadagni
4

A melhor informação, de longe, é fornecida por ffprobe(parte do ffmpegpacote). O mpg123 também é bom, mas difícil de receber grep, e é provavelmente por isso que você estava pedindo outra coisa.

$ 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

Para uso profissional, faça o seguinte:

# 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
fonte