오디오 파일 사양을 식별하는 명령 줄 도구


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 

오디오 파일에 대한 비슷한 정보를 얻고 싶습니다.

궁극적 인 목표는 전체 mp3 라이브러리를 통과하고 낮은 비트 전송률로 찢어진 파일을 식별 한 다음 해당 데이터를 사용하여 CD를 다시 추출하거나 Amazon 또는 iTunes에서 더 나은 품질의 버전을 구매하는 스크립트를 만드는 것입니다.

Windows 솔루션보다 선호되는 OS X / Linux 용 솔루션


그리고 다른 하나 : MediaInfo
slhck

Mediainfo 는 훌륭하고 명령 줄 인터페이스를 가지고 있습니다.
Marc.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
지금까지 모든 답변에 대해 찬성 투표를하지만 (a) OS X에 고유하며 (b) 기존 스포트라이트 메타 데이터 정보를 사용하고 mdfind 명령이 매우 빠르기 때문에 확인 표시가 나타납니다.
더그 해리스

하위 표준 비트 전송률을 가진 앨범 이름 목록을 결합하여 생성 :mdfind -0 -onlyin ~/Music 'kMDItemFSName==*.mp3&&kMDItemAudioBitRate<=192000'| xargs -0 mdls -name kMDItemAlbum | sort | uniq
Doug Harris

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 = mp3
format_long_name = MPEG 오디오 층 2/3
start_time = 0.000000
기간 = 300.254667
크기 = 7206112
bit_rate = 191999
TAG : 제목 = 살바 도로 달리
TAG : 아티스트 = 실라
TAG : 트랙 = 2 / 10
TAG : 앨범 = 대리
TAG : 날짜 = 2005
TAG : 장르 = 고딕 락
태그 : replaygain_album_peak = 1.188815
태그 : replaygain_track_peak = 1.178607
TAG : 재생 이득 _ 트랙 _ 이득 = -9.00 dB
태그 : replaygain_album_gain = -9.12 dB
TAG : album_artist = 실라
[/체재]

스크립트에서 :

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

편집 : 방금 Linux 프로그램을 찾았습니다.

Linux에서 mp3info :

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

나는 당신이 리눅스 솔루션을 원한다는 것을 안다. 그러나 귀하의 질문에 따르면 Windows 솔루션이 완전히 나오지 않은 것 같습니다 ...

Windows에서는 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입니다.
Mine은 Linux 시스템에 사전 설치되었습니다.

 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 채널을 모노 채널로 변환 할 수 있다는 것입니다. 오디오 파일에 대한 기계 학습 모델을 훈련시키기 위해 필요했습니다.

편집 : 2 채널 오디오를 모노 신호 로 쉽게 변환하는 방법 :

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

모든 종류의 파일을 처리하지만 mp3 는 처리 하지 않습니다 !
not2qubit

.mp3는 온라인 변환기를 사용하여 .wav로 쉽게 변환 할 수 있습니다. 아마도 matlab에는 그렇게하는 라이브러리가있을 수 있습니다. 또는 창문에 동일한 사운드 변환기가 있습니다. 아마도 공장 형식 ...
Priyank Pathak

네,하지만 OP가 요구 한 것은 아닙니다.
not2qubit

미래의 도움을 위해 여기를 떠날 것입니다.
Priyank Pathak

1

mp3info 는 Linux에서 개발되었지만 대부분의 UN * X 변형에서 작동합니다. ... MP3Info는 재생 시간, 비트 전송률, 샘플링 주파수 및 기타 속성을 포함하여 MP3 파일의 다양한 기술적 측면을 미리 정의 된 또는 사용자 지정 가능 출력 형식으로 표시 할 수도 있습니다.

또는

MP3 :: Info -MP3 오디오 파일에서 정보 조작 / 가져 오기

혹시

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

(견적되지 않은)


1

ffprobe 는 당신의 친구입니다 (또한 avconv, 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.