จะหาบิตเรตของไฟล์ 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
}

เปิดหน้าต่าง Terminal ใหม่ ตอนนี้คุณสามารถเรียกใช้คำสั่งต่อไปนี้:

bitrate song.mp3

1
ว้าว. fileคำสั่งง่าย ๆที่หลอกลวง
devav2

9
ถูกเตือน: หากไฟล์เป็นอัตราบิตผันแปร (VBR) ไฟล์จะรายงานเฉพาะหนึ่งในอัตราบิตจำนวนมากที่มีอยู่ (ฉันคิดว่ามันเป็นอัตราบิตแรกของเฟรม) คำตอบอาจหลอกลวงหากไฟล์ส่วนใหญ่อยู่ในอัตราที่แตกต่างกันมาก หากคุณต้องการทราบอัตราบิตเฉลี่ยดูคำตอบของ apacheuk
Alan De Smet

+1 โอกาสใดก็ตามที่คุณสามารถเพิ่มบทสรุปสั้น ๆ ให้กับคำตอบนี้อธิบายว่ามันทำงานอย่างไร
เสียง

2
ด้วยเหตุผลบางอย่างfileไม่ได้ทำงานกับมากทั้งเพลง MP3 ฉันมีซึ่งจะมีการระบุอย่างถูกต้องโดยและดียิ่งขึ้นโดยexiftool mediainfo
jamadagni

ใช้งานไม่ได้กับไฟล์ส่วนใหญ่ของฉันใน Ubuntu 16.04 ตามที่ระบุไว้ข้างต้นฉันค่อนข้างมั่นใจว่าเนื่องจากไฟล์ไม่เข้าใจไฟล์ VBR อย่างถูกต้อง "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 เป็น bps:

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

หรือเป็น Kbps:

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- เป็น โปรแกรมที่ไม่ได้ดึงข้อมูลจาก mp3s เสมอ
เอียน

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ยังดี แต่เอาท์พุท grep ยากซึ่งอาจเป็นสาเหตุที่คุณถามหาอย่างอื่น

$ 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"
        }
    }
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.