paper&honey

직접 실험·검증한 가이드

작성 paper&honey 운영자 게시 수정

아이폰 음성메모(M4A)가 다른 기기에서 안 열리는 이유

아이폰 음성메모로 녹음한 m4a 파일이 어떤 기기에선 멀쩡히 재생되고 어떤 기기에선 먹통일 때가 있습니다. 확장자를 보면 분명 m4a라고 적혀 있는데, 왜 어떤 기기에서는 열리고 어떤 기기에서는 열리지 않을까요. 이 글은 M4A라는 파일이 실제로 어떤 구조로 이루어져 있는지부터 짚어보고, 그 구조 때문에 생기는 호환성 문제를 설명합니다.

M4A 안에는 정확히 무엇이 들어 있을까요

M4A는 그 자체가 소리를 저장하는 방식이 아니라, 소리를 담는 상자의 이름에 가깝습니다. 정확히는 MPEG-4라는 규격의 상자(컨테이너) 안에, AAC라는 방식으로 압축된 오디오 데이터(코덱)를 넣어둔 형태입니다. 상자와 내용물을 나눠서 생각하면 이해가 쉬운데, 상자는 파일을 어떻게 나누고 어디에 어떤 정보가 있는지를 정리한 목차 역할을 하고, 그 안의 오디오 데이터는 실제 소리를 어떤 수학적 방식으로 압축했는지를 정하는 부분입니다. 재생 프로그램이 파일을 열려면 상자를 해석할 줄 알아야 하고, 동시에 그 안의 오디오를 압축 해제할 줄도 알아야 합니다. 둘 중 하나라도 지원하지 않으면 파일을 읽지 못합니다.

같은 .m4a인데 속이 다르다 — ffprobe로 열어보면

여기서 "어떤 m4a는 되고 어떤 m4a는 안 되는" 진짜 이유가 나옵니다. .m4a라는 상자 안에 들어가는 코덱이 항상 AAC인 것은 아니거든요. 확인을 위해 같은 소리를 두 가지 코덱으로 각각 .m4a에 담고, 파일 속을 읽어주는 도구 ffprobe로 실제 내용물을 들여다봤습니다.

$ ffprobe voice_aac.m4a
  codec_name : aac    (AAC, Advanced Audio Coding)
  format     : mov,mp4,m4a,3gp,3g2,mj2      크기 15KB

$ ffprobe alac.m4a
  codec_name : alac   (ALAC, Apple Lossless Audio Codec)
  format     : mov,mp4,m4a,3gp,3g2,mj2      크기 168KB

둘 다 확장자는 .m4a, 상자(컨테이너) 이름도 mov,mp4,m4a…로 똑같습니다. 그런데 속에 든 코덱은 하나는 AAC, 다른 하나는 ALAC(애플 무손실)로 완전히 다릅니다. 같은 소리인데 무손실 쪽 파일이 11배나 큰 것도 눈에 띕니다 — 손실 압축(AAC 15KB)과 무손실(ALAC 168KB)의 차이가 이렇게 벌어집니다. 핵심은 이겁니다 — .m4a라는 라벨은 상자 이름일 뿐, 안에 든 코덱이 뭔지 알려주지 않습니다. 그래서 AAC가 든 m4a는 멀쩡히 재생하는 프로그램도 ALAC이 든 m4a는 코덱을 몰라 열지 못할 수 있습니다. 재생 여부가 확장자가 아니라 "속 코덱을 그 프로그램이 아느냐"에 달렸기 때문에, 같은 .m4a인데도 되고 안 되고가 갈립니다.

아이폰은 왜 M4A를 기본값으로 쓸까요

M4A는 애플이 만든 독자 규격이 아니라 업계 표준인 MPEG-4와 AAC를 조합한 형식이지만, 아이폰·맥·페이스타임처럼 애플 생태계 안에서 오랫동안 기본 녹음·재생 포맷으로 자리 잡았습니다. 음성메모 앱으로 녹음하면 별다른 설정 없이도 M4A로 저장되고, 애플 기기 사이에서는 에어드롭이나 아이클라우드로 주고받아도 아무 문제 없이 재생됩니다. 문제는 이 파일이 애플 생태계 바깥, 이를테면 오래된 안드로이드 기기나 특정 윈도우 프로그램, 일부 웹 서비스로 넘어갈 때 생깁니다. 그런 환경 중 일부는 AAC 코덱을 해석하는 기능을 아예 갖고 있지 않거나, MPEG-4 상자 구조를 다른 방식으로 처리해 오류를 냅니다.

확장자만 바꿔서는 상자 속 내용물이 그대로입니다

파일 이름 끝의 m4a를 mp3로 고쳐 쓰고 싶은 유혹이 들 수 있는데, 이건 상자 겉면에 붙은 라벨만 바꾸는 것과 같습니다. 확장자는 운영체제에게 "이 파일을 이런 방식으로 열어라"라고 알려주는 힌트일 뿐, 파일 내부의 바이트 배열을 실제로 바꾸지는 않습니다. 라벨만 mp3로 바뀐 파일을 프로그램이 열어보면, 안에는 여전히 MPEG-4 상자 구조와 AAC 코덱 데이터가 들어 있습니다. 프로그램은 mp3 형식을 기대하고 상자를 읽으려다 구조가 맞지 않아 오류를 내거나, 아예 소리가 나지 않는 파일을 만들어냅니다. 진짜로 형식을 바꾸려면 상자를 새로 짜고 그 안의 오디오 데이터도 다른 압축 방식으로 다시 만드는 과정, 즉 재인코딩이 필요합니다.

그럼 MP3로 다시 인코딩하면 다 해결될까요

MP3는 AAC보다 먼저 나온 오래된 표준이라, 그만큼 오랜 세월 다양한 기기와 프로그램에 기본 지원 포맷으로 들어가 있습니다. 그래서 호환성만 놓고 보면 지금도 가장 무난한 선택지에 가깝습니다. 다만 AAC도 MP3도 둘 다 원본 소리 데이터 일부를 사람 귀에 덜 중요한 정보라고 판단해 버리는 손실 압축 방식입니다. M4A(AAC)를 MP3로 바꾸는 과정은 이미 한 번 걸러진 데이터를 다시 한번 압축하는 것이라, 이 과정을 거친다고 원본 녹음보다 음질이 좋아지는 일은 일어나지 않습니다. 형식을 바꾸는 목적은 어디까지나 호환성이지 음질 개선이 아니라는 점을 알아두면 좋습니다.

kbps를 고를 때 실제로 정해지는 것

변환할 때 마주치는 kbps(킬로비트 퍼 세크)는 1초 분량의 소리를 표현하는 데 얼마만큼의 데이터를 쓸지를 뜻합니다. 숫자가 클수록 원본 소리에 더 가깝게 담아내지만 파일 용량도 함께 커지고, 숫자가 작을수록 용량은 줄어드는 대신 세밀한 소리 정보가 더 많이 생략됩니다. 회의 녹음이나 음성메모처럼 말소리가 중심인 파일이라면 128~192kbps 정도로도 알아듣는 데 무리가 없습니다. 반대로 악기 소리나 노래처럼 음역이 넓은 음악 파일이라면 320kbps를 골라야 소리가 뭉개지는 느낌을 줄일 수 있습니다.

M4A를 MP3로 바꿔야 한다면

paper&honey의 M4A MP3 변환 도구를 쓰면 브라우저 안에서 이 재인코딩 과정을 직접 눈으로 확인하며 진행할 수 있습니다. 파일은 한 번에 하나씩 올려 처리하며, 음성인지 음악인지에 맞춰 음질을 128·192·320kbps 중에서 고를 수 있고, mp4나 mov 같은 동영상 파일을 올리면 화면은 버리고 소리만 뽑아 MP3로 만들 수도 있습니다. 변환은 서버로 파일을 보내지 않고 지금 사용 중인 브라우저 안에서 계산이 끝나므로, 녹음 내용을 다른 곳으로 넘기고 싶지 않을 때도 편하게 쓸 수 있습니다. 다만 브라우저 안에서 변환 엔진 자체를 처음 한 번은 내려받아야 해서, 첫 실행은 이후보다 조금 시간이 걸립니다. 변환한 MP3에서 필요한 구간만 잘라 쓰고 싶다면 MP3 자르기 도구로 이어서 다듬을 수도 있습니다.

이런 것도 자주 묻습니다

Q. M4A와 AAC는 같은 말인가요? 엄밀히는 다릅니다. AAC는 오디오를 압축하는 코덱(내용물)의 이름이고, M4A는 그 AAC 데이터를 담는 MPEG-4 컨테이너(상자)에 붙는 확장자입니다. 같은 AAC 데이터라도 어떤 상자에 담기느냐에 따라 mp4나 m4v 같은 다른 확장자로 불리기도 합니다.

Q. M4A를 MP3로 바꾸면 용량이 더 커질 수도 있나요? 고른 kbps가 원본 M4A의 비트레이트보다 높으면 결과 파일 용량이 오히려 커질 수 있습니다. 다만 이 경우에도 실제 음질이 원본보다 좋아지는 것은 아니고, 이미 생략된 정보를 되살릴 수는 없습니다. 용량과 무관하게 원본에 가장 가까운 결과를 원한다면 원본 M4A의 비트레이트와 비슷하거나 조금 낮은 값을 고르는 편이 합리적입니다.

Q. 동영상에서 뽑아낸 소리도 같은 원리로 변환되나요? 네. mp4나 mov 같은 동영상 파일도 내부적으로 영상 코덱과 오디오 코덱이 각자의 컨테이너 안에 함께 들어 있는 구조입니다. 소리만 추출한다는 것은 그 컨테이너에서 오디오 트랙만 골라내 별도의 오디오 파일로 다시 감싸는 과정이라, 앞서 설명한 컨테이너·코덱 구분이 여기서도 똑같이 통합니다.

동영상 쪽에서는 이 구분이 더 극적으로 드러납니다. 아이폰 MOV를 MP4로 바꿀 때 안에 든 코덱만 확인하면 재인코딩 없이 상자만 갈아 끼워 끝나는 경우가 많은데, 그 차이를 실제로 재본 기록은 아이폰 MOV를 MP4로 가이드에 있습니다. "확장자가 속을 알려주지 않는다"는 이 원리는 사진에서도 똑같이 반복됩니다. 아이폰 HEIC 사진의 정체를 파일 시그니처까지 열어본 이야기는 HEIC 호환 실측 가이드에 정리했습니다.