컨테이너 ISO base media

MP4 / MOV

내 iPhone이 여는 형식인데, 그래서 그중 하나가 안 열릴 때 더 이상하게 느껴진다.

한줄 요약

MP4와 MOV는 Apple이 자기 시스템을 설계할 때 기준으로 삼은 컨테이너라서, 이 형식의 파일이 재생 안 되는 건 포장 방식 때문인 경우가 거의 없습니다. 그 안의 무언가 — 10비트 H.264 스트림, DTS나 TrueHD 오디오, 구형 칩에서의 AV1 — 가 기기가 디코딩하지 못하는 코덱이고, 그 탓을 컨테이너가 대신 뒤집어쓰는 것뿐입니다.

2026년 7월 30일

별도 앱 없이 열리는지

iPhone · iPad 열림
Mac 열림
FoxDL 열림

기본 지원은 컨테이너뿐 아니라 Apple이 디코더를 제공하는 코덱에도 해당됩니다. 둘 다 필요합니다. 하드웨어가 한 번도 들어본 적 없는 스트림을 담은, 완전히 정상적인 MP4라도 열리기는 하지만 검은 화면만 나오거나 소리 없이 재생되며, 아무런 유용한 이유도 알려주지 않습니다.

핵심 정보

정식 명칭 MPEG-4 Part 14, 그리고 QuickTime File Format
종류 컨테이너 — 설계는 같고 이름만 둘
확장자 .mp4, .m4v, .mov, .m4a(오디오 전용)
공개 MOV는 1991년 Apple, MP4는 2001년에 이를 바탕으로 파생됨
항상 재생되는 영상 H.264 High 프로파일 이하, 8비트; 2015년 이후 모든 기기의 HEVC
자주 안 되는 영상 H.264 High 10(10비트), MPEG-4 Part 2(DivX/XviD), 2023년 이전 하드웨어의 AV1
항상 재생되는 오디오 AAC, ALAC, MP3, PCM
자주 안 되는 오디오 MP4 안의 DTS, DTS-HD, TrueHD, Vorbis, Opus
자막 폐쇄자막과 타임드 텍스트 형식 하나뿐 — MKV가 담을 수 있는 범위와는 비교가 안 됨

이름은 둘, 형식은 하나

MOV가 먼저였습니다. Apple이 1991년에 QuickTime을 내놓았고, 그 파일 구조가 워낙 잘 만들어져 있어서 MPEG 그룹이 MPEG-4용 컨테이너가 필요해졌을 때 이를 그대로 가져다 표준화했습니다. 그래서 MP4와 MOV는 구조적으로 거의 같은 것입니다 — 미디어 트랙을 기술하는 메타데이터 상자들이죠 — 그리고 대개 하나를 다른 이름으로 바꿔도 그대로 잘 작동하는 이유이기도 합니다.

실질적인 차이는 각각이 담을 수 있도록 *허용된* 것이 무엇이냐입니다. MOV는 Apple 소유이다 보니 QuickTime이 지원한 적 있는 건 뭐든 담을 수 있습니다 — ProRes나, 어떤 휴대폰도 디코딩하지 못할 코덱까지 포함해서요. MP4는 더 엄격하고 이식성 높은 표준입니다. 둘 다 자막 여덟 개 언어와 더빙 오디오 트랙을 함께 담도록 설계되지 않았는데, 이 빈틈을 채운 게 바로 Matroska입니다.

Apple 기기라면 어디서든 열리는 형식이다 보니, 거의 모든 변환의 최종 목적지 역시 이것입니다. "MP4로 변환"이라는 말은 사실 "iOS가 받아줄 상자에 이걸 담는다"는 말의 줄임말입니다.

그런데 왜 이건 재생이 안 될까

파일을 여는 데는 두 가지가 필요한데, 컨테이너에 관한 건 그중 첫 번째뿐이기 때문입니다. 시스템은 상자를 읽고 트랙을 찾은 다음, 자신의 디코더에게 그 트랙을 화면과 소리로 바꿔달라고 요청합니다. 디코더가 없다면 그 지점까지는 이미 성공한 것이나 다름없죠 — 그래서 실패 양상이 이상해 보이는 것입니다. 파일은 열립니다. 재생 시간도 표시됩니다. 탐색 바도 있습니다. 그런데 볼 게 없습니다.

증상을 보면 어느 쪽이 문제인지 알 수 있습니다.

  • 소리는 나는데 화면이 없다 — 영상 코덱이 지원되지 않는 것입니다. Apple 하드웨어에서 흔한 범인은 애니메이션 릴리스에 흔히 쓰이는, 종종 *Hi10P*라고 표기되는 10비트 H.264입니다. 하드웨어 H.264 디코더는 8비트만 처리하고, 시스템 플레이어에는 소프트웨어 대체 경로가 없습니다.
  • 화면은 나오는데 소리가 없다 — 오디오 코덱이 지원되지 않는 것입니다. DTS와 TrueHD는 디스크에서 리핑한 파일이라면 어디서든 마주칠 수 있습니다.
  • 둘 다 안 되고 오류만 뜬다 — 대개 파일이 손상됐거나 잘렸거나, 혹은 인덱스가 끝부분에 있는데 그 부분이 아직 도착하지 않은 MP4입니다.
  • 둘 다 되긴 하는데 버벅인다 — 지원이 안 되는 게 아니라, 비트레이트나 해상도가 그 칩이 감당하고 싶은 수준을 넘어선 것뿐입니다.

자체 디코더를 가진 플레이어는 이 모든 걸 우회합니다 — 시스템에 아무것도 묻지 않으니까요. 10비트 H.264와 DTS를 소프트웨어로 직접 디코딩해서 완성된 프레임을 화면에 그냥 건네줍니다.

이럴 때 할 수 있는 일

  1. 실제로 안에 뭐가 들었는지 확인하기

    뭐든 변환하기 전에 파일의 스트림부터 살펴보세요. 영상이 10비트 H.264이고 오디오가 DTS라면, 정확히 무엇을 바꿔야 하는지 알 수 있습니다 — 그리고 대개는 오디오만 바꾸면 되는데, 이건 한 시간이 아니라 2초짜리 작업입니다.

  2. 실패하는 스트림만 재인코딩하기

    오디오 트랙이 DTS라는 이유로 파일 전체를 변환하는 건 한 시간을 낭비하고 화질까지 괜히 떨어뜨리는 일입니다. 오디오 트랙만 교체하면 영상은 비트 단위로 그대로 남습니다.

  3. 소프트웨어로 디코딩하는 플레이어로 재생하기

    변환할 것도, 알아낼 것도 없습니다 — 자체 디코딩 스택을 가진 플레이어는 10비트 H.264, DTS, TrueHD를 곧바로 엽니다. FoxDL이 하는 방식이 이것입니다 — MKV를 여는 것과 같은 이유로, Apple 플레이어가 열지 못하는 MP4도 그대로 열립니다.

형식 문제처럼 보이지만 아닌 두 가지

컴퓨터에서는 잘 재생되는데 휴대폰에서 버벅이는 파일

데스크톱 CPU는 휴대폰이 하드웨어 디코더에 맡기려던 작업을 그냥 무식하게 처리해 버립니다. 파일에는 아무 문제가 없습니다 — 같은 파일이라도 비트레이트가 낮았다면 멀쩡했을 것입니다.

웹에서 내려받은 파일이 탐색(seek)이 안 됨

MP4는 모든 게 어디 있는지 알려주는 인덱스를 갖고 있습니다. 이게 파일 맨 끝에 기록되어 있으면, 플레이어는 어디로든 이동하기 전에 파일 전체를 다 갖고 있어야 합니다. 이 인덱스를 앞쪽으로 옮기는 것 — 흔히 *faststart*라고 부르는 작업 — 은 변환이 아니라 몇 킬로바이트만 다시 쓰는 작업입니다.

자세히 보기 iPhone이 한 동영상은 열고 다음 파일은 거부하는 이유 컨테이너와 코덱, 그리고 iOS가 열기를 거부하는 파일을 재생하는 세 가지 방법.

이 형식에 관한 질문

관련 형식

이제 라이브러리 하나로 다 모을 수 있습니다.

무료로 다운로드할 수 있습니다. 계정도, 가입도, 어딘가에 넘겨줄 정보도 필요 없습니다.

다운로드 App Store