Jak znaleźć bitrate pliku mp3 za pomocą wiersza poleceń?


30

Jakiego polecenia terminalu można użyć do znalezienia szybkości transmisji pliku mp3?

Czy jest dostępna jakaś inna opcja niż mpg321 -t name.mp3?

Odpowiedzi:


36

Po prostu:

file song.mp3

Uwaga: file jest dołączony do Ubuntu.


Dla miłośników aliasów wstaw to na końcu ~/.bashrcpliku:

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

Otwórz nowe okno terminala. Możesz teraz uruchomić następujące polecenie:

bitrate song.mp3

1
łał. Proste filepolecenie załatwiło sprawę.
devav2

9
Uwaga: jeśli plik ma zmienną przepływność (VBR), plik zgłosi tylko jedną z wielu obecnych przepływności. (Myślę, że jest to szybkość transmisji pierwszej klatki.) Odpowiedź może być myląca, jeśli większość pliku ma inną szybkość. Jeśli chcesz poznać średnią szybkość transmisji, zobacz odpowiedź apacheuka.
Alan De Smet

+1 Czy jest szansa, że ​​możesz dodać krótkie podsumowanie do tej odpowiedzi, wyjaśniając, jak to działa?
głosy

2
Z jakiegoś powodu filenie działa z wieloma plikami MP3, które mam poprawnie zidentyfikowane, exiftoola nawet lepiej mediainfo.
jamadagni

Nie działa w przypadku większości moich plików w systemie Ubuntu 16.04. Jak wspomniano powyżej, jestem prawie pewien, że wynika to z niepoprawnego zrozumienia plików VBR. „plik” mówi tylko „Plik audio z wersją ID3
2.3.0

34

MediaInfo to kolejne rozwiązanie (nie tylko w formacie mp3).

sudo apt-get install mediainfo

Przykład:

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

Wydajność:

Bit rate mode                            : Constant
Bit rate                                 : 192 Kbps

Inny przykład:

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

Kolejny wynik:

Bit rate                                 : 192 Kbps

Uzyskaj dokładnie bitrate audio przez mediainfo w bps:

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

lub w Kbps:

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

Możesz po prostu określić, --Output=JSONczy dane wyjściowe mają być sformatowane jako JSON. Jest to przydatne, jeśli korzystasz z mediainfoinnej aplikacji.
Chris

26

Zainstaluj pakiet mp3info

sudo apt-get install mp3info

Aby znaleźć bitrate użyj

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

poda potrzebne informacje, posiada również inne przydatne funkcje, man mp3infoaby uzyskać więcej informacji


1
mp3info nie obsługuje tagowania ID3v2.
Ian

1
@Ian: choć to prawda, nie ma znaczenia to pytanie lub odpowiedź.
Johann

1
Jeśli jesteś ciekawy samej przepływności, to tak - nie ma znaczenia. Jeśli znalazłeś tę odpowiedź, ponieważ pracujesz nad skryptem, który wymaga bitrate oprócz innych pól z twoich plików mp3 (niektóre z nich mają tylko tagi ID3v2), to ta informacja zapobiegnie wpadnięciu w ślepy zaułek mp3info- a program, który nie zawsze wyodrębnia informacje z plików mp3.
Ian

8

Możesz zainstalować pakiet libimage-exiftool-perl:

sudo apt-get install libimage-exiftool-perl

Następnie uruchomić:

exiftool -AudioBitrate GoldLion.mp3

Wyprowadzi coś takiego:

Audio Bitrate : 192 kbps

Fajne! Zapewnia to wspaniałe meta informacje o pliku.
devav2

Tak, ale nie identyfikuje VBR. Pomocna w tym poniżej odpowiedź Buzz-Dee na temat MediaInfo.
jamadagni

4

Jak dotąd najlepszych informacji udziela ffprobe (część ffmpegpakietu). mpg123 jest również ładnym, ale trudnym do grep wyjściem, i prawdopodobnie dlatego prosiłeś o coś innego.

$ 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

W celu profesjonalnego wykorzystania wykonaj następujące czynności:

# 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"
        }
    }
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.