# 동영상 화면 자르기 — 온라인에서 영상 크롭하기

필요한 부분만 남기고 화면을 도려냅니다.

> MP4, MOV, WebM의 화면을 원하는 모양으로 자릅니다. 정사각형, 9:16, 픽셀 단위로 정확하게. 브라우저에서 돌아갑니다. 업로드 없음, 소리는 그대로, 오프라인 동작.

이 페이지는 브라우저 안에서만 동작하는 대화형 도구입니다(https://abox.tools/ko/동영상-화면-자르기/). 도구에 넘긴 어떤 것도 업로드되지 않습니다. 아래는 이 페이지가 도구에 대해 글로 설명하는 내용 전부입니다. 도구를 쓰려면 이 주소를 여세요.

## 동영상은 **절대 업로드되지 않습니다**. 서버가 아예 없으니까요.

모든 프레임을 디코딩하고 자르고 인코딩하는 일은 내 브라우저가 내 기기의 성능으로 합니다. 이 도구에는 네트워크 기능이 아예 없어서 무언가를 가져올 수도 보낼 수도 없습니다. 설령 있더라도 이 페이지 반대편에는 영상을 받아 줄 서버가 없습니다.

- ✗ 업로드 없음
- ✗ 가입 없음
- ✗ 워터마크 없음
- ✓ 소리 그대로
- ✓ 오프라인 동작

## 동영상 화면을 자르는 방법

1. **동영상을 고릅니다.** MP4, MOV, M4V, WebM을 선택 영역에 끌어다 놓거나 직접 골라 주세요. 브라우저가 디스크에서 곧바로 읽습니다. 그동안 어디로도 아무것도 나가지 않습니다.
2. **남기고 싶은 부분에 상자를 맞춥니다.** 상자 안쪽을 끌면 옮겨지고 모서리를 끌면 크기가 바뀝니다. 비율을 먼저 고정해도 됩니다. 정사각형 게시물이면 1:1, 휴대폰이면 9:16, 넓은 화면이면 16:9입니다. 아래 네 칸에 픽셀 값을 직접 입력해도 되고요. 클립을 재생하거나 아래 슬라이더를 끌어서 상자를 맞출 프레임을 고르세요.
3. **화질을 얼마나 쓸지 고릅니다.** 화면은 다시 인코딩해야 합니다. 잘라낸 프레임은 다른 그림이니까요. "균형"은 원본 파일이 그 영역에 이미 쓴 만큼에 가깝게 맞추고, "최고 화질"은 더 씁니다. 소리는 끄지 않는 한 그대로 유지됩니다.
4. **잘라내고 내려받습니다.** 작업이 내 기기에서 일어나므로, 걸리는 시간은 대기열이 아니라 기기 성능에 달려 있습니다. 완성된 영상은 브라우저의 다운로드로 바로 넘어갑니다.

## 자세한 설명

[동영상을 다른 화면 비율로 자르는 방법](https://abox.tools/ko/가이드/동영상-화면-자르기/): 영상을 정사각형이나 9:16 세로, 또는 정확한 픽셀 상자로 잘라내기. 플랫폼마다 어떤 비율을 원하는지, 구간 자르기와 달리 화면 자르기는 왜 다시 인코딩해야 하는지, 그리고 그 대가가 무엇인지.

## 상자 속 다른 도구

- [동영상 거꾸로 재생](https://abox.tools/ko/동영상-거꾸로-재생/): 마지막 프레임부터, 소리까지 함께.
- [타임랩스 만들기](https://abox.tools/ko/타임랩스-만들기/): 한 시간짜리 영상을 20초로.
- [동영상 캡처](https://abox.tools/ko/동영상-캡처/): 어느 지점이든, 원본 화질 그대로 한 장.
- [동영상을 GIF로](https://abox.tools/ko/동영상-gif-변환/): 구간과 크기, 초당 프레임 수를 고르세요.

## 자주 묻는 질문

### 제 동영상이 어딘가로 업로드되나요?

아닙니다. 읽고 디코딩하고 자르고 인코딩하는 일은 내 기기에서 도는 내 브라우저가 합니다. 이 도구에는 서버 쪽이라는 것이 없고, 이 페이지의 `Content-Security-Policy`에 연결해도 되는 주소가 전부 적혀 있는데 그중 이 사이트 것은 하나도 없습니다. 말로 듣기보다 직접 확인하고 싶다면, 인터넷을 끊고 그냥 영상을 잘라 보세요.

### 어떤 영상 형식을 자를 수 있나요?

MP4, M4V, MOV는 안에 무엇이 들었든 곧바로 읽습니다. H.264, HEVC, AV1, VP9 가운데 무엇이든 브라우저가 그 코덱을 디코딩할 수 있으면 문제 없습니다. 브라우저가 재생할 수 있는 나머지, 대표적으로 WebM은 재생하면서 결과를 녹화하는 방식으로 잘립니다. 되기는 되지만 영상 길이만큼 시간이 걸립니다. 브라우저가 읽지도 재생하지도 못하는 파일, 실제로는 AVI, WMV, FLV와 대부분의 MKV는 중간에 실패하는 대신 그렇다는 메시지와 함께 거부합니다.

### 영상 용량이나 길이에 제한이 있나요?

도구에 정해 둔 제한은 없고, 파일을 한 번에 메모리로 전부 읽지도 않습니다. 몇 메가바이트씩 훑고 지나가거든요. 현실적인 한계는 내려받기 전에 메모리에서 조립되는 완성 영상의 크기, 그리고 내 기기가 그것을 인코딩하는 데 걸리는 시간입니다.

### 소리는 살아남나요?

MP4 경로에서는 정확히 그대로입니다. 오디오를 디코딩하지 않고 샘플 단위로 복사하기 때문에 파일에 들어 있던 것과 바이트가 같습니다. 녹화 경로에서는 재생되는 소리를 받아 다시 인코딩하므로 품질이 조금 깎입니다. 어느 쪽이든 소리를 아예 빼는 체크박스가 있습니다.

### 화면을 자르면 화질이 떨어지나요?

화면은 다시 인코딩됩니다. 잘라낸 프레임은 다른 그림이고, 픽셀을 새로 쓰지 않고는 저장할 방법이 없기 때문입니다. 다만 같은 영역에 원본이 쓴 것보다 더 쓰지는 않습니다. 그 위로 다시 인코딩해 봐야 파일만 커지고 더 좋아 보이지는 않으니까요.

### 길이도 잘라낼 수 있나요?

여기서는 못 하고, 옆 도구가 합니다. 이 도구는 화면의 모양만 바꿉니다. 나오는 영상은 들어간 영상과 길이가 똑같고, 타이밍과 소리도 그대로입니다. 길이를 자르는 것은 별개의 일이라 도구도 따로 있습니다. [동영상 구간 자르기](https://abox.tools/ko/동영상-자르기/)에서 남길 만한 구간을 표시하면 한 파일로 저장해 줍니다. 프레임을 다시 인코딩하지도 않고요.

### 가로세로가 왜 2씩 움직이나요?

MP4 안의 코덱인 H.264는 화면을 블록 단위로 저장해서, 한 변이 홀수 픽셀인 프레임을 표현할 방법이 없습니다. 정해 둔 크기를 나중에 조용히 반올림하는 대신, 애초에 상자가 짝수만 내놓습니다.

### 무료인가요? 가입해야 하나요?

무료이고 계정도, 로그인도, 체험판도, 워터마크도 없습니다. 이 사이트는 광고로 유지되는데, 그 광고에도 내 영상에 관한 것은 넘어가지 않습니다.

## 이 약속을 직접 확인하는 방법

- **동영상은 나갈 곳이 없습니다.** 이 페이지가 연결해도 되는 주소는 Content-Security-Policy에 모두 적혀 있는데, 그중 이 사이트 것은 하나도 없습니다. 파일이 모일 만한 수신 지점이 없고, 설령 있더라도 거기로 파일을 보낼 코드가 없습니다.
- **여기서는 아무것도 가져오지 않습니다.** 이 도구에는 네트워크 기능이 아예 없습니다. 붙여 넣을 주소도, 내려받을 것도, 처음 쓸 때 가져오는 엔진도 없어요. 내 영상에 닿는 모든 바이트는 페이지를 불러올 때 이 출처에서 온 것입니다.
- **디코딩도 인코딩도 내 기기에서 합니다.** 프레임은 브라우저 안에서 WebCodecs를 지나가거나, 어차피 그 영상을 보여 줬을 바로 그 재생 엔진을 지나갑니다. 완성된 파일은 이 기기의 메모리에서 만들어져 곧바로 내려받기로 넘어갑니다.
- **소리는 복사만 할 뿐 듣지 않습니다.** MP4 경로에서는 오디오 샘플이 디코딩조차 되지 않은 채로 옮겨집니다. 여기서는 그것을 소리로 되돌리는 일이 없고, 되돌린다 해도 어디로 넘길 방법이 없습니다.
- **구글이 불러오는 것과, 구글에게 주지 않는 것.** 광고와 측정 스크립트는 구글에서 옵니다. 어느 쪽에도 내 영상에 관한 것은 넘어가지 않습니다. 파일도, 프레임도, 이름도, 용량도, 길이도, 어떤 모양으로 잘랐는지도요. 읽고 디코딩하고 자르고 인코딩하는 코드는 한 줄도 빠짐없이 이 출처에서 제공되고 저장소에 공개되어 있습니다.
- **후원 버튼이 불러오는 것과, 후원 버튼이 받지 못하는 것.** 헤더의 "Buy me a coffee" 버튼은 cdnjs.buymeacoffee.com의 스크립트가 그리고, 글꼴은 Google Fonts에서 가져옵니다. 그저 링크일 뿐이에요. 방문을 보고하지도, 나에 관한 것이나 내 영상에 관한 것을 받아 가지도 않습니다.
- **오프라인에서도 동작합니다.** 네트워크를 끊어도 이 페이지의 기능이 전부 그대로 돌아갑니다. 가장 간단한 증거입니다.

**직접 확인해 보세요.** 위에 적은 어느 것도 그냥 믿으실 필요는 없습니다. 이 페이지는 저장소 안의 템플릿과 설정을 빌드 스크립트가 찍어 낸 결과이고, 그 스크립트는 누구나 읽고 직접 돌려 볼 수 있습니다. 결과물은 `dist` 브랜치에 그대로 올라가 있고요. 그래서 실제로 제공되는 파일과 소스를 빌드한 결과를 나란히 놓고 비교해 보실 수 있습니다: https://github.com/A-Box-of-Tools/website

먼저 읽어 볼 파일을 꼽자면, Content-Security-Policy는 `config/site.toml`, MP4 안에서 프레임을 찾아내는 리더는 `src/shared/mp4-reader.js`, 디코딩하고 자르고 인코딩하는 반복문은 `src/transcode.js`에 있습니다. 둘 다 요청을 보낼 수 있는 무언가를 불러오지 않습니다.
