레이블이 인코딩인 게시물을 표시합니다. 모든 게시물 표시
레이블이 인코딩인 게시물을 표시합니다. 모든 게시물 표시

2010년 4월 24일 토요일

DVD에서 SUB 자막 추출하여 SMI로 변환하기

개인이 자막 작업을 할 일은 별로 없겠지만 관심있는 분 계실까봐 올려둡니다.

 

DVD에 포함된 자막은 텍스트 형식이 아닙니다. 그래픽 형태이기 때문에 SMI 자막을 만드려면 직접 보면서 타이핑을 해야 합니다. 그런데 OCR 이라는 문자 판독 기능으로 어느정도 자동화가 가능합니다. 영어 자막의 경우 매우 정확하고 빠르게 진행이 가능하지만 한글 자막은 음절 단위가 워낙 많기 때문에 초반에 매트릭스를 구성하는데 시간이 많이 걸립니다. 직접 해보시면 아마 자막 제작하시는 분들의 노고를 이해하실 수 있을 것입니다.

 

 

 

 

 

먼저 SUB, IDX 파일을 추출해야 합니다. VSRip 프로그램을 실행하여 DVD 원본에서 메인 비디오 트랙의 IFO 파일을 불러옵니다. 그리고 Save To 에는 저장할 위치를 지정해줍니다.

 

 

 

Next 누르시면 추출할 자막을 선택하는 부분이 나오는데 다른건 그대로 두시고 추출할 Languages 부분만 선택한 다음 Next 누르시면 SUB, IDX 추출이 시작됩니다.

 

 

 

한 1-2분이면 추출 될 겁니다. 추출이 끝나면 종료하시면 됩니다.

 

 

 

이렇게 추출된 SUB, IDX 파일은 그냥 자막 파일로 바로 써도 됩니다. 웬만한 동영상 재생기들은 전부 다 인식을 합니다. 동영상 이름과 동일하게 SUB, IDX 파일의 이름을 변경해주시면 SMI 자막처럼 자동으로 인식합니다.

 

어쨌든 이 글의 목적은 추출한 파일을 가지고 SMI 자막을 만드는 것이니 다음으로 넘어가겠습니다.

 

제가 처음에는 이렇게 SUB, IDX 파일을 분리하지 않고 바로 SubRip 이라는 프로그램으로 작업을 해봤습니다. 그런데 영어 자막의 경우 나중에 오타 교정도 되고 매우 편리했지만 한글 자막의 경우 OCR 설정을 좀 해봤으나 뭔가 좀 안 좋더군요. 대신에 OCR 기능을 사용하지 않고 그냥 보면서 직접 타이핑 하기에는 좋았습니다. 궁금하신 분들은 SubRip도 한번 사용해보시기 바랍니다.

 

아무튼 이제 subresync 프로그램을 실행합니다. 이 프로그램은 VobSub 프로그램 안에 들어있는 툴인데 원래는 VobSub 프로그램으로도 SUB, IDX 추출이 가능하지만 윈도우 7 64비트 환경에서 정상적으로 작동하지 않길래 이렇게 VSRip 프로그램으로 먼저 추출하고 subresync 프로그램으로 SMI 파일을 만드는 쪽으로 설명을 드립니다.

 

subresync 프로그램을 실행하여 방금 추출한 SUB 파일을 불러줍니다. 그런 다음 Save As를 눌러서 형식을 SMI로 변경한 다음 저장 하시면 본격적으로 작업이 시작됩니다.

 

 

 

 

지금부터 열심히 노가다로 글자를 입력해주시면 됩니다. 한번 입력했던 글자가 다시 등장하면 그 다음엔 자동으로 인식해서 채워집니다.

 

 

 

 

진행하다 보면 완전한 음절 단위가 아닌 음소 단위로 잡히는 경우가 있습니다. 이때는 Extend 눌러서 영역을 확장시켜주시면 됩니다. 아래 그림은 '마' 라는 음절에서 'ㅁ' 부분만 선택된 상태입니다. 이런 경우 Extend 누르면 '마' 가 선택됩니다.

 

 

 

 

처음엔 DB 구축하는데 시간이 오래 걸리지만 대략 20~30% 진행되고나면 가속도가 붙어 척척 넘어가게 됩니다. 웬만하면 같은 음절로 자동 인식이 되어버리니까요. 물론 어디까지나 그림은 그림일 뿐이고 OCR이 완벽한건 아닙니다. 잘못 인식해서 오타가 날 수도 있고, 실수로 한번 오타를 입력하면 그 이후로는 끝까지 동일한 오타를 자동으로 입력하게 될테니 신중하게 하셔야 합니다. 끝까지 다 하신 다음엔 SMI 파일을 텍스트 에디터로 열어서 직접 눈으로 보며 오타 교정을 해주는게 좋겠지요?

 

이렇게 SUB 자막을 변환하는 것 말고 직접 자막을 수동으로 제작하려는 경우 '한방에'라는 프로그램과 SMISyncW라는 프로그램을 많이 사용합니다. 한방에는 제작자 홈피가 문을 닫은 것 같고 SMISyncW는 홈피가 있습니다.

 

한방에

 

 

 

 

SMISyncW - http://simiy.cafe24.com/

 

 

사용법은 저도 자막 제작자가 아니라서 잘 모르니 검색을 통해 배우시기 바랍니다. 싱크 조절이나 2CD 자막 하나로 합치는 것 정도는 할 줄 아는데 그건 나중에 포스팅하겠습니다.

2010년 3월 6일 토요일

WMV 동영상 자르기

재인코딩 없이 동영상 원본 품질 그대로 자르기 시리즈의 마지막인 WMV 파일입니다. WMV 파일은 MS가 만들었으니 MS의 프로그램을 사용하는게 가장 좋겠지요.

 

윈도우 미디어 인코더 9 버전으로 가능합니다.

 

32비트 한글판

http://download.microsoft.com/download/7/a/c/7acbc6a7-7197-4efe-abf7-dbd0d11605e1/WMEncoder.exe

 

64비트 영문판

http://download.microsoft.com/download/0/5/1/05150d9b-59dd-453c-8483-d618cec12b12/WMEncoder64.exe

 

 

64비트는 한글판이 없습니다. 영문판과 일본어판만 있더군요.

 

Windows 미디어 - 유틸리티 - Windows Media 파일 편집기 를 실행합니다.

저는 64비트라 영문판 설치했으니 영문판으로 설명드리겠습니다.

 

먼저 파일 불러주신 다음 미리보기 화면에 있는 슬라이드를 움직여가면서 우측 하단에 보이는 마크 인마크 아웃 으로 시작과 끝 부분을 설정합니다. 또는 하단에 보이는 두번째 슬라이드로 굵은 막대를 직접 움직여서 바로 설정해주셔도 됩니다.

 

 

 

 

구간을 설정하셨다면 이제 바로 다른 이름으로 저장해주시면 끝입니다.

파일 - 다른 이름으로 저장 및 인덱스

영문판에선 File - Save As snd Index

 

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초에서 컷팅된 것입니다. 사실 뭐 이런 것까지는 모르셔도 되지만 왜 정확히 잘리지 않는가에 대해서는 대충 알고 사용하셔야 할 것 같아서 짧은 지식으로 설명 드렸습니다.

 

AVI 동영상 자르기

질문을 보니 생각이 나서 간단히 올려봅니다.

 

버추얼 덥 다운로드

 

 

 

 

버추얼 덥을 실행하시고 File - Open video file 에서 AVI 파일을 불러옵니다.

웬만하면 문제가 없겠지만 만약 코덱이 없어서 AVI 파일을 열 수 없다면

ffdshow 코덱을 한번 설치해보세요. 그럼 잘 열릴 것입니다.

 

 

 

 

 

파일을 성공적으로 열었다면 슬라이드바를 움직여가며 적절한 구간을 찾아 하단에 있는 좌우 화살표 버튼을 이용하여 시작 지점과 끝 지점을 선택합니다.

 

 

 

 

구간을 선택하셨다면 Video - Direct stream copy 를 선택합니다.

 

 

 

 

이게 끝입니다. 이대로 File - Save as AVI 하셔서 저장하시면 됩니다.

 

 

 

제가 최근에 계속 재인코딩 없이 잘라만 주는 작업을 강조하고 있는데 이는 화질이나 음질의 손실 없이 원본 그대로의 품질을 유지하기 위함입니다. 이렇게 버추얼 덥으로 Direct Stream Copy 하시면 원본 그대로 잘라낼 수 있습니다. 반면 대부분의 자르기 프로그램들은 재인코딩 과정을 거쳐 품질의 손실을 입게 됩니다. 또한 거의 다 상용 프로그램입니다.

2010년 2월 27일 토요일

MeGUI로 2패스 인코딩시 1패스와 2패스 스크립트를 다르게

별거 아닌 간단한 팁인데 예전에 컴갤에서 누가 질문했던 것 같아서 올려봅니다.

 

LimitedSharpenFaster 같이 속도가 많이 느린 필터들은 2패스 인코딩시 1패스에도 적용하면 시간을 많이 잡아먹습니다. 또한 FFT3DGPU 역시 MT 필터와 호환되지 않기 때문에 1패스에 적용하면 MT 필터를 포기해야 되어서 1패스 속도가 많이 느려지게 됩니다. 어차피 1패스는 비트레이트 계산을 위한 날림 패스이기 때문에 1패스에까지 속도 느린 필터를 적용할 필요는 없습니다. 따라서 1패스에는 이러한 필터들을 적용하지 않고 2패스에만 적용하면 시간을 절약할 수 있습니다.

 

 

1패스 예제)

SetMTMode
LoadPlugin("C:\Program Files (x86)\megui\tools\dgindex\DGDecode.dll")
LoadPlugin("C:\Program Files (x86)\megui\tools\avisynth_plugin\ColorMatrix.dll")
Load_Stdcall_Plugin("C:\Program Files (x86)\megui\tools\yadif\yadif.dll")
DGDecode_mpeg2source("source.d2v", info=3)
ColorMatrix(hints=true, interlaced=true, threads=0)
Yadif(order=-1)
crop( 2, 0, -2, 0)
LanczosResize(1280,720)
#FFT3DGPU
#LimitedSharpenFaster

 

 

예를 들어 위 스크립트처럼 FFT3DGPU, LimitedSharpenFaster 필터는 제외한 상태로 작업을 시작합니다.

일단 1패스 작업이 시작되면 바로 스크립트를 메모장으로 열어서 2패스용으로 수정후 저장 해주시면 됩니다.

간단하죠? ㅎㅎ

 

즉 일단 1패스 작업이 시작되면 이미 기존 스크립트는 메모리에 입력된 상태이기 때문에 이걸 수정해서 저장해도 1패스에 영향을 주지 않습니다. 이걸 수정해서 저장하면 2패스 시작할 때 다시 적용됩니다.

 

 

2패스 예제)

#SetMTMode
LoadPlugin("C:\Program Files (x86)\megui\tools\dgindex\DGDecode.dll")
LoadPlugin("C:\Program Files (x86)\megui\tools\avisynth_plugin\ColorMatrix.dll")
Load_Stdcall_Plugin("C:\Program Files (x86)\megui\tools\yadif\yadif.dll")
DGDecode_mpeg2source("source.d2v", info=3)
ColorMatrix(hints=true, interlaced=true, threads=0)
Yadif(order=-1)
crop( 2, 0, -2, 0)
LanczosResize(1280,720)
FFT3DGPU

LimitedSharpenFaster

 

 

위 예처럼 2패스에선 MT 필터를 아웃시키고 FFT3DGPU, LimitedSharpenFaster 필터를 넣었습니다.

 

 

제가 이 글을 올린 이유는... 혹시라도 2패스 작업 걸어놓고 2패스는 Postponed 시킨 다음 1패스 끝나면 다시 스크립트 열어서 수정한 다음 2패스를 시작하는 분들이 계실까봐 그럴 필요 없다는 것을 알려드리려고...

 

사실 제가 예전에 그렇게 했습니다. ㅠㅠ

2010년 2월 23일 화요일

동영상에서 소리만 추출하기

이 글은 완전 초보 분들을 위해 작성되었습니다.

 

 

준비물 다운로드

 

 

 

 

이 프로그램으로 소리를 추출할 수 있는 동영상의 종류는 avi와 mkv입니다. 다른 형식들은 이 프로그램으로 추출할 수 없고 다른 프로그램을 사용해야 합니다. 원래 소리 추출하라고 만들어진 프로그램은 아니지만 무설치에 용량도 작기 때문에 이 프로그램으로 설명드립니다.

 

그림 3장으로 설명을 마치겠습니다.

 

 

 

 

이대로 끝내면 너무 허전할 것 같아 약간 더 설명을 드리자면

 

첫번째 그림에서

원본 파일을 불러올 때 드래그 앤 드롭으로 해도 되지만

저 박스 안에 우클릭 하면 add 버튼이 나옵니다. 그거 눌러서 원본 파일 지정해주셔도 됩니다.

 

두번째 그림에서

불러온 원본 파일을 더블클릭 해도 되지만

그냥 한번 선택만 하고 바로 아래에 있는 generate data source from files 버튼을 누르셔도 됩니다.

 

 

 

블로그 메인에 너무 재미없는 글이 걸려있는 것 같아서 이 글을 올려두는 것입니다. 컴백은 아닙니다.

2010년 2월 21일 일요일

RE : 동영상과 오디오의 싱크를 맞출 때, 파일을 잘라내지 않고 싱크만 맞춘다면?

이 글은 동해랑님의 질문에 대한 답변 트랙백입니다.

 

질문 : 동영상과 오디오의 싱크를 맞출 때, 파일을 잘라내지 않고 싱크만 맞춘다면?

 

먼저 오디오의 원본 상태를 유지한다는 말에 대해 2가지 해석이 가능합니다. 말 그대로 원본 해시값 그대로 동일한 파일을 보존하고 싶다는 것인지, 아니면 재인코딩 과정을 거치지 않고 원본의 음질을 그대로 유지하고 싶다는 것인지 입니다.

 

저는 후자의 뜻으로 해석했습니다.

 

예를 들어 MeGUI에 들어있는 Aften이나 FFmpeg로 딜레이만 컷팅 한다면 이는 재인코딩 과정을 거치게 되므로 동일한 비트레이트를 유지하더라도 음질의 손실을 입게 됩니다. 하지만 DelayCut 프로그램은 그렇지 않습니다. 이 프로그램은 재인코딩 과정 없이 바이너리 컷팅으로 파일을 다룹니다. 따라서 아무런 음질의 손실 없이 원본의 음질 그대로 유지가 됩니다.

 

샘플로 HDTV 녹화해서 ac3 파일 1분 분량을 추출했습니다. 그리고 DelayCut 프로그램으로 앞부분 30초를 잘라냈습니다. 즉 원본은 1분짜리이고 수정본은 30초짜리입니다.

 

그리고 Compare It 이라는 프로그램으로 비교를 해봤습니다.

 

 

 

위 스샷의 좌측 막대를 보면 절반은 녹색이고 절반은 흰색입니다. 즉 앞부분 절반은 전혀 다르다는 말이고 뒷부분 절반은 완전 동일하다는 말입니다. 우측 수정본은 앞부분이 공백인데 실제로 파일 앞부분이 공백이라는 뜻이 아니라 Compare It에서 동일한 패턴이 나올 때 까지는 공백으로 보여주는 것입니다. 30초를 잘라냈으니 당연히 앞부분 30초동안은 원본과 동일한 패턴이 나올 수 없겠지요.

 

그리고 30초 뒤로 가보면 이제 드디어 동일한 패턴이 시작됩니다.

 

 

 

 

이렇게 동일한 내용이 계속 진행되고 파일 끝부분에서 다시 조금 달라집니다.

 

 

 

 

제가 ac3 파일의 구조같은건 모르기 때문에 설명은 못 드리겠지만 아무래도 파일 시작 부분과 끝 부분에는 그 파일에 대한 전체 정보같은게(러닝타임, 코덱, 채널, 비트레이트 등등...) 들어있겠지요.

 

따라서 DelayCut 프로그램은 재인코딩 과정 없는 바이너리 컷팅 방식이기 때문에 원본과 동일한 음질을 유지한다는 결론을 내릴 수 있습니다.

 

 

 

 

 

이제 파일을 자르지 않고 딜레이 값을 넣었을 때를 생각해보겠습니다. 예를 들어 mkvmerge 로 먹싱할 때 딜레이값을 -30초 넣어주는 것과 DelayCut 프로그램으로 앞부분 30초를 잘라낸 경우가 어떻게 다른가에 대한 답변입니다. 결론부터 말씀드리자면 같습니다. 사실 avi에 대해서 질문하신 것이라면 실험을 해보지 않아서 잘 모르겠습니다만 적어도 mkv에선 같습니다. 즉 mkvmerge로 영상과 음성을 먹싱할 때 음수의 딜레이값을 넣어주면 오디오 파일은 앞부분이 컷팅되면서 먹싱됩니다. 즉 원본 그대로 들어가는데 딜레이 값에 대한 정보가 남아있어서 알아서 당겨서 재생되는 것이 아닙니다. 먹싱하면서 딜레이만큼 앞부분을 컷팅하면서 먹싱됩니다.

 

반대로 양수의 딜레이 값을 넣었을 경우에는 상황이 다릅니다. 이 경우에는 원본 오디오가 그대로 유지됩니다. 그대로 유지되면서 단지 오디오 재생만 늦게 시작될 뿐입니다. 뒤쪽에 남은 시간만큼의 분량이 컷팅되지도 않습니다. 그대로 유지됩니다. 다만 KMP + 할리 스플리터 조합에서 재생해보니 비디오 파일이 끝나는 부분에서 재생이 그냥 끝나더군요. 오디오는 뒤에 더 남아있지만 더이상 재생되지 않았습니다. 물론 여기서 오디오를 다시 추출해보니 뒤쪽이 잘리지 않고 원본 오디오 그대로 추출되었습니다.

 

원래의 글 HDTV 영화 인코딩에 DVD 음성 넣기 에서 DelayCut 프로그램을 사용하는 이유는 명확합니다. 앞부분이야 먹싱하면서 음수의 딜레이값을 넣어서 컷팅하면 되겠지만 뒷부분에 남는 오디오는 말 그대로 용량 낭비가 됩니다. 게다가 타겟 용량을 정확히 맞추기 위해 2패스 인코딩을 하는 경우 인코딩을 시작하기 전에 정확한 오디오 용량을 뽑아내야 비트레이트 계산을 할 수 있습니다.

 

 

 

이것으로 동해랑님의 질문에는 답변이 되었을 것 같습니다.

비로그인 댓글 제한에 대해서는 공지사항에 적어두었습니다.

2010년 2월 20일 토요일

HDTV 영화 인코딩에 DVD 음성 넣기

아직 국산 영화들은 블루레이 출시가 활발하지 않은 관계로 HDTV 소스가 그나마 소장하기엔 화질이 가장 좋습니다.(물론 좌우를 좀 잘라서 방송하는게 아쉽지만) 그런데 보통 TV에서 방송하는 영화들은 음성이 좋아봐야 DD 5.1 채널이고 나쁘면 DD 2.0 채널입니다. 하지만 DVD의 경우 DTS 5.1 채널인 경우도 있고 DD 5.1 채널인 경우도 있기 때문에 HDTV의 영상과 DVD의 음성을 조합하면 가장 좋은 결과를 얻을 수 있다고 생각합니다.

 

이 가이드에서는 DelayCut이라는 프로그램으로 DVD 음성의 앞 뒤를 잘라내어 HDTV 화면에 맞추는 방법을 소개해드립니다. 물론 TV 방송분과 DVD의 컷이 다르면 이 방법은 불가능합니다. 즉 TV에선 감독판을 방송했고 DVD는 극장판을 가지고 있다면 이 방법을 적용하기엔 무리가 따르겠지요. 또는 일부 선정적이거나 폭력적인 장면을 편집한 채로 방송했다면 역시 이 방법은 적용할 수 없겠습니다.

 

예제는 KBS2에서 방송한 과속스캔들입니다.

 

먼저 HDTV 소스를 IVTC 필터 처리하여 초반 아무 프레임이나 하나 잡습니다. 장면이 전환되는 곳이면 비교하기 쉽겠지요. 물론 IVTC 필드오더에 따라 장면 전환부에서 1프레임 오차는 생길 수 있습니다만 1프레임은 0.04초이기 때문에 무시할만한 수준이라 생각합니다.

 

그리고 DVD 소스 역시 DGIndex에서 필름으로 추출하여 동일 프레임을 찾아갑니다.

 

 

 

첫번째 스샷이 HDTV이고 두번째 스샷이 DVD인데 동일 프레임 비교시 48프레임의 차이가 발생합니다. DVD에 초반 48프레임이 더 들어가있는 경우인데 이런 상황이라면 48 / 23.976 = 2.002 초의 딜레이가 발생합니다. 따라서 DVD 음성의 앞부분 2.002초만큼을 잘라내버려야 HDTV 영상과 앞부분이 맞게 됩니다.

 

위 과속스캔들의 경우 영화 제작사 로고가 들어가있기 때문에 딜레이가 작은 편이지만 일반적으로 TV에서 방송하는 영화들은 제작사 로고가 잘린 경우가 많기 때문에 시간차가 수십초 발생하기도 합니다. 하지만 몇 프레임 차이가 나든 23.976으로 나눈 값을 딜레이로 계산해주시면 됩니다.

 

이대로 앞부분만 맞으면 끝이냐? 당연히 아닙니다. 앞서 말씀드렸듯이 TV 방송분과 DVD 컷이 동일한지 확인하기 위해서 뒷부분도 마찬가지로 비교해야 합니다. 영화 끝부분에서도 위 예제라면 동일하게 48프레임 차이가 나야겠지요?

 

 

 

다행히 영화 끝부분도 마찬가지로 48프레임 차이를 보이고 있습니다. 성격이 꼼꼼하신 분들이라면 중간중간 랜덤으로 몇장면 더 비교해보시고 동일한 프레임 차이를 보이는지 확인해보셔도 좋을 것 같습니다.

 

 

 

이렇게 앞부분 딜레이는 해결을 했고 이제 뒷부분에서도 얼마나 잘라내야할지 계산해야 합니다. 보통 엔딩크레딧은 TV에서 잘라버리는 경우가 많기 때문에 DVD 음성이 몇분가량 더 깁니다. 따라서 뒤쪽도 잘라주셔야 합니다.

 

위 예제를 보면 HDTV는 152255에서 끝나고 DVD는 156480에서 끝납니다.

따라서 DVD에 총 4225 프레임이 더 들어가 있습니다.

그런데 앞부분에서의 48프레임은 이미 계산을 했기 때문에 뒷부분에는 4177 프레임이 더 들어가있는 것입니다.

따라서 4177 / 23.976 = 174.216 초의 차이가 납니다. 즉 DVD 음성이 뒤쪽에서 약 3분가량 더 길다는 뜻입니다.

이 경우 음성의 뒷부분 174.216초 역시 잘라줘야 합니다.

 

DelayCut 프로그램을 다운받으시고

 

 

 

 

저의 경우 앞부분은 2.002초를 잘라내고 뒷부분은 174.216초를 잘라낼 것입니다.

 

 

 

딜레이는 밀리초 단위로 적어주시면 되고, 앞부분은 음수로 뒷부분은 양수로 적어주시면 됩니다.

 

그럼 좌측에 타겟 파일의 정보가 나오는데 러닝타임이 1시간 45분 50.304초로 나왔습니다. 이는 HDTV 영상의 152256프레임을 23.976으로 나눈 값 6350.350초를 변환한 1시간 45분 50.35초와 완벽히(?) 떨어지는 값입니다. 따라서 위 딜레이만큼 컷팅하면 HDTV 화면과 완벽히 싱크가 맞는 DVD 음성을 얻어낼 수 있습니다.

 

 

※ 본 가이드는 HDTV, DVD 인코딩과 IVTC에 대한 기초가 있는 분들을 대상으로 작성되었습니다.

초보자용 DVD 인코딩 가이드

초보자용 DVD 인코딩 가이드입니다. 저는 DVD 인코딩을 해본 적이 없고 오늘 처음 해보기 때문에 저 역시 초보입니다. 같은 초보끼리 잘 해보자구요~ ^^;; 잘못된 내용이 있다면 고수님들께서 지적해주시기 바랍니다.

 

먼저 가이드 작성을 위해 동네 책방에서 트랜스포머 2를 빌렸습니다. DVD는 처음 빌려보는데 2천원 하더군요. 트랜스포머 2는 극장에서 봤지만 마땅히 보고싶은 DVD가 없길래 만만한 녀석을 빌려왔습니다.

 

 

 

 

먼저 DVD를 하드에 추출해야합니다. 영화 DVD는 락이 걸려있기 때문에 그냥 윈도우 탐색기에서 파일을 복사할 수 없습니다. 그래서 전문 툴을 써야하는데 이상하게 잘 안되더군요. DVD Decrypter 라는 프로그램으로 추출하라는 것 같던데 저는 해보니 초반에 멈췄습니다. 물론 그냥 UltraISO로 이미지 만드려 했으나 그것 역시 초반에 실패. 읽기 실패 만드는 락이 걸려있는 듯한 느낌이었습니다.

 

결국 AnyDVD라는 프로그램을 받았습니다. 이 프로그램은 주로 블루레이 추출에 많이 쓰이는데(AnyDVD HD) 이쪽 분야에선 가장 성능이 우수하고 유명한 프로그램으로 알고 있습니다. 락걸린 DVD나 블루레이 다 풀어주고 지역코드 제한도 풀어줍니다. 그런데 트라이얼 버전으로는 21일간 사용 가능합니다. 구매하시려면 2년에 49유로를 결재해야 합니다.

 

http://www.slysoft.com/en/anydvd.html

 

이 프로그램으로 트랜스포머 2 DVD를 확인해보니 역시나 뭔가 락이 많이 걸려있더군요. 하지만 알아서 제거해주고 알아서 지역코드까지 에뮬레이팅 해줬습니다.

 

 

 

 

이걸로 트랜스포머 2를 추출해봤습니다. 말썽 안 부리고 잘 추출되었습니다.

 

 

 

 

이제 원본은 준비되었으니 본격적으로 인코딩에 들어가겠습니다. 일반적으로 버추얼 덥을 많이 사용하지만 저는 평소에 MeGUI를 사용하기 때문에 MeGUI로 설명드리겠습니다. 참고로 위 과정은 락이 걸려있는 정품 DVD에 해당하는 것이고, 만약 인터넷에서 ISO 형태나 VOB 형태로 원본 파일을 받으셨다면 이미 락이 풀려있다는 말이기 때문에 위 과정은 필요하지 않습니다.

 

 

 

  • 준비물

 

AviSynth

 

 

 

 

.NET Framework 2.0 - 윈도우 XP 사용자만 설치. 비스타 이상은 필요없음.

http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe

 

MeGUI

 

 

 

 

위 프로그램을 순서대로 설치합니다. 그런 다음 MeGUI를 실행하시면 업데이트 창이 나옵니다. 일단 업데이트를 합니다. 그리고 중간에 프로필 Import 창이 몇번 나오는데 우클릭 해서 Check All 하신 다음 Import 해주세요.

 

참고로 저는 Stable 서버가 아닌 Development 서버를 이용합니다. 업데이트 서버 변경은 Option - Settings - Extra config - Configure servers 에서 가능합니다.

 

 

 

 

  • DGIndex로 d2v 파일과 오디오 추출

 

먼저 DGIndex를 실행합니다. C:\Program Files\megui\tools\dgindex 폴더 안에 들어있습니다.

 

File - Open 으로 들어가서 DVD 비디오 파일을 한꺼번에 열어줍니다. 용량을 보시면 뭐가 메인 비디오인지 바로 느낌이 오실겁니다. 저는 VTS_09_1.VOB부터 VTS_09_8.VOB까지 선택했습니다.

 

 

 

 

그 다음은 Video - Field Operation 으로 들어가서 Forced Film을 선택합니다. DVD는 처음 만져보는거라 잘은 모르지만 아마 영화는 전부 Soft Pulldown이 아닐까 생각합니다. 따라서 따로 필터를 사용해 IVTC 해줄 필요 없이 처음부터 d2v를 23.976fps로 추출해버리면 됩니다.

 

 

 

 

저렇게 지정하신 다음 바로 File - Save Project 해주시면 d2v와 오디오 파일을 추출해줍니다. 대략 1분 좀 넘게 걸리네요.

 

 

 

 

  • AviSynth 스크립트 작성

 

d2v와 오디오 추출이 끝났다면 이제 스크립트를 작성합니다. MeGUI에서 Tools - AVS Script Creator로 들어갑니다. 그리고 Video Input 부분에 위에서 추출한 d2v 파일을 지정해주면 프리뷰 창이 뜹니다.

 

일단 Crop부터 하는데 그냥 Auto Crop 해주시면 됩니다. 끝부분에 그라데이션이 남아있다면 수동으로 약간 더 크롭해주셔도 되구요. 그리고 Resize에 체크한 다음 Suggest Resolution에 체크합니다. 16의 배수에 맞게 알아서 리사이즈 해줍니다. 그러면 일반적으로 영화가 2.35:1이기 때문에 720 * 304로 리사이즈 될 것입니다. 원본에서 가로크기는 그대로 유지하고 세로로만 약간 줄여주는 것입니다. 이대로 Save 누르시면 됩니다.

 

 

 

 

  • 비디오 인코딩

 

이제 본격적으로 인코딩을 하시면 되는데 일반적으로 DVD 립은 XviD 코덱에 AVI 컨테이너를 많이 사용합니다.

 

먼저 Encoder settings에서 XviD: 2pass HQ (no Qpel)을 선택합니다. 그리고 옆에 Config를 누른 다음 Threads 부분에 CPU 코어나 쓰레드 개수를 입력합니다. 저는 쿼드코어이기 때문에 4를 입력합니다. OK 하시면 뭐라뭐라 나오는데 "예" 하시면 됩니다.

 

 

 

 

그런 다음 이제 타겟 용량을 맞추기 위해 비트레이트 계산을 해야합니다. 트랜스포머는 2시간 30분이라서 3CD 사이즈에 맞추는게 좋을 것 같습니다. 일반적인 2시간 미만의 영화들은 2CD 사이즈에 맞추시면 되겠지요. 용량이 커질수록 화질은 좋아집니다. 제 생각에 DVD 립은 1,000~1,500k 정도면 충분한 것 같습니다.

 

Tools - Bitrate Calculator로 들어가신 다음 Audio 부분에서 Select 버튼을 눌러서 먼저 넣으실 오디오 파일을 지정합니다. 아마 코멘터리를 비롯해서 몇가지 오디오 파일이 같이 추출되었을텐데 일반적으로 가장 먼저 나온 파일이 메인 트랙이겠지요. 만약 여러개의 오디오 트랙을 넣으실 생각이라면 우클릭 해서 Add Track 하시면 추가로 오디오 탭이 생성됩니다. 아무튼 오디오 파일을 지정하셨다면 그 다음엔 우측에 있는 File Size에서 원하시는 용량을 지정합니다. 저는 3CD를 선택했습니다. 만약 수동으로 지정하고 싶다면 아래쪽에 Select Size에 들어가서 직접 입력하셔도 됩니다.

 

Apply 누르시면 계산된 비트레이트를 적용하겠냐고 물어보는데 "예" 누르시면 됩니다.

 

 

 

 

이제 Enqueue 버튼을 눌러 대기열로 보내주고 대기열로 건너가서 Start 누르시면 본격적으로 인코딩이 시작됩니다.

 

 

 

 

린필드 4GHz 기준으로 1패스 현재 250fps 정도 나오고 있는데 CPU가 절반밖에 일하지 않고 있습니다. 제 생각에 DGDecode의 디코딩 속도 한계가 이정도인 것 같습니다. MT 필터를 써도 속도는 증가하지 않더군요.

 

 

 

 

2패스 현재 130fps 정도 나오고 있는데 역시나 CPU가 풀로 일하지 않고 있습니다. 제 생각에 이건 XviD 코덱의 멀티스레드 지원이 아직 완벽하지 않아서 그런 것 같습니다. 1패스 속도를 봐선 AVS의 프레임 서빙 속도가 발목을 잡는 것은 아닌 것 같습니다. 따라서 이는 XviD 코덱의 한계로 보입니다.

 

 

 

 

아무튼 2시간 30분짜리 트랜스포머 DVD 원본을 XviD HQ 프로필로 2패스 하는데 총 40분 정도 걸렸습니다.

 

 

 

 

  • 비디오 파일과 오디오 파일 합치기

 

이제 마지막으로 비디오와 오디오를 합쳐주시면 됩니다.

 

Tools - Muxer - AVI Muxer

 

여기서 비디오 파일과 오디오 파일을 지정한 다음 Queue 눌러서 대기열로 보내고 마찬가지로 대기열에 가서 Start 누르시면 됩니다.

 

 

 

 

 

 

이상으로 초보자용 DVD 인코딩 가이드를 마치겠습니다.

 

 

 

  • XviD vs x264

 

추가로 궁금해서 실험을 하나 해봤습니다. x264 기본 프로필로 동일한 비트레이트 주고 2패스 해봤는데 일단 인코딩 시간은 거의 같았습니다. 오히려 2패스에선 XviD에 비해 x264가 약간 더 빨랐는데 CPU 점유율이 100%에 가까웠습니다. 그만큼 x264는 멀티코어를 100% 잘 활용하는 코덱이라 할 수 있겠습니다.

 

 

 

 

아마 다들 잘 아시겠지만 x264 코덱의 성능은 XviD에 비해 월등히(?) 좋습니다. 동일한 용량의 결과물인데 같은 장면에서 XviD는 자동차에 깍뚜기 현상이 많이 나타났고 x264는 깔끔하게 나왔습니다. 게다가 XviD는 P 프레임이고 x264는 B 프레임인데도 말이죠.

 

 

원본 스크립트 프리뷰

 

 

x264 기본 프로필

 

 

XviD HQ 프로필

 

 

 

깍뚜기 현상이 잘 안 보이시는 분들을 위해 가로 세로 4배 확대해서 잘라봤습니다.

 

x264 기본 프로필

 

 

XviD HQ 프로필

 

 

 

따라서 동일한 인코딩 시간이 소요된다면 단연 선택의 여지 없이 x264로 인코딩 하시는 편이 좋을 듯 싶습니다. 다만 이는 어디까지나 쿼드코어 린필드 4GHz에서의 테스트 결과이고 제 생각인데 듀얼코어 이하에서 동일한 실험을 했다면 x264 쪽이 2패스에서 XviD에 비해 많이 느렸을 것 같습니다. CPU 점유율을 보면 그렇게 추론이 됩니다. 결국 빠른 인코딩 시간과 고품질 중에 어느쪽을 선택할 것인지는 여러분의 몫이라 할 수 있겠습니다.