2010년 2월 28일 일요일

MKV 동영상 자르기

MKV 파일은 프레임이나 초 단위로 정확히 잘라지지 않습니다. I 프레임(키 프레임) 단위로만 잘라집니다. 그리고 특정 구간을 잘라낸다기 보다는 그냥 통 파일을 몇 개의 조각으로 저장하는 방식입니다.

 

준비물 다운로드

 

 

 

 

압축 풀고 mmg.exe 파일을 실행합니다.

add 눌러서 MKV 동영상 파일을 불러옵니다.

 

 

 

 

그런 다음 Global 탭에서 잘라주시면 되는데 사용 가능한 타임코드에 대한 설명입니다.

 

 

예를 들어 동영상의 5분 00초부터 10분 00초까지를 잘라내고 싶다면

05:00, 10:00 이라고 적어도 되고, 300s, 600s 라고 적어도 됩니다.

그러면 총 3개의 파일로 분할됩니다.

0~5분, 5~10분, 10분~끝까지

 

마지막 구간이 너무 긴 경우 중간 부분이 지나간 다음에는 작업을 취소해버려도 됩니다. 어차피 필요한 구간은 중간 부분일 테니까요.

 

 

 

 

이렇게 잘라주면 총 3개의 파일이 생성되겠지요.

 

 

 

 

그런데 처음에 말씀드렸듯이 정확히 원하는 구간이 잘리지는 않습니다. 키 프레임 단위로 잘라내기 때문입니다. x264로 인코딩된 동영상의 경우 P, B 프레임이 많이 사용되어서 그런지 키 프레임 간격이 꽤 넓을 때가 있습니다. 위에서 잘라낸 동영상도 첫번째 파일은 5분 3초로 잘렸지만 두번째 파일은 4분 57초로 잘렸습니다. 정확히 5분, 5분 이렇게 잘리지는 않았다는 말입니다.

 

※ 제가 이 글 다 쓰고나서 생각이 났는데 MeGUI x264 기본 옵션에는 GOP 단위가 최소 25 최대 250으로 설정되어 있습니다. 보통 그 설정값은 그대로 두고 인코딩을 하니 결국 키 프레임 단위는 최소 1초에서 최대 10초 정도로 잡히겠군요.

 

 

 

 

이 툴이나 AVI Mux GUI 프로그램을 제외하면 나머지 mkv 자른다는 프로그램들은 전부 재인코딩 프로그램일 것입니다. 게다가 대부분 상용이지요. 따라서 재인코딩 없이 원본의 품질을 그대로 유지한 채 잘라내려면 이 툴을 사용하셔야 합니다. 키 프레임 단위로만 자를 수 있는게 매트로스카의 특성인지 CLI 계열 코덱의 특성인지는 잘 모르겠습니다. 예전에 x264 VFW의 경우도 버추얼 덥에서 프레임 단위로 잘리지 않았던 것을 생각해보면 x264 코덱의 특성 같기도 하구요. 저도 전문가가 아니니 이 부분에 대해서는 더이상 깊게 생각해보지 않겠습니다. 아무튼 칼같은 컷팅은 안 되지만 그래도 MKV 파일은 이 프로그램으로 자르시면 됩니다.

 

 

 

이대로 그냥 끝내도 되지만 제가 성격이 좀 그래서... 궁금한건 확인해보는 스타일입니다. 결국 원본 파일의 5분 근처와 10분 근처의 키 프레임을 찾아봤습니다. 그랬더니 5분 근처에서는 4분 53초와 5분 3초에서 키 프레임이 등장했고 10분 근처에서는 딱 10분에 키 프레임이 등장하였습니다. 그랬기 때문에 위 결과 파일이 5분 3초와 10분 0초에서 컷팅된 것입니다. 사실 뭐 이런 것까지는 모르셔도 되지만 왜 정확히 잘리지 않는가에 대해서는 대충 알고 사용하셔야 할 것 같아서 짧은 지식으로 설명 드렸습니다.

 

댓글 7개:

  1. 헛.. 1등인가.



    요즘 외도가 잦으시는거 같아요..ㅎㅎㅎ;;

    답글삭제
  2. @다이이지 - 2010/02/28 23:19
    잠수 풀었어요. 하지만 예전같이 왕성하게는 글 올리지 않을 생각입니다.

    답글삭제
  3. 2등이군 ㅎㅎ

    책빨리써주세요 ^^

    답글삭제
  4. 키프레임단위로밖에 안잘리는 이유는 아마도 264코덱때문일겁니다.

    이 코덱의 특성이 키프레임을 그대로 둔 상태로 다음 프레임에서 변하는 픽셀부분의 데이터만 바꾸는 방식이라 키프레임을 지우면 그 뒤의 프레임들이 변하는 픽셀데이터만 남고 나머지는 모두 깨져나오거든요. MKV뿐만아니라 264코덱영상을 사용한 AVI컨테이너에서도 동일현상이 일어나는걸 보아 맞을 것 같습니다.

    그리고 저는 Haali Matroska Splitter를 쓰는데 이것도 재인코딩 없이 분할하는 프로그램이라 괜찮더군요^^

    답글삭제
  5. 시간입력 할 때

    10:00.325인가 10:00:354인지 모르겠는데

    이렇게 하면 더 정확히 잘리는 것 같습니다

    저번에 mkv파일 잘라낼 일이 있어서 몇번 해보고 그 이후에는 안해봐서 정확한건지는 모르겠네요



    시간뒤에 수치는 mkv파일 불러와지는 버추얼덥으로불러와서 확인 후 입력했었습니다

    답글삭제
  6. @게슴츠레 - 2010/03/06 14:12
    세부 시간에 관계없이 가까운 I 프레임 기준으로 잘립니다. 위 경우라면 05:00이든 05:01이든 05:02이든 전부 05:03에서 잘립니다. I 프레임이 05:03에 있기 때문입니다.

    답글삭제