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.