2011. 4. 5. 12:48ㆍIT/Computer Tips
요즘 FullHD급 고화질 영상이 많아지면서 MKV 라는 컨테이너를 자주 접하게 된다. 간혹 여러 파일로 나뉜 MKV 파일이 있는데 MKV Merge라는 프로그램을 사용하면 영상의 손상 없이 MKV 영상을 자르거나 합칠 수 있다. 흔히 사용하는 다른 동영상 인코더는 대부분 영상을 붙이고 자르는 것이 아니라 재 인코딩 과정을 거치므로 영상이 손상될 가능성이 있다.
일단 MKVToolnix를 내려받아야 한다. MKVToolnix 4.6.0을 클릭해 현재 최신판인 4.6.0 버전을 내려받는다. 항상 최신 버전을 내려받으려면 MKVToolnix 내려받기에서 Windows 부분을 찾아 a 7zip archive 링크를 클릭한다. 파일을 내려받으면 압축을 풀고 mmg.exe 파일을 실행한다.
[add] 단추를 누르고 작업할 파일을 선택하면 위 그림처럼 Input files에 선택한 파일이 표시되고 Tracks, chapters and tags에 파일에 포함된 영상, 음성, 자막 등 각 세부 항목이 표시된다. 2 부분에서 샘플 영상에 AVC 코덱을 사용한 영상과 DTS 코덱을 사용한 음성이 포함된 것을 확인할 수 있다.
1. mkv 영상 자르기
mkv 영상을 여러 개로 분할하려면 Global 탭으로 이동해서 [Enable splitting]을 선택한다.
영상 분할 방식은 세 가지가 있다. after this size은 지정한 크기로 파일을 자르는 것이다. G, M, K로 기가바이트(10243), 메가바이트(10242), 킬로바이트(1024)를 의미한다. after this duration은 지정한 시간을 기준으로 파일을 나누는 것이다. 00:30:11.382처럼 HH:MM:SS.nnn 방식을 사용하거나 1800s처럼 초 뒤에 s를 붙여서 사용할 수 있다. 시간 표시에서 HH와 nnn은 생략할 수 있다. 즉, 30:11이라고 쓰면 영상 시작 후 30분 11초마다 파일을 자른다. after timecodes 역시 시간 표현 방식은 duration 방식과 같다. 그러나 이 방식은 여러 파일로 분할할 때 각 파일을 내가 원하는 시간에 맞춰 분할할 수 있다. 각 파일의 시간을 쉼표(,)로 구분해서 입력하면 된다. 예를 들어 03:00,3000s,08:11이라고 입력하면 영상을 시작 후 ~ 3분, 3분 ~ 5분, 5분 ~ 8분 11초, 8분 11초 ~ 영상 끝 이렇게 자른다.
max. number of files에서 분할할 파일의 최대 개수를 정한다. after this duration에 10:00이라고 입력하고 max. number of files에 5을 입력하면 0~10분, 10~20분, 20~30분, 30~40분 파일이 만들어지고 40~영상 끝 파일이 마지막으로 생성된다.
여기서 주의할 점은 정확한 용량, 시간으로 분할되진 않는다는 것이다. 키프레임 단위로 분할하는데 3분마다 자르도록 지정해도 3분, 3분 4초, 3분 9초와 같이 각 파일의 시간이 다를 수 있다.
분할 설정이 끝났으면 프로그램 창 아래의 [Output filename]에서 저장 위치와 파일 이름을 지정한다. 예를 들어 sample-split.mkv라고 지정했다면 실제 분할된 파일은 sample-split-001.mkv, sample-split-002.mkv, ... 와 같은 식으로 저장된다.
이제 영상 분할을 위한 설정이 끝났다. 프로그램 창 맨 아래의 [Start muxing]을 누르면 영상 파일이 사용자의 설정에 따라 분할 저장된다.
2. mkv 영상 합치기
여러 개로 나뉜 mkv 영상을 합치려면 먼저 [Input] 탭에서 [add] 단추를 누르고 첫 번째 영상을 추가한다.
그다음 [append] 단추를 누르고 두 번째 영상을 추가한다. 또 [append] 단추를 누르고 세 번째 영상을 추가한다.
합칠 영상 조각을 모두 추가했으면 [Output filename]에서 합쳐질 새로운 영상 파일 이름을 지정한다. 이제 [Start muxing]을 누르면 영상 파일이 하나로 합쳐진다.
영상을 합치는 과정에서 위 그림처럼 합쳐진 부분이 매끄럽지 않을 수도 있다는 경고 문구가 나올 수도 있다. 상황에 따라 차이가 있는 듯하지만, 대부분 영상 시청이 심각한 지장을 줄 정도의 문제는 없었다. 보통 매끄럽게 연결되고 간혹 연결 부위에 띡! 하는 느낌으로 끊기는 느낌이 들 수도 있다.
3. mkv 영상에 자막 추가하기
mkv 영상에 원하는 자막을 추가해보자. 그런데 MKVToolnix에선 흔히 사용하는 SMI 자막이 아닌 SRT 자막만을 지원한다. SRT 자막이 있다면 상관없지만, 아니라면 SMI 자막을 SRT로 바꿔야 한다. 간단한 두 가지 프로그램을 소개한다.
첫 번째는 smi2srt.exe라는 파일이다. 원본의 출처는 정확하지 않다. 인터넷에 떠도는 자료를 내려받았다. 혹시나 걱정하는 사용자를 위해 VirusTotal 검사 결과 페이지를 덧붙인다.
smi 파일이 저장된 폴더에 smi2srt.exe 파일을 복사하고 실행하면 알아서 srt 파일로 변환된다.
두 번째는 Uzys SRT↔SMI Converter다. 제작자 블로그에서 최신 파일을 내려받을 수 있다.
Uzys SRT↔SMI Converter를 실행하고 SMI 파일을 끌어놓기 한 다음 [Run]을 클릭하면 자동으로 SRT 파일로 변환된다. 단, 프로그램을 실행하려면 시스템에 .NET Framework 3.5 SP1이 설치되어 있어야 한다. 설치되어 있지 않은 사용자는 세 번째 링크된 파일을 내려받고 setup.exe를 실행하면 .NET Framework 3.5 SP1이 설치된다.
이제 MKVToolnix를 실행하고 mkv 영상 파일과 변환한 srt 자막 파일을 [add]로 추가한다. [Output filename]에서 저장할 파일 이름을 지정하고 [Start muxing]을 누르면 자막 추가 작업이 시작된다.
잠시 기다리면 자막 추가가 완료된다.
자막을 추가한 파일을 다시 MKVToolnix에 추가하면 위 그림처럼 S_TEXT/UTF-8 (type: subtitles)라는 항목을 확인할 수 있다.
영상을 재생해보면 자막이 추가된 것을 확인할 수 있다.
MKVToolnix를 사용하면 인코딩이 아닌 컨테이너(파일을 담고 있는 그릇?)에 영상, 음성, 자막 등을 넣고 빼는 먹싱 과정을 거치므로 화질이나 음질의 손상 없이 파일을 자르고 합칠 수 있다. 작업 시간 또한 인코딩과는 비교할 수 없을 만큼 빠르다. 자막이 추가된 mkv 파일을 자른 다음 다시 합쳤을 땐 연결 부위에 상당한 공백이 생기는 현상을 확인했으니 자막이 추가된 파일을 자르거나 합칠 땐 자막을 먼저 제거한 다음 작업할 것을 추천한다.