위에서 파일을 고르면 바로 열립니다.준비됨 — 인터넷을 끊어도 이대로 동작합니다.이 브라우저에서는 쓸 수 없습니다 (나머지는 그대로 동작합니다).오프라인 저장에는 https:// 또는 localhost가 필요합니다.여기서는 저장할 수 없지만, 어느 쪽이든 올라가는 것은 없습니다.파일은 어디로도 가지 않았습니다. 파일 {total}개를 불러왔고 모두 이 사이트의 것입니다. {platform}무언가가 {hosts}에 접속했는데, 이 도구는 절대 그러지 않습니다. 살펴볼 만합니다. {platform}광고와 측정과 후원 버튼을 위한 이 사이트 자신의 스크립트가 호스트 {hosts}곳에서 왔습니다. 그중 어느 쪽도 파일이나 그 1바이트도 받지 않았습니다.광고와 측정과 후원 버튼을 위한 이 사이트 자신의 스크립트가 호스트 {hosts}곳에서 왔습니다. 그중 어느 쪽도 파일이나 그 1바이트도 받지 않았습니다.문제가 생겼습니다: {detail}. 처음부터 다시 하려면 페이지를 새로 고치세요.파일 {count}개를 읽는 중…파일 {count}개를 읽는 중…예시로 해 보기예시를 만드는 중…이 브라우저에서는 예시를 만들지 못했습니다. 대신 파일을 골라 주세요.
모든 프레임을 고르고 디코딩하고 다시 인코딩하는 일은 내 브라우저가 내 기기의 성능으로 합니다. 이 도구에는 네트워크 기능이 아예 없어서 무언가를 가져올 수도 보낼 수도 없습니다. 설령 있더라도 이 페이지 반대편에는 영상을 받아 줄 서버가 없습니다.
✗ 업로드 없음
✗ 계정 없음
✗ 워터마크 없음
✓ 배속은 직접 입력
✓ 오프라인 동작
실시간 확인:확인 중…
오프라인:확인 중…
그냥 믿지 마시고 직접 확인해 보세요. 개발자 도구의 '네트워크' 탭을 켜 놓고 타임랩스를 만들어 보십시오. 프레임도, 파일 이름도, 고른 파일의 단 1바이트도 실려 나가는 요청이 없습니다. 아니면 인터넷을 끊고 그냥 만들어 보셔도 됩니다. 영상을 어딘가로 보내서 처리하는 도구라면 그대로 멈출 테니까요.
이 약속을 직접 확인하는 방법
동영상은 나갈 곳이 없습니다. 이 페이지가 연결해도 되는 주소는 Content-Security-Policy에 모두 적혀 있는데, 그중 이 사이트 것은 하나도 없습니다. 파일이 모일 만한 수신 지점이 없고, 설령 있더라도 거기로 파일을 보낼 코드가 없습니다.
여기서는 아무것도 가져오지 않습니다. 이 도구에는 네트워크 기능이 아예 없습니다. 붙여 넣을 주소도, 내려받을 것도, 처음 쓸 때 가져오는 엔진도 없어요. 내 영상에 닿는 모든 바이트는 페이지를 불러올 때 이 출처에서 온 것입니다.
디코딩도 인코딩도 내 기기에서 합니다. 프레임은 브라우저 안에서 WebCodecs를 지나가거나, 어차피 그 영상을 보여 줬을 바로 그 재생 엔진을 지나갑니다. 완성된 파일은 이 기기의 메모리에서 만들어져 곧바로 내려받기로 넘어갑니다.
파일의 대부분은 읽지도 않습니다. 타임랩스에는 몇 초에 한 장이면 충분하므로, 이 도구는 그 순간마다 그 주변의 짧은 구간만 읽고 나머지는 건너뜁니다. 개인정보가 아니라 속도를 위한 선택이지만 알아 두실 만해요. 내 기기 안에서조차 영상의 대부분은 한 번도 열리지 않습니다.
구글이 불러오는 것과, 구글에게 주지 않는 것. 광고와 측정 스크립트는 구글에서 옵니다. 어느 쪽에도 내 영상에 관한 것은 넘어가지 않습니다. 파일도, 프레임도, 이름도, 용량도, 길이도요. 읽고 디코딩하고 골라내고 인코딩하는 코드는 한 줄도 빠짐없이 이 출처에서 제공되고 저장소에 공개되어 있습니다.
후원 버튼이 불러오는 것과, 후원 버튼이 받지 못하는 것. 헤더의 "Buy me a coffee" 버튼은 cdnjs.buymeacoffee.com의 스크립트가 그리고, 글꼴은 Google Fonts에서 가져옵니다. 그저 링크일 뿐이에요. 방문을 보고하지도, 나에 관한 것이나 내 영상에 관한 것을 받아 가지도 않습니다.
오프라인에서도 동작합니다. 네트워크를 끊어도 이 페이지의 기능이 전부 그대로 돌아갑니다. 가장 간단한 증거입니다.
직접 확인해 보세요. 위에 적은 어느 것도 그냥 믿으실 필요는 없습니다. 이 페이지는 저장소 안의 템플릿과 설정을 빌드 스크립트가 찍어 낸 결과이고, 그 스크립트는 누구나 읽고 직접 돌려 볼 수 있습니다. 결과물은 dist 브랜치에 그대로 올라가 있고요. 그래서 실제로 제공되는 파일과 소스를 빌드한 결과를 나란히 놓고 비교해 보실 수 있습니다:
먼저 읽어 볼 파일을 꼽자면, Content-Security-Policy는 config/site.toml, 각 프레임을 어느 순간에서 가져올지 계산하는 곳은 src/plan.js, 그 순간들에 필요한 부분만 파일에서 읽어 오는 반복문은 src/decode.js에 있습니다. 둘 다 요청을 보낼 수 있는 무언가를 불러오지 않습니다.
회사 보안 소프트웨어가 업로드를 경고한다면. 그것은 브라우저에서 파일이 선택되는 순간을 지켜보며, 페이지가 그것을 보낼 생각인지는 알 수 없습니다 — 그래서 고르는 순간에 경고합니다. 여기서는 아무것도 보내지 않습니다. 브라우저 개발자 도구를 열고 네트워크 탭으로 옮긴 뒤 파일을 골라 보세요. 그것을 실어 나르는 요청은 없고, 이 페이지 자체의 로컬 미리보기 말고는 요청 자체가 없습니다. 같은 확인을 IT 팀도 삼십 초면 할 수 있습니다.
1 동영상 고르기
파일
—
용량
—
프레임
—
길이
—
초당 프레임
—
영상
—
2 배속 정하기
재생 속도 완성된 영상이 재생되는 프레임 수입니다. 얼마나 빠른지는 위의 배속이 정하고, 이 값은 얼마나 부드러워 보이는지만 바꿉니다.
크기 줄이기만 합니다. 타임랩스는 대개 작게 보니까요.
화질 여기 있는 다른 영상 도구들보다 넉넉하게 씁니다. 타임랩스는 이웃한 두 프레임 사이에 압축해서 줄일 공통점이 거의 없기 때문입니다.
3 타임랩스 만들기
남기는 프레임
—
프레임 간격
—
완성본 길이
—
출력 프레임
—
읽는 양
—
예상 용량
—
결과물에는 소리가 없습니다. 30배로 빨라진 말과 음악은 더 이상 말도 음악도 아니라서 남길 것이 없습니다. 한 시간짜리 영상이 몇 메가바이트로 나오는 이유도 대부분 여기에 있습니다.
파일을 읽는 중…이 브라우저가 디코딩할 수 있는지 확인하는 중…이 브라우저는 영상을 인코딩하지 못해서 타임랩스를 쓰지 못합니다. 최근의 Chrome, Edge, Safari, Firefox는 됩니다.이 브라우저는 영상을 인코딩하지 못해서 타임랩스를 쓸 수단이 없습니다. Chrome, Edge, Safari 16.4, Firefox 133 이상은 됩니다.이 파일은 길이를 밝히지 않아서 속도를 계산할 근거가 없습니다.그 파일은 열지 못했습니다.이 브라우저는 이 파일을 재생하지 않아서, 아래 프레임은 무엇을 골랐는지 보여주려고 디코딩한 것입니다. 타임랩스 자체에는 영향이 없습니다.이 브라우저는 이 파일을 재생하지 않고, 프레임 단위로 읽지도 못했습니다. {why}이 파일에는 프레임이 하나도 없습니다.디코더에서 프레임이 돌아오지 않았습니다.{width} x {height}{n} fps재생기가 알려주는 대로{codec} ({entry}){codec} ({entry}), {degrees}도 돌아감브라우저 자체 재생기로 읽음원본에서 {every}마다 한 프레임씩, 초당 {fps}프레임으로 재생합니다.{n}프레임{n}프레임{width} x {height} (그대로){width} x {height} ({fromWidth} x {fromHeight}에서)약 {size}파일에 있는 {total}프레임 중 {read}프레임재생기를 통한 탐색 {n}번재생기를 통한 탐색 {n}번이 속도로는 프레임이 한 장만 남고, 그건 클립이 아니라 사진입니다. 속도를 낮추거나 완성 길이를 늘리면 됩니다.이 속도로는 프레임이 {n}장만 남고, 그건 클립이 아니라 사진입니다. 속도를 낮추거나 완성 길이를 늘리면 됩니다.뽑아낼 시점의 간격이 이 파일의 프레임 간격보다 촘촘해서 같은 프레임이 두 번 나옵니다. 잘못된 것은 아니지만, 프레임 속도를 낮추면 같은 영상을 더 적은 프레임으로 만들 수 있습니다.준비하는 중…마무리하는 중…{total}프레임 중 {done}번째 ({percent}%)이 브라우저는 {width}x{height}로 H.264를 인코딩하지 않습니다. 더 작은 크기는 됩니다.이 파일에서는 아무것도 디코딩하지 못했습니다.재생기가 {total}프레임 중 {done}프레임에서 멈췄습니다. {why} 클립을 먼저 평범한 MP4(H.264)로 바꿔 두는 것이 확실한 해결책입니다.읽기가 중단되었습니다.파일을 디스크에서 읽지 못했습니다.브라우저가 그 안의 영상을 디코딩하지 못했습니다.브라우저가 이 형식이나 이 코덱을 지원하지 않습니다.브라우저가 그것을 더는 읽지 못하게 되었습니다.타임랩스를 만드는 중에 문제가 생겼습니다.인코더가 디코더 구성을 내놓지 않았습니다.인코딩된 프레임이 하나도 없습니다.영상이 4 GB 한도를 넘습니다. 품질이나 해상도, 길이를 낮추면 됩니다.내부 오류: MP4 색인의 크기가 두 차례 계산 사이에 달라졌습니다.{a} {b}{a} · {b}{n} KB{n} MB{n} GB{hours}시간 {minutes}분{minutes}분 {seconds}초{n}초{n}밀리초{n}초{n}분파일이 프레임 한가운데에서 끝났습니다.H.264 설정 레코드가 너무 짧습니다.HEVC 설정 레코드가 너무 짧습니다.AV1 설정 레코드가 너무 짧습니다.샘플 크기가 이 리더는 풀지 않는 압축 표에 들어 있습니다.샘플 테이블이 온전하지 않습니다.청크 테이블이 비어 있습니다.그 트랙에는 샘플이 하나도 없습니다.비디오 트랙에 샘플 테이블이 없습니다.비디오 트랙에 샘플 설명이 없습니다.비디오의 샘플 설명이 비어 있습니다.비디오 트랙이 암호화되어 있습니다.이 영상은 “{type}” 형식으로 저장되어 있는데, 이 리더가 모르는 형식입니다.“{type}” 트랙은 디코더 설정을 함께 담고 있지 않습니다.MP4도 MOV도 아닙니다.파일에 무비 헤더가 없습니다.이 파일에는 이 리더가 쓸 수 있는 비디오 트랙이 없습니다.비디오 트랙에 타임스케일이 없습니다.이 파일의 프래그먼트에는 비디오 트랙의 프레임이 하나도 없습니다.이 파일은 MP4로 읽히지 않았습니다.이 형식은 이 브라우저가 재생하는 형식이 아닙니다.이 파일의 구성은 여기 리더가 이해하는 구성이 아닙니다.이 브라우저는 {codec}을 직접 디코딩하지 않습니다.이 브라우저에는 WebCodecs가 없어서 프레임을 하나씩 디코딩할 수 없습니다.이 브라우저는 이 파일을 열지 못합니다. {reason}이 브라우저가 파일은 열었지만 안에 든 영상을 디코딩하지 못합니다. 보통 Dolby Vision이거나, 하드웨어 지원이 없는 기기에서의 HEVC입니다. 컨테이너는 멀쩡히 읽히는데 화면이 끝내 오지 않는 것이죠. 먼저 보통 MP4(H.264)로 바꾸면 이 도구가 곧바로 읽습니다.{reason} 그래서 이 파일은 브라우저 자신의 재생기를 매 순간으로 옮겨 가며 읽습니다. 브라우저가 재생하는 모든 형식에서 통하고, 조금 더 느립니다.동영상은 어디로도 가지 않았습니다. 파일 {total}개를 불러왔습니다. {platform}무언가가 {hosts}에 접속했는데, 이 도구는 절대 그러지 않습니다. {platform}광고와 측정과 후원 버튼을 위한 이 사이트 자신의 스크립트가 호스트 {hosts}곳에서 왔습니다. 그중 어느 쪽도 파일을 받지 않았습니다.광고와 측정과 후원 버튼을 위한 이 사이트 자신의 스크립트가 호스트 {hosts}곳에서 왔습니다. 그중 어느 쪽도 파일을 받지 않았습니다.
원하는 결과가 나왔나요?
무엇이 잘못됐나요?
고맙습니다 — 큰 도움이 됩니다.
보내지는 것은 답변뿐이고, 그것도 버튼을 눌렀을 때만입니다. 파일도, 파일 이름도, 파일에 관한 어떤 정보도 보내지 않습니다.
# 타임랩스 만들기 — 온라인에서 동영상 빠르게 재생하기
한 시간짜리 영상을 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`에 있습니다. 둘 다 요청을 보낼 수 있는 무언가를 불러오지 않습니다.
동영상으로 타임랩스를 만드는 방법
동영상을 고릅니다. MP4, MOV, M4V, WebM 파일을 선택 영역에 끌어다 놓거나 직접 찾아 여십시오. 브라우저가 디스크에서 바로 읽고, 그동안 밖으로 나가는 것은 없습니다.
얼마나 빠르게 할지 정합니다. 배속 버튼을 누르거나 원하는 값을 직접 입력하세요. '20초 안에 들어가게'처럼 완성본의 길이로 말하는 쪽이 편하다면 그 길이를 입력하면 배속이 따라옵니다.
간격을 확인합니다. 배속 아래 줄이 실제로 무슨 일이 일어나는지 알려 줍니다. 원본에서 몇 초에 한 장을 가져오는지 말이에요. 카메라에서 설정하는 바로 그 값이고, 시작하기 전에 한 번 보고 가면 좋은 숫자입니다.
만들고 내려받습니다. 작업은 내 기기의 성능으로 하므로 걸리는 시간은 대기열이 아니라 기기에 달려 있습니다. 완성된 영상은 브라우저 내려받기로 바로 넘어갑니다.
자세한 설명
긴 동영상을 타임랩스로 바꾸는 방법한 시간짜리 촬영본을 볼 만한 1분으로: 속도를 고르는 법, 계산 대신 최종 길이를 말하는 편이 나은 이유, 그리고 결과물이 GIF가 되어야 하는 경우.
아닙니다. 읽고, 디코딩하고, 프레임을 골라내고, 인코딩하는 일을 모두 내 브라우저가 내 기기에서 합니다. 이 도구에는 서버 쪽이 없고, 페이지의 Content-Security-Policy에 연결 가능한 주소가 전부 적혀 있는데 그중 이 사이트 것은 하나도 없습니다. 듣는 것보다 확인하는 쪽이 편하시면 인터넷을 끊고 그냥 타임랩스를 만들어 보십시오.
배속은 정확히 무슨 뜻인가요?
들어간 길이와 나온 길이의 비율입니다. 60×이면 한 시간짜리 영상이 1분이 되고, 몇 프레임으로 재생하든 그 1분은 그대로입니다. 내부적으로는 배속 ÷ 초당 프레임 수마다 한 장씩 가져옵니다. 30fps에서 60×이면 2초에 한 장이지요. 페이지는 시작 전에 그 간격을 보여 줍니다. 실제로 무슨 일이 일어나는지 말해 주는 숫자가 그것이니까요.
어떤 동영상 형식을 빠르게 만들 수 있나요?
MP4, M4V, MOV는 안에 무엇이 들었든 바로 읽습니다. 브라우저가 그 코덱을 디코딩할 수 있다면 H.264, HEVC, AV1, VP9 모두 됩니다. 그 밖에 브라우저가 재생할 수 있는 형식은, 대표적으로 WebM은, 브라우저 재생기를 각 순간으로 이동시키며 읽습니다. 재생 가능한 형식이면 무엇이든 되는 방식이에요. 브라우저가 읽지도 재생하지도 못하는 파일, 실질적으로는 AVI, WMV, FLV와 대부분의 MKV는 중간에 실패하는 대신 그렇다고 알리며 처음부터 거절합니다. 나오는 것은 언제나 MP4입니다.
타임랩스에 소리가 없는 이유는 무엇인가요?
남길 만한 것이 없기 때문입니다. 30배로 빨라진 소리는 말도 음악도 아닌 삑 소리일 뿐입니다. 그렇다고 원래 속도의 소리를 저만치 앞서간 화면 아래에 깔아 두면, 그건 요청하신 것과 다른 영상이 됩니다. 그래서 오디오 트랙은 버립니다. 한 시간짜리 영상이 몇 메가바이트로 나오는 이유도 대부분 여기에 있습니다. 소리만 따로 필요하시면 오디오 편집에서 저장할 수 있습니다.
영상 전체를 변환하는 것보다 빠른가요?
훨씬 빠르고, 파일을 직접 읽는 이유가 바로 그것입니다. 한 프레임을 디코딩하려면 그 앞의 키프레임부터 시작해야 하지만, 그 사이 프레임까지 남겨야 한다는 법은 없습니다. 한 시간짜리를 60×으로 만들면 10만 장이 아니라 몇천 장만 디코딩합니다. 버튼을 누르기 전에 요약이 몇 장을 읽을지 정확히 알려 줍니다.
화질이 떨어지나요?
남긴 프레임을 한 번 더 인코딩하므로 그만큼은 손해입니다. 피할 방법은 없습니다. 완성된 영상은 원본 파일에 인코딩되어 있지 않던 시점에 그 프레임들을 보여 주니까요. 대신 이 도구는 여기 있는 다른 영상 도구들보다 비트레이트를 더 씁니다. 일부러 그렇게 했어요. 2초 떨어진 두 프레임은 1/30초 떨어진 두 프레임보다 공통점이 훨씬 적어서 코덱이 재사용할 것이 적고, 보통 영상에 맞춘 값을 쓰면 뭉개져 나옵니다.
용량이나 길이에 제한이 있나요?
도구에 걸어 둔 제한은 없고, 파일을 통째로 메모리에 올리지도 않습니다. 각 순간 주위의 짧은 구간만 읽습니다. 현실적인 한계는 내려받기 전에 메모리에서 조립되는 완성본인데, 타임랩스는 정의상 짧습니다. 시작 전에 요약이 대략적인 용량을 보여 줍니다.
영상의 일부만 빠르게 만들 수 있나요?
여기서는 안 됩니다. 이 도구는 첫 프레임부터 마지막 프레임까지 전체를 가져갑니다. 원하는 구간을 먼저 동영상 구간 자르기로 잘라내면 프레임을 한 장도 다시 인코딩하지 않고 끝나니, 거기서 나온 파일을 여기에 넣으십시오.
무료인가요? 계정이 필요한가요?
무료이고 계정도, 로그인도, 체험 기간도, 워터마크도 없습니다. 사이트는 광고로 운영되며, 광고에는 내 영상에 관한 것이 아무것도 넘어가지 않습니다.