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


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.