# 이미지를 동영상으로 — MP4 슬라이드쇼 만들기

이미지가 든 폴더 하나를 동영상으로.

> JPG, PNG, WebP 이미지를 MP4 슬라이드쇼 영상으로 만듭니다. 무료이고 전부 브라우저 안에서 돌아갑니다. 아무것도 업로드되지 않고, 가입도 필요 없으며, 오프라인에서도 됩니다.

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

## 이미지 파일은 **절대 업로드되지 않습니다**. 서버가 아예 없으니까요.

모든 프레임을 인코딩하는 일은 내 브라우저가 하고, 영상은 이 기기의 메모리에서 만들어집니다. 인코더는 네트워크에 손을 대지 않으며, 설령 댄다 해도 이 페이지 반대편에는 이미지를 받아 줄 서버가 없습니다.

- ✗ 업로드 없음
- ✗ 가입 없음
- ✓ 오프라인 동작
- ✓ 오픈 소스
- ✓ 파일은 기기에 그대로

## 이미지를 동영상으로 만드는 방법

1. **이미지를 고릅니다.** 폴더를 통째로 선택 영역에 끌어다 놓거나 파일을 직접 고르세요. 브라우저가 디스크에서 곧바로 읽습니다. 그동안 어디로도 아무것도 나가지 않습니다.
2. **순서를 정하고 각 장이 얼마나 머무를지 설정합니다.** 끌어서 순서를 바꾸세요. 머무는 시간은 프레임으로도 초로도 줄 수 있고, 전체에 한 번에 적용하거나 한 장씩 따로 정할 수 있습니다.
3. **해상도와 프레임 레이트를 고릅니다.** "가장 높은 해상도에 맞추기"는 가장 큰 이미지를 따라갑니다. 프리셋에는 4K, 1080p, 720p, 정사각형, 세로가 있고, 맞는 것이 없으면 직접 입력할 수도 있습니다.
4. **동영상을 만들고 내려받습니다.** 인코딩이 내 기기에서 돌아가므로, 걸리는 시간은 대기열이 아니라 기기 성능에 달려 있습니다. 완성된 MP4는 브라우저의 다운로드로 바로 넘어갑니다.

## 자세한 설명

[이미지가 든 폴더를 동영상으로 만드는 방법](https://abox.tools/ko/가이드/사진으로-동영상-만들기/): 사진으로 MP4 슬라이드쇼 만들기. 프레임 레이트와 지속 시간이 실제로 무엇을 조절하는지, 비율이 맞지 않는 사진을 어떻게 다룰지, 그리고 결과에 배경음이 없는 이유.

## 상자 속 다른 도구

- [동영상 구간 자르기](https://abox.tools/ko/동영상-자르기/): 재생하면서 남길 구간을 표시하세요. 그 구간들이 영상 하나로 돌아옵니다.
- [동영상 화면 자르기](https://abox.tools/ko/동영상-화면-자르기/): 필요한 부분만 남기고 화면을 도려냅니다.
- [동영상 거꾸로 재생](https://abox.tools/ko/동영상-거꾸로-재생/): 마지막 프레임부터, 소리까지 함께.
- [타임랩스 만들기](https://abox.tools/ko/타임랩스-만들기/): 한 시간짜리 영상을 20초로.

## 자주 묻는 질문

### 제 이미지가 어딘가로 업로드되나요?

아닙니다. 이미지를 읽고 합성하고 인코딩하는 일은 내 기기에서 도는 내 브라우저가 합니다. 이 도구에는 서버 쪽이라는 것이 없고, 이 페이지의 `Content-Security-Policy`에 연결해도 되는 주소가 전부 적혀 있는데 그중 이 사이트 것은 하나도 없습니다. 예외는 선택 기능인 "주소로 추가하기" 하나로, 붙여 넣은 이미지를 가져오면서 그 서버가 내 IP 주소를 보게 됩니다.

### 어떤 이미지 형식을 쓸 수 있나요?

브라우저가 디코딩할 수 있는 정지 이미지 형식은 다 됩니다. 실제로는 JPG, PNG, WebP, GIF, AVIF, 그리고 애플 기기에서는 HEIC입니다. 여기서 따로 관리할 목록이 없습니다. 디코딩은 우리가 아니라 브라우저의 일이니까요.

### 어떤 영상 형식으로 나오나요?

H.264 영상이 든 MP4입니다. 사실상 어디서나 재생됩니다. WebCodecs가 없는 브라우저에서는 대신 WebM으로 녹화하는 방식으로 넘어갑니다. 같은 영상이지만 편집 프로그램이 덜 받아 주는 컨테이너예요.

### 블렌더나 애프터 이펙트 렌더 시퀀스에 써도 되나요?

됩니다. 번호가 붙은 렌더 시퀀스야말로 이 도구가 노린 용도입니다. 렌더러가 써 낸 프레임을 넣고, 머무는 시간을 한 프레임 그대로 두고, 프레임 레이트를 렌더에 맞추세요. "이름순 정렬"이 사람이 기대하는 대로 세기 때문에 `frame_2`가 `frame_10` 뒤가 아니라 앞에 놓입니다. \
\
시작하기 전에 알아 두실 것이 하나 있습니다. H.264에는 알파 채널이 없어서, 투명한 부분은 그대로 전달되지 않고 배경색 위로 눌립니다. 알파를 지켜야 한다면 편집 프로그램에서 프레임을 합성하세요.

### 사진으로 타임랩스를 만들 수 있나요?

됩니다. 렌더 시퀀스와 같은 일입니다. 사진마다 한 프레임씩만 머무르게 하고 프레임 레이트를 고르세요. 30fps라면 사진 서른 장이 1초가 되고, 12fps라면 같은 사진들이 2.5초 동안 흐릅니다. \
\
"날짜순 정렬"은 카메라 롤을 찍은 순서대로 되돌려 놓는데, 파일 이름이 0001부터 다시 시작해 버린 경우에 중요합니다. 크기가 제각각인 사진도 괜찮습니다. "가장 높은 해상도에 맞추기"가 어느 것도 줄어들지 않도록 영상 크기를 정해 주니까요.

### 이미지 장수나 영상 길이에 제한이 있나요?

도구에 정해 둔 제한은 없습니다. 현실적인 한계는 기기의 메모리입니다. 완성된 영상이 내려받기 전에 거기서 조립되니까요. 아주 큰 4K 슬라이드쇼에서 가장 먼저 체감하게 됩니다.

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

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

### 오프라인에서도 되나요?

됩니다. 페이지를 한 번 불러온 다음 인터넷을 끊어도 계속 동작합니다. 아무것도 업로드되지 않는다는 가장 간단한 증명이기도 하고요. 이미지를 어딘가로 보내서 처리하는 도구라면 선을 뽑는 순간 멈춰 버릴 테니까요.

### 음악이나 배경음을 넣을 수 있나요?

아직 안 됩니다. 이 도구는 영상만 만듭니다. 여기서 쓰는 MP4에는 영상 트랙 하나만 있고 오디오 트랙이 없습니다. 배경음이 필요하다면 나중에 영상 편집 프로그램에서 넣으세요.

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

- **이미지는 나갈 곳이 없습니다.** 이 페이지가 연결해도 되는 주소는 Content-Security-Policy에 모두 적혀 있는데, 그중 이 사이트 것은 하나도 없습니다. 파일이 모일 만한 수신 지점이 없고, 설령 있더라도 거기로 파일을 보낼 코드가 없습니다. 예전에는 이 줄이 `connect-src 'none'`이었고 그건 절대적이었습니다. 광고를 넣으면서 그걸 잃었고, 그 사실을 말해 두는 것까지가 약속입니다.
- **인코딩은 내 기기에서 합니다.** WebCodecs는 내 브라우저 안에서 돌고, 완성된 파일은 곧바로 내려받기로 넘어갑니다. 이 앱에는 서버 쪽이라는 것이 없습니다.
- **구글이 불러오는 것과, 구글에게 주지 않는 것.** 광고와 측정 스크립트는 구글에서 옵니다. 어느 쪽에도 내 이미지에 관한 것은 넘어가지 않습니다. 파일도, 미리보기도, 이름도, 용량도, 개수도요. 이미지를 읽고 디코딩하고 합성하고 인코딩하는 코드는 한 줄도 빠짐없이 이 출처에서 제공되고 저장소에 공개되어 있습니다.
- **후원 버튼이 불러오는 것과, 후원 버튼이 받지 못하는 것.** 헤더의 "Buy me a coffee" 버튼은 cdnjs.buymeacoffee.com의 스크립트가 그리고, 글꼴은 Google Fonts에서 가져옵니다. 그저 링크일 뿐이에요. 방문을 보고하지도, 나에 관한 것이나 내 이미지에 관한 것을 받아 가지도 않습니다. 누르지 않으면 아무 일도 일어나지 않고, 눌러서 가게 되는 곳은 남의 사이트입니다.
- **일부러 둔 예외 하나.** "주소로 추가하기"를 쓰면 이미지를 가져오려고 그 서버에 연결하게 되고, 그쪽은 내 IP 주소를 보게 됩니다. 가져오는 것은 붙여 넣은 이미지뿐이고, 방향도 들어오는 쪽뿐입니다. `img-src`는 열려 있지만 `connect-src`는 아닙니다. 아래 카운터가 연결된 외부 출처를 전부 나열합니다.
- **오프라인에서도 동작합니다.** 네트워크를 끊어도 주소로 불러오기 말고는 전부 그대로 돌아갑니다. 가장 간단한 증거입니다.

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

먼저 읽어 볼 파일을 꼽자면, Content-Security-Policy는 `config/site.toml`, 네트워크에 손대지 않는 인코딩 반복문은 `src/encoder.js`에 있습니다.
