ऑडियो फ़ाइल ऐनक की पहचान करने के लिए कमांड लाइन टूल


12

मैं ImageMagick की पहचान कमांड के बराबर एक ऑडियो फ़ाइल ढूंढ रहा हूं ।

उदाहरण के लिए, identifyमैं छवियों के एक समूह के बारे में संक्षिप्त जानकारी प्राप्त कर सकता हूं:

% identify b*
banner1.jpg JPEG 134x614 134x614+0+0 8-bit DirectClass 38.4kb 
banner.jpg[1] JPEG 772x307 772x307+0+0 8-bit DirectClass 37.5kb 
bg2.jpg[2] JPEG 103x1500 103x1500+0+0 8-bit DirectClass 43kb 
bg_control_nav.png[3] PNG 13x39 13x39+0+0 8-bit DirectClass 1.73kb 
bg_direction_nav.png[4] PNG 104x52 104x52+0+0 8-bit DirectClass 3.3kb 

मैं अपनी ऑडियो फ़ाइलों के बारे में इसी तरह की जानकारी प्राप्त करना चाहूंगा।

मेरा अंतिम लक्ष्य मेरी पूरी एमपी 3 लाइब्रेरी के माध्यम से जाने के लिए स्क्रिप्ट बनाना और निचले बिटरेट पर रिप्ड उन लोगों की पहचान करना है और फिर उस डेटा का उपयोग मेरी सीडी को फिर से रिप करने के लिए (या अमेज़ॅन या आईट्यून्स से बेहतर गुणवत्ता वाले संस्करणों को खरीदने के लिए) करना है।

ओएस एक्स / लिनक्स के लिए समाधान विंडोज समाधान के लिए पसंद किया


और एक अन्य: MediaInfo
slhck

Mediainfo बढ़िया है और इसमें कमांड लाइन इंटरफ़ेस है।
मार्क.2377

दिलचस्प है, लेकिन एक GUI ऐप इस ज़रूरत के लिए काम नहीं करता है।
डग हैरिस

जवाबों:


10

OS X पर आप बस इस्तेमाल कर सकते हैं mdlsया mdfind

$ mdls 01\ Kindred.mp3 
kMDItemAlbum                   = "Kindred EP"
kMDItemAudioBitRate            = 320000
kMDItemAudioChannelCount       = 2
kMDItemAudioSampleRate         = 44100
kMDItemAudioTrackNumber        = 1
kMDItemAuthors                 = (
    Burial
)
kMDItemComment                 = "HDB059"
kMDItemContentCreationDate     = 2012-03-19 21:20:59 +0000
kMDItemContentModificationDate = 2012-06-04 16:07:09 +0000
kMDItemContentType             = "public.mp3"
kMDItemContentTypeTree         = (
    "public.mp3",
    "public.audio",
    "public.audiovisual-content",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemDateAdded               = 2012-04-02 19:49:07 +0000
kMDItemDisplayName             = "01 Kindred.mp3"
kMDItemDurationSeconds         = 686.08
kMDItemFSContentChangeDate     = 2012-06-04 16:07:09 +0000
kMDItemFSCreationDate          = 2012-03-19 21:20:59 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = 0
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = 0
kMDItemFSLabel                 = 0
kMDItemFSName                  = "01 Kindred.mp3"
kMDItemFSNodeCount             = 27457838
kMDItemFSOwnerGroupID          = 20
kMDItemFSOwnerUserID           = 501
kMDItemFSSize                  = 27457838
kMDItemFSTypeCode              = ""
kMDItemKind                    = "MP3 audio"
kMDItemLogicalSize             = 27457838
kMDItemMediaTypes              = (
    Sound
)
kMDItemMusicalGenre            = "Dubstep"
kMDItemPhysicalSize            = 27459584
kMDItemRecordingYear           = 2012
kMDItemTitle                   = "Kindred"
kMDItemTotalBitRate            = 320000

mdfind -onlyin ~/Music 'kMDItemFSName==*.mp3&&kMDItemAudioBitRate<=192000'


2
अब तक के सभी उत्तरों के लिए अपवोट्स, लेकिन यह एक चेकमार्क हो जाता है क्योंकि (ए) यह OS X का मूल है और (b) मौजूदा स्पॉटलाइट मेटाडेटा जानकारी का उपयोग करता है और यह mdfind कमांड तेजी से क्रेजी है।
डग हैरिस

दोनों को मिलाकर और घटिया बिट दरों के साथ एल्बम नामों की सूची तैयार करना:mdfind -0 -onlyin ~/Music 'kMDItemFSName==*.mp3&&kMDItemAudioBitRate<=192000'| xargs -0 mdls -name kMDItemAlbum | sort | uniq
डग हैरिस

8

आउटपुट को पार्स करने के लिए, ffprobe -show_format 2>/dev/nullFFmpeg से प्रयास करें ।

OS X पर, आप Homebrew के माध्यम से इसे स्थापित कर सकते हैं brew install ffmpeg

$ ffprobe * .mp3 -show_format 2> / dev / null
[प्रारूप]
फ़ाइल नाम = 02। सल्वाडोरो डाली ।mp3
nb_streams = 2
format_name = एमपी 3
format_long_name = MPEG ऑडियो परत 2/3
start_time = 0.000000
अवधि = 300.254667
आकार = 7206112
bit_rate = 191,999
TAG: शीर्षक = साल्वाडोरो डाली
टैग: कलाकार = Siela
टैग: ट्रैक = 2/10
टैग: एल्बम = डाली
टैग: तिथि = 2005
TAG: शैली = गॉथिक रॉक
टैग: replaygain_album_peak = 1.188815
टैग: replaygain_track_peak = 1.178607
TAG: replaygain_track_gain = -9.00 dB
TAG: replaygain_album_gain = -9.12 dB
टैग: ALBUM_ARTIST = Siela
[/ प्रारूप]

एक स्क्रिप्ट में:

find -iname '*.mp3' | while read -r file; do
    bitrate=$(ffprobe "$file" -show_format 2>/dev/null |
              awk -F"=" '$1 == "bit_rate" {print $2}')
    if (( bitrate <= 128000 )); then
        echo "[$bitrate] $file"
    fi
done

5

संपादित करें: बस एक लिनक्स प्रोग्राम मिला

लिनक्स के तहत, mp3info :

mp3info -p "%Q %L %v %o %r" test.mp3
output:
48000 III 1.000000 joint stereo

मुझे पता है कि आप एक लिनक्स समाधान चाहते हैं; हालाँकि, जब तक आप अपने प्रश्न को कहते हैं, तब तक यह लगता है कि विंडोज समाधान पूरी तरह से बाहर नहीं है ...

विंडोज के तहत, tag.exe काम करेगा।

उदाहरण:

C:\mp3>tag.exe "test.mp3"
Tag - Automatic Tag from filename
Copyright (c) 2002-2003 Case.  Minor additions by Neil Popham, 2004-2007
Version 2.0.52, Compiled 2007-05-04

C:\dl\test.mp3
Format:  MPEG 1 Layer 3, Joint Stereo
Details: 44100 Hz Stereo, 128 kbps, playtime 05:24
Tag:     ID3v2

बस बिटरेट प्राप्त करने के लिए:

C:\mp3>tag.exe "test.mp3" 2>&1 | findstr /i "Details:"
Details: 44100 Hz Stereo, 128 kbps, playtime 05:24

4

एक बहुत ही सरल उपयोगिता है sox
माइन को लिनक्स सिस्टम पर स्थापित किया गया था।

 soxi auidofile.wav 

आउटपुट:

 Input File     : 'Yvette_Audin_F_70_7e.wav154.wav'
 Channels       : 2
 Sample Rate    : 44100
 Precision      : 24-bit
 Duration       : 00:00:10.01 = 441254 samples = 750.432 CDDA sectors
 File Size      : 2.65M
 Bit Rate       : 2.12M
 Sample Encoding: 24-bit Signed Integer PCM

इसके बारे में कुछ बहुत ही उपयोगी था, इसने मुझे स्टीरियो चैनल को मोनो चैनल में बदलने की अनुमति दी। ऑडियो फाइलों के लिए मशीन लर्निंग मॉडल को प्रशिक्षित करने के लिए मुझे इसकी आवश्यकता थी।

संपादित करें: आसान विधि मोनो सिग्नल को 2 चैनल ऑडियो परिवर्तित करना :

 from pydub import AudioSegment  
 song = AudioSegment.from_wav("01.wav")
 song = song.set_channels(1)
 song.export("01.wav", format='wav')

एमपी 3 नहीं बल्कि सभी प्रकार की फाइलें संभालता है !
not2qubit

.mp3 को ऑनलाइन कन्वर्टर्स का उपयोग करके आसानी से .wav में परिवर्तित किया जा सकता है। शायद मतलाब के पास ऐसा करने के लिए कुछ पुस्तकालय हैं। या आपकी खिड़कियों के लिए एक ध्वनि कनवर्टर है। शायद कारखाना प्रारूप ...
प्रियांक पाठक

हाँ, लेकिन यह नहीं है कि ओपी ने क्या मांगा।
Not2qubit

भविष्य की मदद के लिए यहां से चले जाएंगे।
प्रियांक पाठक

1

mp3info को लिनक्स के तहत विकसित किया गया था, लेकिन अधिकांश UN * X वेरिएंट पर काम करना चाहिए। ... MP3Info एक एमपी 3 फ़ाइल के विभिन्न टेचिंक पहलुओं को भी दिखा सकता है जिसमें एक पूर्व-परिभाषित या उपयोगकर्ता-विशिष्ट आउटपुट प्रारूप में खेलने का समय, बिट-दर, नमूना आवृत्ति और अन्य विशेषताओं को शामिल किया गया है।

या

एमपी 3 :: जानकारी - एमपी 3 ऑडियो फ़ाइलों से जानकारी / प्राप्त करें

शायद

  perl -MMP3::Info \
       -e 'print ($_, ": ",MP3::Info->new($_)->bitrate, "\n") for (@ARGV)' *.mp3

(Untested)


1

ffprobe आपका दोस्त है (आप भी एवोकॉन, mplayer का उपयोग कर सकते हैं; वे सभी मीडिया जानकारी वापस कर देते हैं, लेकिन ffprobe बस आपको आवश्यक जानकारी वापस कर देता है)

स्ट्रीम के साथ:

ffprobe http://96.127.183.74:8604/live

रिटर्न

...
Stream #0:0: Audio: aac (HE-AACv2), 44100 Hz, stereo, fltp, 31 kb/s

स्थानीय फ़ाइल के साथ:

ffprobe some_file.mp3 

रिटर्न

...
encoder         : LAME 64bits version 3.99.5
...
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 320 kb/s
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.