[버그잡기] iMovie : Opus 코덱 지원

iMovie Opus 코덱 지원

증상

mp4 파일 하나를 iMovie로 가져왔는데, 그 순간부터 앱이 완전히 응답을 멈췄습니다. 이상한 건, Finder에서 스페이스바로 미리보기(Quick Look)를 하면 그 영상은 멀쩡하게 재생됩니다.

원인

프로세스를 들여다보니, iMovie가 멈춰있는 지점은 정확히 오디오 트랙을 읽으려는 순간이었습니다. ffprobe로 파일을 뜯어보고 나서야 이유를 알았습니다.

비디오: H.264, 1280x720, 60fps   ← 정상
오디오: Opus, 48kHz, stereo       ← 여기가 문제
컨테이너: MP4 (encoder=Lavf62.3.100)

영상은 문제없는 H.264인데, 오디오가 Opus 코덱이었습니다. Opus 자체는 훌륭한 코덱이지만, macOS의 QuickTime/AVFoundation 계열 앱들은 MP4 내부의 Opus 오디오 트랙을 지원하지 않습니다.

이 파일은 알고 보니 유튜브에서 제가 만든 앱으로 다운로드한 영상이었습니다. 유튜브는 화질/음질을 각각 골라 조합할 수 있도록 영상과 오디오를 애초에 따로 스트리밍합니다.

  • 영상은 대부분 H.264 (호환성 우선) 또는 VP9/AV1 (효율 우선)
  • 오디오는 대부분 Opus (같은 용량 대비 음질이 좋아서)

제가 만든 다운로드 앱은 이 두 스트림을 각각 받아서 mp4 하나로 합치니 그 결과 평범한 mp4인데 애플 계열 앱은 못 읽는 파일이 만들어지는 겁니다.

그럼 미리보기는 왜 될까? Quick Look은 파일을 처음부터 끝까지 순서대로 재생하기만 하면 되니, macOS의 제한적인 Opus 디코딩 지원으로도 버텨냅니다. 반면 iMovie는 임포트할 때 오디오 파형을 그리고, 아무 지점이나 막 점프해서 썸네일을 뽑는 작업을 합니다.

해결 방법

원본 영상은 그대로 두고, 오디오 트랙만 AAC로 바꾼 새 파일을 만들면 됩니다.

ffmpeg -i "원본.mp4" -c:v copy -c:a aac -b:a 192k "원본-fixed.mp4"
  • -c:v copy : 영상은 손대지 않고 그대로 복사
  • -c:a aac : 오디오만 Opus → AAC로 변환

56분짜리 영상 변환에 걸린 시간은 1분 30초입니다.

테스트 환경

  • Apple M3 Pro, 12코어(6P+6E), 36GB
  • macOS 26.5.2
  • iMovie 10.4.4

이 문제의 원인은 순전히 코덱 호환성이었습니다. 혹시 유튜브에서 받은 영상을 iMovie에 넣었다가 앱이 멈춘 적이 있다면,
ffprobe -show_streams 파일명.mp4
오디오 코덱부터 확인해보세요.

Bookmark the permalink.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다