동영상 회전
세로로 찍힌 영상을 가로로 / 거꾸로 찍힌 영상을 바로 세우기 — 90·180도 회전과 좌우/상하 반전.
영상이 외부 서버로 전송되지 않습니다. 모든 처리는 사용자 브라우저 안의 ffmpeg.wasm(WebAssembly)으로만 이루어집니다.
첫 사용 시 영상 처리 엔진(ffmpeg.wasm ~32MB)을 자동으로 다운로드합니다. Wi-Fi 환경 권장 · 다운로드 후엔 브라우저에 캐시되어 다음 방문은 즉시 시작됩니다.
📱 모바일: 720p 이하·1분 이내 영상 권장 — 큰 영상은 데스크톱 Chrome이 안정적입니다.
📱 모바일: 720p 이하·1분 이내 영상 권장 — 큰 영상은 데스크톱 Chrome이 안정적입니다.
↑ 회전 옵션을 바꾸면 미리보기가 즉시 반영됩니다 (시각 시뮬레이션 — 실제 처리는 아래 "회전하기" 버튼)
모바일은 720p 이하 권장 — single-thread WASM은 큰 영상 재인코딩 시 메모리 한계로 실패할 수 있습니다.
대기 중...
[ AdSense 광고 자리 ]
언제 어떤 옵션?
| 상황 | 선택 |
|---|---|
| 아이폰 세로로 찍었는데 PC에서 가로로 보임 | 90° 시계방향 또는 반시계방향 (방향에 따라) |
| 거꾸로 들고 찍은 영상 (천장 영상) | 180° |
| 거울 효과 (좌우 뒤집힌 셀카 보정) | 좌우 반전 |
| 드론·고프로 거꾸로 장착으로 상하 반대 | 상하 반전 (또는 180°) |
관련 도구
왜 회전이 영상 압축처럼 시간이 걸리나요?
회전은 영상의 픽셀 배치를 바꾸는 작업이라 코덱이 디코딩 → 회전 → 다시 인코딩하는 과정이 필요합니다. 영상 메타데이터에 회전 플래그만 추가하는 방법(rotation tag)은 일부 플레이어에서만 인식되고, 카톡·SNS 업로드 시 무시되는 경우가 많아 픽셀을 실제로 회전시키는 방식을 씁니다.
오디오는 어떻게 처리되나요?
오디오는
AAC 128k로 재인코딩됩니다. 무손실 복사(-c:a copy)를 먼저 시도하고 실패 시 AAC로 fallback하는 방식도 가능하지만, .mov 등 일부 컨테이너는 첫 시도가 항상 실패해 모바일에서 메모리를 두 번 쓰게 됩니다. 그래서 처음부터 AAC 재인코딩으로 단순화·안정화했습니다. 128k AAC는 원본과 사실상 구분되지 않는 음질입니다.
왜 멀티 스레드(빠른 처리)는 지원 안 되나요?
GitHub Pages 같은 정적 호스팅은
Cross-Origin-Opener-Policy / Cross-Origin-Embedder-Policy 헤더를 설정할 수 없어 SharedArrayBuffer가 비활성됩니다. 단일 스레드만 동작 — 안전하지만 느립니다(원본 길이의 0.3~1배).
처리 방식·옵션
언제 쓰나
세로로 찍힌 영상휴대폰을 가로로 잡고 찍었는데 영상이 세로로 저장된 경우 — 90·270도 회전으로 즉시 가로 비율 복원.
거꾸로 찍힌 영상휴대폰 거꾸로 잡고 촬영해 영상이 뒤집힌 경우 — 180도 회전으로 정상화. 강의 녹화·CCTV 영상.
좌우 반전 (셀카)셀카 모드는 좌우 반전 저장. 글자가 거울처럼 보일 때 좌우 반전으로 원본 복원.
상하 반전드론·차량 거꾸로 장착 카메라에서 상하 반전된 영상. 상하 반전으로 정상화.
SNS 업로드 준비인스타 릴스(9:16) / 유튜브 쇼츠(9:16) / 일반 영상(16:9) — 비율에 맞춰 90·270도 회전.
강의·발표세미나 강의 녹화가 잘못된 방향으로 저장된 경우, 학생·발표자가 정상 방향으로 시청할 수 있게 보정.
출력 해상도 옵션
회전과 함께 출력 해상도를 고를 수 있습니다 (원본 화면 비율은 항상 그대로 유지 — 변형·잘림 없음):
- 원본 유지 — 해상도 그대로. 데스크톱 권장.
- 1080p (FHD) — 긴 변이 1080을 넘으면 다운스케일.
- 720p (HD) — 기본값. 모바일 권장.
- 480p (SD) — 가장 가벼움. 메모리 부담 최소.
다운스케일은 회전 전에 적용해 메모리를 절감하며(scale=-2:높이), -2로 짝수 정렬해 화면 비율을 보존합니다.
오디오 코덱 재인코딩
회전·반전은 비디오 픽셀을 바꾸는 작업이고, 오디오는 AAC 128k로 재인코딩됩니다. 무손실 복사(copy)는 .mov 등 일부 컨테이너에서 항상 실패하므로 안정성을 위해 모든 입력에 AAC 재인코딩을 적용합니다. 128k AAC는 원본과 사실상 동일한 음질입니다.
흔한 실수·주의점
- EXIF rotation flag — 일부 카메라는 회전 정보를 EXIF에 저장. 정상 뷰어는 자동 회전 표시하지만 일부 구형 플레이어는 무시. 본 도구는 실제 픽셀을 회전해 모든 플레이어 호환.
- 여러 번 회전 — 같은 영상을 여러 번 90° 회전하면 매번 재인코딩되어 화질 점진적 손실. 한 번에 360° 안에서 결정.
- 좌우 반전 후 텍스트 — 영상 안에 글자가 있으면 좌우 반전 시 거꾸로 됨. 셀카 좌우 반전 시 글자 미러링 주의.
- 모바일 메모리 한계 — 1080p 1분+ 영상은 모바일 메모리 초과 가능. 데스크톱 Chrome 권장.
- HDR 영상 — HDR 10bit 영상은 SDR 8bit로 자동 변환. 색감 약간 변경.
자주 묻는 질문
원본 영상이 서버로 업로드되나요?
전송되지 않습니다. 영상은 브라우저 안에서만 ffmpeg.wasm(WebAssembly)로 처리되며, 사이트 운영자도 내용을 볼 수 없습니다. 첫 사용 시 ffmpeg 라이브러리(~32MB)만 다운로드되고, 이후 영상 자체는 외부로 나가지 않습니다.
회전 + 압축을 한 번에 할 수 있나요?
현재 회전 도구는 화질 조정 옵션이 없습니다(원본 화질 유지를 위해 CRF 23 고정). 회전한 영상의 용량을 줄이려면 결과 파일을 다운로드한 뒤 동영상 압축 도구에 다시 넣어주세요. 향후 통합 옵션 검토 예정.
출력 포맷은 무엇인가요?
출력은 MP4(H.264)로 통일됩니다. 카톡·이메일·SNS·QuickTime 어디서든 재생 가능. 오디오는 AAC 128k로 재인코딩됩니다.
처리 시간이 얼마나 걸리나요?
단일 스레드 처리 기준 원본 길이의 0.3~1배(데스크톱 Chrome). 5분 1080p 영상 ≈ 1~3분. 모바일은 2~3배 더 걸립니다.
큰 영상도 처리 가능한가요?
데스크톱 Chrome 기준 1~2GB까지 처리 가능합니다. iOS Safari·모바일 브라우저는 메모리 한계로 ~500MB 이상에서 불안정할 수 있습니다.
참고
최종 검증: 2026-05-05 / 처리는 ffmpeg.wasm(WebAssembly) 기반.
- ffmpeg.wasm — 공식 사이트 (BSD/LGPL)
- transpose 필터 — FFmpeg Filters Documentation
- H.264/AVC 표준 — ISO/IEC 14496-10
⚠️ 본인 영상에 대해서만 사용해 주세요. 영상·음원 저작권을 침해하는 사용은 금지됩니다.