블로그로
tutorial 2026-06-14

브라우저에서 MOV를 MP4로 변환 (Handbrake 설치 없음, 2026)

브라우저에서 MOV를 MP4로 변환 (Handbrake 설치 없음)

iPhone에서 무언가를 촬영하고, 노트북으로 AirDrop했으며, 이제 Slack 메시지, 이메일 또는 Notion 페이지에 첨부해야 합니다 —— 그런데 파일이 재생을 거부합니다. Apple 카메라가 생성하는 .mov 확장자는 완벽하게 괜찮은 비디오 형식이지만 Apple 생태계 외부의 호환성은 패치가 있습니다: Windows Media Player, 대부분의 엔터프라이즈 이메일 클라이언트, 여러 소셜 플랫폼, 그리고 레거시 소프트웨어의 긴 꼬리는 그것을 열기를 거부하거나 비디오 없이 오디오를 렌더링합니다.

이 가이드는 MOV와 MP4가 실제로는 매우 비슷하지만 왜 그렇게 다른지, 개인 영상을 업로드하지 않고 안전하게 둘 사이를 변환하는 방법, 그리고 언제 변환할 가치가 있는지를 설명합니다. **Ai2Done의 MOV에서 MP4 변환기**와 macOS, Windows, 명령줄 대안을 다룰 것입니다.

TL;DR

  • MOV와 MP4는 내부에서 거의 동일 —— 둘 다 H.264 비디오와 AAC 오디오를 감싸는 컨테이너 형식입니다.
  • Ai2Done의 변환기몇 초 만에 MOV를 MP4로 변환 —— 무손실 리먹스이므로 품질이 소스와 바이트 동일합니다.
  • iPhone 영상의 99%에 대해 재인코딩 필요 없음(이미 MOV 컨테이너 내부에 H.264 또는 HEVC) —— 변환은 GB당 ~1초가 걸립니다.
  • 오래된 Windows 하드웨어에서 재생되지 않는 HEVC MOV의 경우 실제로 H.264로 재인코딩해야 할 수 있습니다 —— 더 느리지만 더 호환됩니다.
  • 프라이버시가 중요: 가족 비디오에는 얼굴, 위치, 타임스탬프가 포함됩니다; 로컬에서 변환하십시오.

이것이 보이는 것보다 어려운 이유

MOV와 MP4가 "거의 동일"하다면 왜 변환이 존재합니까?

정직한 답: MP4(ISO Base Media File Format)와 MOV(Apple QuickTime)는 문자 그대로 같은 소스에서 진화했습니다. ISO가 2001년에 MP4를 표준화했을 때 사양은 Apple의 QuickTime 컨테이너 형식을 기반으로 했습니다. 두 파일 모두 같은 방식으로 구조화된 moov(메타데이터)와 mdat(원시 비디오/오디오 데이터) 아톰을 포함합니다. 현대 MP4 플레이어는 보통 MOV 파일을 직접 읽을 수 있고 그 반대도 마찬가지입니다.

실제로 잘못되는 것은 컨테이너 호환성이 아니라 코덱 호환성입니다:

  • HEVC(H.265)를 사용하는 2017년 이후 iPhone의 .mov는 Microsoft Store의 유료 확장 없이는 Windows에 HEVC 디코더가 없기 때문에 오래된 Windows Media Player 버전에서 재생되지 않습니다.
  • 오래된 Sorenson 코덱을 사용하는 2010년 iPhone의 .mov는 코덱이 버려졌기 때문에 대부분의 현대 기기에서 재생되지 않습니다.
  • 일부 소셜 미디어 업로더(이전 버전의 Twitter, 특정 Slack 클라이언트, 레거시 CMS 플러그인)는 특별히 파일 확장자를 확인하고 .mp4라고 명명되지 않은 모든 것을 거부합니다.

실제로 필요한 변환은 거의 항상: 비디오를 재인코딩하지 않고 컨테이너를 MOV에서 MP4로 변경입니다. 이것이 FFmpeg이 "리먹싱"이라고 부르는 것입니다 —— 무손실이고, 빠르며, MP4가 재생되는 어디서나 재생되는 파일을 생성합니다.

방법 1: Ai2Done MOV에서 MP4(브라우저 측, 무손실 리먹스)

**Ai2Done MOV에서 MP4 변환기**는 FFmpeg.wasm을 사용하여 브라우저에서 이를 수행합니다:

  1. 어떤 현대 브라우저에서든 /tools/mov_to_mp4를 엽니다.
  2. MOV 파일을 업로드 영역으로 드래그하십시오. 몇 GB까지의 파일이 잘 작동합니다; 도구가 브라우저의 RAM에서 처리합니다.
  3. 도구가 감지합니다 비디오가 H.264를 사용하는지(무손실 리먹스됨) 또는 HEVC/Sorenson/기타(재인코딩 제공).
  4. H.264 MOV(iPhone 6s 이하의 일반적인 것, 또는 설정 → 카메라에서 "가장 호환"으로 설정된 iPhone)의 경우: 변환을 클릭하여 소스 GB당 약 1초에 MP4를 받습니다. 품질 손실 없음, 파일 크기 동일.
  5. HEVC MOV(고효율 모드에서 촬영하는 iPhone 7+의 기본값)의 경우: 도구가 MP4 내부에서 HEVC를 유지할지(더 빠름, 더 작음, 호환성 제한) 또는 H.264로 재인코딩할지(더 느림, 약간 더 큼, 어디서나 재생) 묻습니다. 비디오를 보내는 곳에 따라 선택하십시오.

모든 것이 브라우저 탭에서 실행됩니다. MOV 파일은 우리 것을 포함한 어떤 서버에도 업로드되지 않습니다.

알아야 할 한 가지: 무손실 리먹스는 본질적으로 즉각적입니다. 도구가 파일에 몇 분이 걸린다면 호환성을 위한 올바른 선택이지만 ~20-50× 느린 재인코딩을 선택한 것입니다.

방법 2: macOS QuickTime(내장, 원버튼 내보내기)

Mac이 있고 한두 파일만 변환해야 하는 경우 QuickTime Player가 아무것도 설치하지 않고 무료로 이를 수행합니다:

  1. QuickTime Player(macOS 기본)에서 MOV를 엽니다.
  2. 파일 → 다른 이름으로 내보내기 → 1080p(또는 소스와 일치하는 해상도).
  3. 저장 —— 출력은 기본적으로 .mov이지만 내부에 H.264 인코딩이 있으므로 저장 후 확장자를 .mp4로 이름 변경하면 됩니다.

주의: 이것은 비디오를 재인코딩하여 시간이 걸리고(대략 실시간 재생 지속 시간) 약간의 품질을 잃습니다. 품질이 그다지 중요하지 않은 빠른 공유의 경우 괜찮습니다. 아카이브 품질 변환의 경우 대신 브라우저 도구(무손실 리먹스)를 사용하십시오.

방법 3: 명령줄의 FFmpeg(터미널에 익숙한 사람용)

이미 FFmpeg이 설치되어 있는 개발자의 경우:

# 무손실 리먹스(가장 빠름, 품질 손실 없음)
ffmpeg -i input.mov -c:v copy -c:a copy output.mp4

# H.264로 재인코딩(호환성, 더 느림)
ffmpeg -i input.mov -c:v libx264 -crf 18 -preset slow -c:a aac -b:a 192k output.mp4

첫 번째 명령은 모든 온라인 "MOV에서 MP4 변환기"가 리먹싱할 때 내부에서 하는 것입니다. 두 번째는 호환성을 위해 재인코딩할 때 그들이 하는 것입니다. CRF 18은 시각적으로 무손실입니다; 아카이브 품질을 위해 16으로 낮추거나 허용 가능한 품질로 더 작은 파일을 위해 23으로 올립니다.

이것은 스크립팅, 반복 변환(밤마다 소스 영상 폴더를 처리하는 Makefile)에 대한 올바른 답입니다. "슬라이드 데크에 드롭할 iPhone 클립 하나가 있습니다"에는 과한 일입니다.

브라우저 변환기를 어떻게 빌드했는지(기술적 심층 분석)

Ai2Done MOV에서 MP4 도구FFmpeg.wasm 0.12 —— Emscripten으로 WebAssembly로 컴파일된 정식 FFmpeg 코드베이스 —— 에 빌드되었습니다. 번들은 ~25 MB(첫 방문 시 lazy-loaded, 그런 다음 캐시됨)이며 브라우저 탭 내에서 전체 FFmpeg CLI를 노출합니다.

흥미로운 엔지니어링:

  • 인메모리 가상 파일 시스템. 브라우저 코드는 파일 시스템에 쓸 수 없으므로 FFmpeg.wasm은 Emscripten 제공 인메모리 FS에서 작동합니다. 업로드된 파일을 /input.mov로 파이프하고, 동등한 CLI args로 FFmpeg을 실행하고, /output.mp4를 Blob 다운로드로 브라우저에 다시 스트리밍합니다.
  • 코덱 감지가 클라이언트 측에서 발생합니다. 변환을 큐에 넣기 전에 MOV의 처음 ~50 KB를 읽고 ftypmoov 아톰을 파싱하여 내부에 어떤 비디오 코덱이 있는지 식별합니다. 이렇게 하면 커밋하기 전에 "무손실 리먹스 가능" 또는 "재인코딩 필요"를 알릴 수 있습니다.
  • 스트리밍 다운로드. 100 MB 이상의 출력 파일은 전체 출력이 RAM에 맞지 않아도 되도록 Chrome/Edge의 File System Access API를 통해 스트리밍됩니다. Firefox/Safari에서는 단일 blob 다운로드로 폴백하며 실용적 파일 크기를 ~1-2 GB로 제한합니다.
  • SharedArrayBuffer + 교차 원본 격리. FFmpeg.wasm은 스레딩에 Web Worker를 사용하며 페이지가 교차 원본 격리되어야 합니다. 멀티 스레드 빌드(~3× 더 빠름)가 작동하도록 올바른 Cross-Origin-Opener-PolicyCross-Origin-Embedder-Policy 헤더로 페이지를 제공합니다.

백엔드 서비스 대신 브라우저 측인 이유? 두 가지 이유. 첫째, 프라이버시 —— 가족 비디오, 직장 회의 녹화, 개인 이벤트는 다른 컨테이너 래퍼를 얻기 위해 제3자 서버를 횡단할 필요가 없어야 합니다. 둘째, 확장성은 무료 —— 모든 사용자의 CPU가 자신의 변환을 수행하므로 CPU 시간에 지불하지 않으며 1000명의 다른 동시 사용자와 느린 공유 워커를 공유하지 않습니다.

FAQ

Q: MOV를 MP4로 변환하면 품질이 손실됩니까? A: 비디오가 이미 MOV 내부에 H.264인 경우(가장 호환으로 설정된 iPhone의 기본값) 아닙니다. 변환은 무손실 리먹스입니다 —— 실제 픽셀 데이터는 입력과 출력 간에 바이트 동일합니다. 비디오가 HEVC이고 호환성을 위해 H.264로 재인코딩하기로 선택하면 약간의 품질을 잃지만 CRF 18에서 일반 화면에서 시각적으로 구별할 수 없습니다.

Q: 내 MOV는 10 GB입니다. 브라우저가 처리할 수 있습니까? A: File System Access API가 있는 Chrome / Edge에서는 예 —— 전체를 RAM에 로드하지 않고 입력과 출력을 스트리밍합니다. Firefox / Safari에서는 출력 blob을 메모리에 맞춰야 하기 때문에 실용적 한도는 ~2 GB입니다. Firefox의 거대한 파일의 경우 로컬에 FFmpeg을 설치하고(한 번의 brew install ffmpeg 또는 동등한 것) CLI를 직접 실행하십시오.

Q: 변환된 MP4가 원본 프레임 레이트 / 해상도 / 비트레이트를 유지합니까? A: 예 —— 무손실 리먹스는 모든 것을 정확히 보존합니다. MP4는 소스 MOV와 동일한 해상도, 프레임 레이트, 비트레이트, 색상 프로파일로 재생됩니다.

Q: 내 iPhone은 "ProRes"를 녹화합니다 —— 도구가 이를 처리합니까? A: ProRes는 일반적이지 않으며(특정 녹화 모드의 iPhone 13 Pro 이후에만) 모든 브라우저가 디코딩할 수 있는 것은 아닙니다. ProRes MOV를 허용하지만 원시 ProRes 파일이 거대하기 때문에(~4K에서 30초당 1 GB) 출력은 재인코딩이 필요합니다 —— 일반적으로 H.264 또는 HEVC로 —— 그리고 대부분의 소비자 소프트웨어에서 재생할 수 없습니다.

Q: 내 iPhone 영상이 "MOV"라고 말하지만 내부 코덱이 H.264인 이유는 무엇입니까? A: Apple은 MP4보다 앞서고 몇 가지 독점 메타데이터 아톰(Live Photo 참조, 깊이 맵, ProRes RAW)을 지원하기 때문에 MOV를 기본 컨테이너로 사용합니다. 내부의 비디오 코덱은 보통 MP4가 지원하는 동일한 H.264 또는 HEVC이며, 이것이 정확히 무손실 리먹스가 잘 작동하는 이유입니다.

Q: MOV 파일 폴더를 일괄 변환할 수 있습니까? A: 예 —— 여러 MOV를 업로드 영역에 드래그하고 변환을 클릭하면 모든 MP4와 함께 ZIP을 다시 받습니다. 각 파일은 자체 Web Worker에서 처리되므로 멀티 코어 머신이 병렬로 처리합니다.

지금 시도

브라우저에서 완전히 몇 초 만에 MOV 파일을 MP4로 변환하십시오:

MOV에서 MP4 변환기 열기 →

파일을 드롭하고 변환을 클릭하십시오. 가능한 경우 무손실, 필요한 경우 재인코딩. 업로드 없음, 가입 없음, 워터마크 없음.

관련 읽기


최종 업데이트 2026-06-14. MOV에서 MP4 변환기는 FFmpeg.wasm을 사용하여 브라우저에서 100% 실행됩니다 —— 비디오는 기기를 떠나지 않습니다. 처리하는 파일을 절대 수집, 로깅 또는 분석하지 않습니다.