2012-06-07 1 views
2

.m4a 접미사가있는 오디오 파일이 많이 있으며 AAC 또는 Apple Lossless (ALAC) 중 하나로 인코딩됩니다. Apple Lossless로 인코딩 된 오디오 파일 만 선택하고 싶습니다. 이것을 결정할 방법이 있습니까? FFmpeg을 시도했지만 모두 AAC로 인코딩되어 있습니다.오디오 파일이 Apple Lossless (ALAC)로 인코딩되었는지 확인

편집 : 현재 Windows를 사용 중입니다.

+0

어떤 언어를 사용하고 있습니까? – aglassman

+0

특정 언어입니까, 아니면 CLI 기반 Linux 도구를 찾으십니까? – Lee

+0

FFMPEG의 다른 빌드를 사용해 보셨습니까? 정확한 코덱을 인식하지 못하고 놀랐습니다. – Brad

답변

1

는 M4A에 대한 설명이있는 파일입니다 67 페이지 (내가 지금까지 찾을 수있는 가장 좋은)에서 http://iweb.dl.sourceforge.net/project/audiotools/audio%20formats%20reference/2.14/audioformats_2.14_letter.pdf

A typical M4A begins with an 'ftyp' atom indicating its file type... 
10.2.1 the ftyp atom 
[0 31] ftyp Length [32 63] 'ftyp' (0x66747970) 
[64 95] Major Brand [96 127] Major Brand Version 
[128 159] Compatible Brand₁ ... 
The 'Major Brand' and 'Compatible Brand' elds are ASCII strings. 
'Major Brand Version' is an integer. 

처음에는 'ftyp'이 형식이 결정되는 위치 일 것이라고 생각했지만 파일 유형 자체 (이미 m4a로 알려짐)와 같은이 목록으로 판단하면 http://www.ftyps.com/index.html

http://www.ftyps.com/what.html 좀 더 자세한 형식을 설명합니다. ftyp를 구분하지 않는 경우

, 그때 나는 '메이저 브랜드'필드는이 페이지의 FOURCC 년대를 참조 할 수 있다고 생각 : http://wiki.multimedia.cx/index.php?title=QuickTime_container 애플 무손실이 'ALAC'와 AAC 것에 대한 하나는 'mp4a'

아마

애플의 무손실 포맷 오픈 소스 페이지는 FTYPE (위 약간 모순) 'ALAC'이 있음을 나타냅니다 http://alac.macosforge.org/trac/browser/trunk/ALACMagicCookieDescription.txt

지금까지 내가 말할 수있는 ftyp을 다음 4 바이트가 좀 작은 샘플 크기 (항상이다) 'M4A'.

첫 번째 ~ 200 (16 진수) 바이트 정도가되면 AAC 압축을위한 ascii 'mp4a'또는 Apple Lossless의 'alac'가 있습니다. 'alac'은 항상 ~ 30 바이트 간격으로 쌍으로 나타납니다 ('mp4a'는 한 번만).

죄송합니다. 더 구체적으로 말하면 정확한 위치 나 접두사를 찾으면 다시 업데이트하겠습니다. (내 생각 엔 헤더의 앞 부분에 크기가 지정되어 있습니다.)

1

Core Audio로 할 수 있습니다. 같은

뭔가 : 여기

CFStringRef pathToFile; 
CFURLRef inputFileURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, pathToFile, kCFURLPOSIXPathStyle, false); 
ExtAudioFileRef inputFile; 
ExtAudioFileOpenURL(inputFileURL, &inputFile); 

AudioStreamBasicDescription fileDescription; 
UInt32 propertySize = sizeof(fileDescription); 

ExtAudioFileGetProperty(inputFile, 
    kExtAudioFileProperty_FileDataFormat, 
    &propertySize, 
    &fileDescription);  

if(fileDescription.mFormatID == kAudioFormatAppleLossless){ 
    // file is apple lossless 
} 
+0

답변을 주셔서 감사합니다.하지만 Windows에 있습니다. – minhee

0

Mac에서는 원하는 파일을 선택한 다음 마우스 오른쪽 버튼으로 클릭합니다. "정보 입수"를 클릭하고 그것을 클릭하면 선택한 파일에 대한 추가 정보가있는 창이 나타납니다. "Codecs :" "AAC"또는 "Apple Lossless"옆에 말해야합니다. Mac 사용자가 동일한 질문을하는 데 도움이 되었으면합니다. Windows 사용자는 OS에 익숙하지 않더라도 어떤 방식 으로든 가능합니다.)

0

사용하여 시도 http://sourceforge.net/projects/mediainfo/

"Mediainfo를 비디오 및 오디오 파일을위한 가장 관련 기술 및 태그 데이터의 편리한 통합 디스플레이입니다." - 소스 포지 프로젝트 설명

이것은 정보가 표시되는 방법입니다.

General 
Complete name     : C:\Downloads\recit24bit.m4a 
Format       : MPEG-4 
Format profile     : Apple audio with iTunes info 
Codec ID       : M4A 
File size      : 2.62 MiB 
Duration       : 9s 9ms 
Overall bit rate     : 2 441 Kbps 
Track name      : 24 bit recital ALAC Test File 
Performer      : N\A 
Comment       : Test File 

Audio 
ID        : 1 
Format       : ALAC 
Codec ID       : alac 
Codec ID/Info     : Apple Lossless Format 
Duration       : 9s 9ms 
Bit rate mode     : Variable 
Bit rate       : 2 438 Kbps 
Channel(s)      : 2 channels 
Sampling rate     : 22.7 KHz 
Bit depth      : 24 bits 
Stream size      : 2.62 MiB (100%) 
Language       : English 

코덱/인코딩 세부 정보는 오디오 섹션을 확인하십시오.

0

FFmpeg package이있는 경우 ffprobe이 있어야합니다.

ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 file.m4a 
  • -v error : 시작 텍스트를
  • -select_streams a:0을 숨길 수 : 첫 번째 오디오 트랙
  • -show_entries stream=codec_name를 선택 :

    이 시도 부여에만 코덱 종류를 표시를

  • -of default=noprint_wrappers=1:nokey=1 : 추가 서식을 제거하려면

aac 또는 alac 만 인쇄됩니다. 스크립팅에 완벽합니다.

관련 문제