동영상 편집 프로그램에서 “빠른 자르기”나 “무손실 자르기”를 쓰면 저장이 몇 초 만에 끝나고 화질도 그대로입니다. 그런데 결과를 열어 보면 시작 지점이 내가 고른 곳보다 조금 앞에서 시작하는 경우가 있습니다. 프로그램 오류가 아니라 동영상이 저장되는 방식 때문인데, 그 열쇠가 키프레임입니다.
동영상은 모든 장면을 통째로 저장하지 않는다
동영상은 1초에 수십 장의 그림이 이어진 것이지만, 대부분의 동영상 파일은 그 그림을 모두 완전한 사진으로 저장하지 않습니다. 그렇게 하면 파일이 너무 커지기 때문입니다. 대신 이렇게 나눕니다.
- 키프레임(I 프레임): 그 장면 하나만으로 완전한 그림을 만들 수 있는 프레임
- P·B 프레임: 앞뒤 프레임과 “달라진 부분”만 적어 둔 프레임
키프레임 하나와 그 뒤에 이어지는 차이 프레임 묶음을 GOP(Group of Pictures)라고 부릅니다. (Wikipedia: Group of pictures, Video compression picture types)
차이 프레임은 혼자서는 그림이 되지 않습니다. 앞의 키프레임부터 차례로 계산해야 비로소 화면이 만들어집니다. 그래서 차이 프레임 한가운데에서 파일을 “그대로 잘라” 시작하면 재생기가 그릴 기준이 없어집니다.
무손실 자르기가 키프레임에 맞춰지는 이유
무손실 자르기(스트림 복사)는 영상을 다시 계산하지 않고 원본 데이터를 그대로 옮겨 붙이는 방식입니다. 다시 압축하지 않으니 빠르고 화질이 그대로지만, 시작점은 완전한 그림이 있는 키프레임이어야 합니다. 그래서 내가 고른 지점 바로 앞의 키프레임으로 시작점이 당겨집니다.
널리 쓰이는 공개 도구인 FFmpeg의 설명서도 같은 내용을 적고 있습니다. 대부분의 형식에서는 정확한 지점으로 바로 이동할 수 없어 그 앞의 가장 가까운 이동 지점으로 가며, 다시 인코딩할 때는 그 사이 구간을 계산해 버리지만 스트림 복사를 할 때는 그 구간이 그대로 남는다고 설명합니다. (FFmpeg 설명서: -ss 옵션)
무손실 자르기와 다시 인코딩, 언제 무엇을
| 구분 | 무손실 자르기(스트림 복사) | 다시 인코딩 |
|---|---|---|
| 화질 | 원본 그대로 | 설정에 따라 조금 떨어질 수 있음 |
| 속도 | 빠름(복사 수준) | 영상 길이와 PC 성능에 따라 오래 걸림 |
| 시작점 | 가까운 키프레임에 맞춰짐 | 원하는 프레임에서 정확히 |
| 어울리는 일 | 긴 녹화본에서 앞뒤 자르기, 구간 나누기 | 프레임 단위로 딱 맞춰야 하는 편집 |
긴 회의 녹화나 게임 녹화에서 앞뒤 대기 시간을 덜어 내는 일이라면 시작이 1~2초 앞당겨져도 큰 문제가 없습니다. 이럴 때는 무손실 자르기가 시간과 화질 모두에서 이득입니다. 반대로 광고 영상처럼 장면 전환에 정확히 맞춰야 한다면 다시 인코딩하는 편집 프로그램을 쓰는 것이 맞습니다.
원하는 지점에 가깝게 자르는 요령
- 조금 넉넉하게 잡기: 시작점은 앞으로 당겨질 수 있으니, 꼭 들어가야 할 장면보다 살짝 앞에서 시작하도록 고릅니다.
- 미리보기로 확인하기: 저장 전에 시작 지점을 재생해 보고, 앞에 원하지 않는 장면이 들어가는지 봅니다.
- 녹화할 때부터 대비하기: 쓰는 녹화 프로그램의 인코딩 설정에 “키프레임 간격” 항목이 있다면 확인해 보세요. 간격이 짧으면 나중에 자를 때 어긋남이 줄지만 파일은 커질 수 있습니다.
- 정확도가 필요한 구간만 다시 인코딩: 전체를 다시 압축하지 말고, 앞부분 몇 초만 따로 다듬는 방법도 있습니다.
합치기와 나누기에서도 같은 원리
여러 파일을 무손실로 합칠 때도 키프레임과 형식이 중요합니다. 해상도, 코덱, 프레임 속도가 서로 다른 파일은 다시 계산하지 않고는 자연스럽게 이어 붙이기 어렵습니다. FFmpeg의 이어 붙이기 설명서도 모든 파일이 같은 스트림(같은 코덱, 같은 시간 기준 등)을 가져야 한다고 적고 있습니다. (FFmpeg 설명서: concat) 같은 장비와 같은 설정으로 녹화한 파일끼리 합치면 문제가 적습니다. 용량이나 시간 기준으로 나눌 때도 나뉘는 지점이 키프레임에 맞춰지므로, 각 조각의 길이가 정확히 같지 않을 수 있습니다.
격상컷의 고속 모드
GyeokSang이 만든 격상컷은 자르기·나누기·합치기를 하는 윈도우 프로그램이고, 개인 사용은 무료입니다. 고속 모드는 이 글에서 설명한 무손실 방식으로, 화질 손실 없이 원본 그대로 저장하며 시작점은 가까운 키프레임에 맞춰진다고 프로그램 안에서도 안내합니다. 여러 구간을 지정해 하나의 파일로 합치거나, 개수·시간·용량 기준으로 나누는 기능도 있습니다.
어떤 도구를 쓰든 “빠르고 화질 그대로”와 “프레임 단위로 정확히”는 함께 얻기 어렵다는 점만 기억하면, 결과가 몇 초 어긋나도 당황하지 않고 맞는 방법을 고를 수 있습니다.