# 타임랩스 만들기 — 온라인에서 동영상 빠르게 재생하기

한 시간짜리 영상을 20초로.

> 긴 동영상을 타임랩스로 바꿉니다. 10배, 60배, 직접 입력한 배속까지. 브라우저에서 돌아갑니다. 업로드 없음, 워터마크 없음, 오프라인 동작.

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

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

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

- ✗ 업로드 없음
- ✗ 계정 없음
- ✗ 워터마크 없음
- ✓ 배속은 직접 입력
- ✓ 오프라인 동작

## 동영상으로 타임랩스를 만드는 방법

1. **동영상을 고릅니다.** MP4, MOV, M4V, WebM 파일을 선택 영역에 끌어다 놓거나 직접 찾아 여십시오. 브라우저가 디스크에서 바로 읽고, 그동안 밖으로 나가는 것은 없습니다.
2. **얼마나 빠르게 할지 정합니다.** 배속 버튼을 누르거나 원하는 값을 직접 입력하세요. '20초 안에 들어가게'처럼 완성본의 길이로 말하는 쪽이 편하다면 그 길이를 입력하면 배속이 따라옵니다.
3. **간격을 확인합니다.** 배속 아래 줄이 실제로 무슨 일이 일어나는지 알려 줍니다. 원본에서 몇 초에 한 장을 가져오는지 말이에요. 카메라에서 설정하는 바로 그 값이고, 시작하기 전에 한 번 보고 가면 좋은 숫자입니다.
4. **만들고 내려받습니다.** 작업은 내 기기의 성능으로 하므로 걸리는 시간은 대기열이 아니라 기기에 달려 있습니다. 완성된 영상은 브라우저 내려받기로 바로 넘어갑니다.

## 자세한 설명

[긴 동영상을 타임랩스로 바꾸는 방법](https://abox.tools/ko/가이드/긴-영상을-타임랩스로/): 한 시간짜리 촬영본을 볼 만한 1분으로: 속도를 고르는 법, 계산 대신 최종 길이를 말하는 편이 나은 이유, 그리고 결과물이 GIF가 되어야 하는 경우.

## 상자 속 다른 도구

- [동영상 캡처](https://abox.tools/ko/동영상-캡처/): 어느 지점이든, 원본 화질 그대로 한 장.
- [동영상을 GIF로](https://abox.tools/ko/동영상-gif-변환/): 구간과 크기, 초당 프레임 수를 고르세요.
- [GIF 만들기](https://abox.tools/ko/gif-만들기/): 여러 장의 사진을 움직임 하나로.
- [GIF 프레임 분리](https://abox.tools/ko/gif-프레임-분리/): 모든 프레임을 PNG 한 장씩으로.

## 자주 묻는 질문

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

아닙니다. 읽고, 디코딩하고, 프레임을 골라내고, 인코딩하는 일을 모두 내 브라우저가 내 기기에서 합니다. 이 도구에는 서버 쪽이 없고, 페이지의 `Content-Security-Policy`에 연결 가능한 주소가 전부 적혀 있는데 그중 이 사이트 것은 하나도 없습니다. 듣는 것보다 확인하는 쪽이 편하시면 인터넷을 끊고 그냥 타임랩스를 만들어 보십시오.

### 배속은 정확히 무슨 뜻인가요?

들어간 길이와 나온 길이의 비율입니다. 60×이면 한 시간짜리 영상이 1분이 되고, 몇 프레임으로 재생하든 그 1분은 그대로입니다. 내부적으로는 *배속 ÷ 초당 프레임 수*마다 한 장씩 가져옵니다. 30fps에서 60×이면 2초에 한 장이지요. 페이지는 시작 전에 그 간격을 보여 줍니다. 실제로 무슨 일이 일어나는지 말해 주는 숫자가 그것이니까요.

### 어떤 동영상 형식을 빠르게 만들 수 있나요?

MP4, M4V, MOV는 안에 무엇이 들었든 바로 읽습니다. 브라우저가 그 코덱을 디코딩할 수 있다면 H.264, HEVC, AV1, VP9 모두 됩니다. 그 밖에 브라우저가 재생할 수 있는 형식은, 대표적으로 WebM은, 브라우저 재생기를 각 순간으로 이동시키며 읽습니다. 재생 가능한 형식이면 무엇이든 되는 방식이에요. 브라우저가 읽지도 재생하지도 못하는 파일, 실질적으로는 AVI, WMV, FLV와 대부분의 MKV는 중간에 실패하는 대신 그렇다고 알리며 처음부터 거절합니다. 나오는 것은 언제나 MP4입니다.

### 타임랩스에 소리가 없는 이유는 무엇인가요?

남길 만한 것이 없기 때문입니다. 30배로 빨라진 소리는 말도 음악도 아닌 삑 소리일 뿐입니다. 그렇다고 원래 속도의 소리를 저만치 앞서간 화면 아래에 깔아 두면, 그건 요청하신 것과 다른 영상이 됩니다. 그래서 오디오 트랙은 버립니다. 한 시간짜리 영상이 몇 메가바이트로 나오는 이유도 대부분 여기에 있습니다. 소리만 따로 필요하시면 [오디오 편집](https://abox.tools/ko/오디오-편집/)에서 저장할 수 있습니다.

### 영상 전체를 변환하는 것보다 빠른가요?

훨씬 빠르고, 파일을 직접 읽는 이유가 바로 그것입니다. 한 프레임을 디코딩하려면 그 앞의 키프레임부터 시작해야 하지만, 그 사이 프레임까지 남겨야 한다는 법은 없습니다. 한 시간짜리를 60×으로 만들면 10만 장이 아니라 몇천 장만 디코딩합니다. 버튼을 누르기 전에 요약이 몇 장을 읽을지 정확히 알려 줍니다.

### 화질이 떨어지나요?

남긴 프레임을 한 번 더 인코딩하므로 그만큼은 손해입니다. 피할 방법은 없습니다. 완성된 영상은 원본 파일에 인코딩되어 있지 않던 시점에 그 프레임들을 보여 주니까요. 대신 이 도구는 여기 있는 다른 영상 도구들보다 비트레이트를 더 씁니다. 일부러 그렇게 했어요. 2초 떨어진 두 프레임은 1/30초 떨어진 두 프레임보다 공통점이 훨씬 적어서 코덱이 재사용할 것이 적고, 보통 영상에 맞춘 값을 쓰면 뭉개져 나옵니다.

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

도구에 걸어 둔 제한은 없고, 파일을 통째로 메모리에 올리지도 않습니다. 각 순간 주위의 짧은 구간만 읽습니다. 현실적인 한계는 내려받기 전에 메모리에서 조립되는 완성본인데, 타임랩스는 정의상 짧습니다. 시작 전에 요약이 대략적인 용량을 보여 줍니다.

### 영상의 일부만 빠르게 만들 수 있나요?

여기서는 안 됩니다. 이 도구는 첫 프레임부터 마지막 프레임까지 전체를 가져갑니다. 원하는 구간을 먼저 [동영상 구간 자르기](https://abox.tools/ko/동영상-자르기/)로 잘라내면 프레임을 한 장도 다시 인코딩하지 않고 끝나니, 거기서 나온 파일을 여기에 넣으십시오.

### 무료인가요? 계정이 필요한가요?

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

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

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

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

먼저 읽어 볼 파일을 꼽자면, Content-Security-Policy는 `config/site.toml`, 각 프레임을 어느 순간에서 가져올지 계산하는 곳은 `src/plan.js`, 그 순간들에 필요한 부분만 파일에서 읽어 오는 반복문은 `src/decode.js`에 있습니다. 둘 다 요청을 보낼 수 있는 무언가를 불러오지 않습니다.
