잡동사니 공간

지난 번에 로고제거에 대한 이야기를 했었습니다.
이번엔 그 로고제거제를 사용하여 TV립을 해보겠습니다.

우선 필요한 준비물.
1. ts, m2ts, tp, mpg, mpeg 등 캡쳐카드를 이용해 녹화한 파일.
2. DGIndex - d2v, 음성 추출용.
3. AvsP - avs작성용.
4. KMP - 테스트용.
5. VirtualDubMod - 인코딩용.


우선 ts파일을 DGIndex로 엽니다.
사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지
비디오와 오디오 부분에서 저 부분에 체크를 하고 저장을 합니다.

사용자 삽입 이미지
저장을 하고나면 위와 같은 파일이 생성됩니다.(ts는 원래 있던 파일)

이제 인코딩에 필요한 파일이 생성되었습니다.
그러면 avs를 이용해 영상과 음성을 합치고, 광고와 로고를 제거합니다.
avs작성은 AvsP를 이용해서 합니다.

사용자 삽입 이미지
아무것도 없죠.
우선 플러그인부터 불러오도록 하겠습니다.
global dllfolder = "플러그인이 있는 폴더 주소"
LoadPlugin(dllfolder + "DGDecode.dll")
LoadPlugin(dllfolder + "BassAudio.dll")
LoadPlugin(dllfolder + "LoadPluginEx.dll")
LoadPlugin(dllfolder + "warpsharp.dll")
LoadPlugin(dllfolder + "MPEG2Dec3.dll")
LoadPlugin(dllfolder + "LeakKernelDeint.dll")
LoadPlugin(dllfolder + "IT.dll")

이 압축을 푸시고 그 폴더의 주소를 넣으면 됩니다.

플러그인을 불러왔으면 이제 동영상을 불러와야죠.
MPEG2Source("d2v파일 주소", cpu=0)
AvsP에서 Shift+F9를 이용해 파일을 선택하면 주소를 간단히 입력할 수 있습니다.
영상을 불러왔으면 이제 음성을 불러와야죠?
AudioDub(last,BassAudioSource("오디오파일 주소").DelayAudio(-0.387))
AssumeFrameBased().ComplementParity()
오디오파일 역시 같은 방법으로 불러오면 됩니다.
근데 위에서도 봤듯 'RideBack 01 (D-TVS 1440x1080) PID 112 DELAY -387ms.aac'이런 식으로 뒤에 딜레이가 붙습니다.
저 숫자만큼 딜레이오디오에 넣으면 됩니다.
1ms는 0.001s이니 -387ms는 -0.387이죠.

다음으로 광고제거를 합니다.
trim(7,9776)+trim(11575,26080)+trim(27879,43312)+trim(45112,48557)
trim을 이용해 필요한 부분만 끄집어내는 것인데요, 만약 중간에 잘라낼 부분이 더 많다면 뒤로 계속 +로 넣으면 됩니다.
필요한 부분의 시작과 끝 프레임을 적으면 됩니다.
trim(7,9776)은 7번 프레임부터 9776번 프레임까지 쓴다는 것을 나타냅니다.
그렇게 필요한 부분을 끄집어냈으면 광고제거는 끝.

그 다음은 로고제거제를 불러올 차례입니다.
EraseLOGO(logofile="lgd파일 주소", pos_x=0, pos_y=0, depth=128, yc_y=0, yc_u=0, yc_v=0, start=0, fadein=0, fadeout=0, end=9999)
저기서 건드릴 부분은 start=0, fadein=0, fadeout=0, end=9999 요부분.
로고가 페이드인, 아웃이 되는 곳이 있고, 그냥 생겼다 한 번에 꺼지는 곳이 있습니다.
후자라면 fadein, fadeout에 0을 넣으면 되고, 전자라면 좀 복잡해집니다.
로고가 시작하는 부분의 프레임을 적고, 그 로고가 완전히 찐해지는 프레임까지 몇 프레임인지를 센 후 fadein에 그 값을 넣으면 됩니다.
만약 3번프레임부터 로고가 나오기 시작해서 7번부터 똑같아졌다, 그러면 start=3, fadein=4를 넣으면 되죠.
페이드 아웃은 반대로 그 로고가 완전히 없어진 프레임을 end에 적고 위와 같은 방법을 거꾸로 하면 됩니다.
만약 10번 프레임부터 흐려지기 시작해 15번 프레임에서 완전히 없어졌다면 fadeout=5, end=15를 넣으면 되죠.
lgd파일은 그 로고에 맞는 것을 사용하면 됩니다. 만약 다르다면 다시 뽑아야죠.
저렇게 로고가 끊기는 부분마다 설정해줍니다. 보통은 오프닝, A파트, B파트+엔딩, 예고로 되어있으니 4줄을 적어야죠.

다음으로는 프레임 조절을 합니다.
AvsP는 화면 미리보기가 지원이 되어서 직접 프레임을 넘겨가면서 보면 되기 때문에 편합니다.
한칸 한칸 다음 프레임으로 넘겨보면서 그림이 겹치지 않고 계속되면 30프레임, 4번 움직였다가 1번이 멈추면 24프레임입니다.
엔딩이 아래서 위로 텔럽이 올라가는 것 중엔 60프레임도 있는데, 이건 다음에 적겠습니다.
대부분의 애니메이션은 24프레임이기 때문에 24프레임으로 낮춰주어야 합니다.
TV방송은 24프레임으로 하는 것이 불가능해서 30프레임으로 방송을 하게 되는데, 이 과정에서 불필요한 프레임이 6개가 추가되는 거죠.
FrameCache(5).IT(fps = 24, ref = "TOP", diMode = 1)
이제 이 동영상은 24프레임으로 인코딩이 됩니다.

이제는 크롭과 리사이즈를 하면 끝.
Crop(0, 0, -0, -0)
LanczosResize(1280, 720)
크롭은 왼쪽부터 (좌, 상, -우, -하)입니다. 크롭값은 반드시 짝수로 넣어야 합니다.
만약 여백이 좌5 상3 우4 하1 이렇게 있다면 (6, 4, -4, -2)를 넣으면 되죠.
그리고 해상도는 HD방송이니 적절하게 1280으로.(이건 취향입니다.)

각종 필터를 이용해 노이즈, 화질보정 등의 설정도 하면 좋습니만, 기초편이므로 생략.

그리고 저장합니다.
사용자 삽입 이미지
사용자 삽입 이미지
그러면 위와 같은 파일이 생깁니다.
이제 인코딩 프로그램에서 불러옵니다.
저는 버츄얼덥을 이용하겠습니다.
사용자 삽입 이미지
버츄얼덥에서 설정해줘야 할 것은 비디오와 오디오의 코덱입니다.

사용자 삽입 이미지
사용자 삽입 이미지
여기서 풀 프로세싱 모드로 선택을 하고 음성코덱을 선택하면 됩니다.
사용자 삽입 이미지
저는 MP3 192kbps로 하겠습니다.

이번에는 비디오코덱.
사용자 삽입 이미지
비디오 역시 풀 프로세싱 모드로 체크를 하시고 코덱을 선택합니다.
사용자 삽입 이미지
컴퓨터에 설치된 코덱 목록이 나옵니다.
저는 주로 DivX6이나 x264를 사용합니다.
(※ DivX는 유료코덱입니다.)
사용자 삽입 이미지
저렇게 선택만 해서 끝나는 것은 아니고, Configure를 눌러 세세한 설정을 해야 합니다.
코덱 설정 또한 개인의 취향, 방식에 따른 것이니 따로 적지 않습니다.

이제 코덱 설정도 끝났으니 저장을 합니다.
사용자 삽입 이미지
저장을 누르면 이제 인코딩이 시작됩니다.
사용자 삽입 이미지
처음에 인코딩을 누르고 글을 쓰기 시작했는데, 벌써 1시간이 넘었나보네요. 흑흑..
인코딩은 영상에 따라, 사용된 플러그인에 따라, 컴퓨터에 따라 시간이 달라집니다.

인코딩이 끝나면 TV립이 모두 끝납니다.
그리고 재생하면 끝.

언제가 될진 모르겠지만, 다음에는 로고제거제 뽑는 방법을 설명하도록 하겠습니다.

Comment +19