キレ

동영상 합치기

브라우저에서, 업로드 없이

MP4

여러 클립 → MP4 하나 · 설정이 같으면 그대로

동영상

동영상 → MP4

규격

9개 항목
동영상 합치기 규격
항목값비고
입력동영상 두 개 이상MP4, MOV, WebM, AVI… 섞여도 된다
출력MP4, H.264 + AAC첫 클립의 크기로
순서고른 순서한 번에 고른 파일은 목록 순서대로
같은 설정저장된 그대로 잇기코덱·크기·소리·회전이 같으면 엔진 없이, 재인코딩 없이
영상H.264로 다시 인코딩x264, veryfast 프리셋, CRF 23
소리AAC 128 kbps소리 없는 클립은 무음
걸리는 시간시작 전에 잰다이 기기에서 2초를 시험 인코딩
엔진이 브라우저의 인코더, 또는 FFmpeg(16.8 MB)FFmpeg는 브라우저가 못 할 때만, 받는다고 적힌 버튼을 눌러야 받는다
처리 위치이 브라우저서버로 보내지 않음

무엇이 일어나나

7개
무슨 일이, 왜 일어나나

동영상 두 개 이상을 고른 순서대로 파일 하나에 담는다. 클립은 서로 다른 휴대폰과 카메라에서 왔어도, 형식이 달라도 된다. 결과는 영상 H.264, 소리 AAC의 MP4 하나다.

같은 설정으로 찍은 클립 — 휴대폰 하나, 카메라 모드 하나 — 은 저장된 그대로 잇는다. 파일을 고르자마자 코덱과 그 설정, 화면 크기, 프레임 시간, 소리 형식, 회전이 첫 클립과 같은지 파일에서 읽어 확인한다. 같으면 화면과 소리가 한 클립에서 다음 클립으로 그대로 이어지고, 다시 인코딩하지 않으며, 엔진도 받지 않고 몇 초면 끝난다. 배지는 “다시 인코딩하지 않음”이다. 클립마다 소리를 제 화면이 시작하는 곳에 놓으므로, 클립이 몇 개든 소리와 화면이 어긋나지 않는다.

서로 맞지 않는 클립은 그냥 이어 붙일 수 없어서, 전부 하나의 모양으로 다시 인코딩한다. 그 모양은 첫 클립이 정한다. 크기 — 뒤의 클립은 그 안에 맞춰 줄이거나 늘리고, 비율이 다른 곳은 검은 여백으로 채운다 — 와 프레임 레이트(최대 초당 60프레임). 소리는 48 kHz 스테레오 AAC 128 kbps가 되고, 소리가 없는 클립은 그 길이만큼 무음으로 채워 뒤의 클립이 제 영상과 어긋나지 않게 한다.

합치기 전에 클립을 잘라 내려면 먼저 동영상 자르기 페이지를 쓰면 된다. 그쪽은 다시 인코딩하지 않고, 같은 카메라의 동영상에서 잘라 낸 클립은 여기서도 저장된 그대로 이어진다.

먼저 브라우저 자신에게 묻는다. 브라우저에는 화상통화·화면 녹화에 쓰는 동영상 인코더가 들어 있고 — H.264, VP9, AAC, Opus, 대개 그래픽 칩으로 — 이 브라우저가 그것으로 파일을 읽고 결과를 쓸 수 있으면 그렇게 한다. 아무것도 받지 않고, 걸릴 시간은 여기서 먼저 재며, 배지 아래 줄이 브라우저의 인코더가 했다고 적는다. MP4·MOV·WebM·MKV 파일은 대개 그렇게 된다. AVI·WMV·FLV는 안 되고 MP3로 만드는 것도 안 되므로, 그것들은 아래 방식으로 간다.

작업은 FFmpeg가 한다. 대부분의 동영상 소프트웨어가 그 위에 지어진 프로그램이고, 이 페이지 안에서 돌도록 WebAssembly로 옮긴 것이다. 크기가 크다 — 16.8 MB — 그래서 받는다고 적힌 버튼을 누르기 전에는 받지 않는다. 받은 뒤에는 파일을 읽고, 가운데에서 2초를 시험 삼아 인코딩해, 전체가 이 기기에서 얼마나 걸릴지를 시작하기 전에 알려 준다. 그 숫자는 표에서 가져온 것이 아니라 여기서 잰 것이다 — 같은 엔진과 설정, 당신의 프로세서, 당신의 동영상. 그래도 추정이고, 화면에 추정이라고 적는다.

컴퓨터에 설치하는 프로그램보다 느리다. 여기서 FFmpeg는 프로세서 코어 하나로 돈다. 브라우저는 사이트가 특정 보안 헤더를 달고 있을 때만 여러 코어를 쓰게 해 주고, 그래픽 칩의 동영상 인코더는 아예 쓰게 해 주지 않는다. 긴 고해상도 동영상은 몇 분씩 걸릴 수 있고 휴대폰에서는 더 걸린다. 그래서 시작하기 전에 예상 시간을 보여 주고, 도는 동안에는 남은 시간을 보여 주며, 취소를 누르면 바로 멈춘다. 브라우저 자체 인코더로 될 때는 훨씬 빠르고 아무것도 받지 않는다.

자주 묻는 질문

6개
언제 다시 인코딩하지 않나

모든 클립이 첫 클립과 같은 설정 — 같은 코덱과 설정, 화면 크기, 소리 형식, 회전 — 으로 찍혔을 때다. 휴대폰 하나로 같은 카메라 모드에서 찍은 클립이 그렇다. 하나라도 다르면 몇 번 클립이 다른지 알려 주고 다시 인코딩한다. 이은 자리에서는 소리가 화면과 최대 소리 프레임 하나, 약 50분의 1초까지 어긋날 수 있다. 다시 인코딩하지 않는 모든 합치기가 그렇고, 클립을 지날수록 쌓이지는 않는다.

순서를 바꿀 수 있나

순서는 파일을 고른 순서다. 바꾸려면 다른 동영상을 누르고 새 순서대로 다시 고르면 된다.

세로 클립과 가로 클립을 섞으면

세로 클립은 모양을 유지한 채 첫 클립의 화면 안에 맞춰지고 양옆이 검은 여백이 된다. 세로 클립을 맨 앞에 두면 전체가 세로 동영상이 된다.

왜 이렇게 오래 걸리나

모든 프레임을 디코드해서 다시 인코드하는데, 그것을 브라우저 안에서 프로세서 코어 하나로 하기 때문이다. 설치형 프로그램은 코어를 전부 쓰고 대개 그래픽 칩의 인코더도 쓴다. 웹 페이지는 기본으로 둘 다 받지 못한다. 대신 이 페이지는 시작하기 전에 이 기기에서 얼마나 걸릴지를 재어 알려 주므로 기다림이 뜻밖일 일은 없다.

휴대폰 메모리가 모자라면

페이지가 멈추고 메모리가 모자랐다고 말한다. 반쪽짜리 파일을 내주지 않는다. 넣은 동영상은 디스크에서 조각조각 읽고 통째로 메모리에 올리지 않지만, 새 파일은 끝날 때까지 메모리 안에서 만들어지므로 길고 해상도가 높은 동영상은 휴대폰에 벅찰 수 있다. 더 짧은 클립, 더 작은 크기, 또는 컴퓨터라면 된다.

동영상이 업로드되나

아니다. 엔진을 브라우저로 받아 오고, 파일은 거기서 읽고 쓴다. 이 사이트에는 업로드 주소 자체가 없으므로 동영상이 갈 곳이 없다.

관련 규격

3개