목차
테스트를 위해서 아래 4개의 파일을 준비했습니다. 일단 해상도는 전부 다르구요 프레임레이트만 2개씩 동일합니다.
이제 단계별로 스크립트를 만들어보겠습니다. 프로그래밍에 능숙하신 분이라면 몇단계를 묶어서 스크립트를 작성하실 수도 있겠지만 전 프로그래밍에는 재능이 없어서 그냥 베이직수준으로 스크립트를 만들어보겠습니다.
a_width=width(a)
a_height=height(a)
a_fps=framerate(a)
먼저 001.avi 파일을 로드하여 a라는 변수에 할당했습니다. 그리고 width(), height(), framerate()라는 AVS 스크립트를 이용하여 001.avi 클립의 속성중에 가로값,세로값 그리고 FPS값을 받아내서 이를 a_width, a_height, a_fps라는 변수에 할당하도록 했습니다.
a=avisource("001.avi")
a_width=width(a)
a_height=height(a)
a_fps=framerate(a)
b=avisource("002.avi",audio=false).BicubicResize(a_width,a_height).ChangeFPS(a_fps)
c=avisource("003.avi",audio=false).BicubicResize(a_width,a_height).ChangeFPS(a_fps)
d=avisource("004.avi",audio=false).BicubicResize(a_width,a_height).ChangeFPS(a_fps)
그리고 002.avi 영상을 로드하고 화면분할을 하면 어차피 첫번째 영상말고는 오디오는 필요없으므로 오디오를 False 시킵니다. 이 영상을 Bicubicresize() 필터를 이용하여 001.avi에서 받아낸 가로,세로크기대로 리사이즈를 하도록 하고 ChangeFPS() 필터로 fps값을 001.avi의 fps값과 일치시켜서 이를 변수 b에 할당합니다. 003.avi ,004.avi 파일도 마찬가지로 진행시킵니다.
a=avisource("001.avi")
a_width=width(a)
a_height=height(a)
a_fps=framerate(a)
b=avisource("002.avi",audio=false).BicubicResize(a_width,a_height).ChangeFPS(a_fps)
c=avisource("003.avi",audio=false).BicubicResize(a_width,a_height).ChangeFPS(a_fps)
d=avisource("004.avi",audio=false).BicubicResize(a_width,a_height).ChangeFPS(a_fps)
clip1=stackhorizontal(a,b)
clip2=stackhorizontal(c,d)
stackvertical(clip1,clip2).BicubicResize(640,480)
a,b 그리고 c,d를 각각 수평으로 배치시킨 후 이를 수직으로 배치하여 전체 사이즈를 640 x 480으로 조절하였습니다.
저장된 스크립트를 VirtualDub으로 불러온 후 Audio / Video 모두 Full processing mode상에서 Compression 메뉴를 이용하여 적절한 코덱을 선택하여 인코딩하시면 됩니다.
최종결과물
이제 단계별로 스크립트를 만들어보겠습니다. 프로그래밍에 능숙하신 분이라면 몇단계를 묶어서 스크립트를 작성하실 수도 있겠지만 전 프로그래밍에는 재능이 없어서 그냥 베이직수준으로 스크립트를 만들어보겠습니다.
a=avisource("001.avi")
a_width=width(a)
a_height=height(a)
a_fps=framerate(a)
먼저 001.avi 파일을 로드하여 a라는 변수에 할당했습니다. 그리고 width(), height(), framerate()라는 AVS 스크립트를 이용하여 001.avi 클립의 속성중에 가로값,세로값 그리고 FPS값을 받아내서 이를 a_width, a_height, a_fps라는 변수에 할당하도록 했습니다.
a=avisource("001.avi")
a_width=width(a)
a_height=height(a)
a_fps=framerate(a)
b=avisource("002.avi",audio=false).BicubicResize(a_width,a_height).ChangeFPS(a_fps)
c=avisource("003.avi",audio=false).BicubicResize(a_width,a_height).ChangeFPS(a_fps)
d=avisource("004.avi",audio=false).BicubicResize(a_width,a_height).ChangeFPS(a_fps)
그리고 002.avi 영상을 로드하고 화면분할을 하면 어차피 첫번째 영상말고는 오디오는 필요없으므로 오디오를 False 시킵니다. 이 영상을 Bicubicresize() 필터를 이용하여 001.avi에서 받아낸 가로,세로크기대로 리사이즈를 하도록 하고 ChangeFPS() 필터로 fps값을 001.avi의 fps값과 일치시켜서 이를 변수 b에 할당합니다. 003.avi ,004.avi 파일도 마찬가지로 진행시킵니다.
a=avisource("001.avi")
a_width=width(a)
a_height=height(a)
a_fps=framerate(a)
b=avisource("002.avi",audio=false).BicubicResize(a_width,a_height).ChangeFPS(a_fps)
c=avisource("003.avi",audio=false).BicubicResize(a_width,a_height).ChangeFPS(a_fps)
d=avisource("004.avi",audio=false).BicubicResize(a_width,a_height).ChangeFPS(a_fps)
clip1=stackhorizontal(a,b)
clip2=stackhorizontal(c,d)
stackvertical(clip1,clip2).BicubicResize(640,480)
a,b 그리고 c,d를 각각 수평으로 배치시킨 후 이를 수직으로 배치하여 전체 사이즈를 640 x 480으로 조절하였습니다.
저장된 스크립트를 VirtualDub으로 불러온 후 Audio / Video 모두 Full processing mode상에서 Compression 메뉴를 이용하여 적절한 코덱을 선택하여 인코딩하시면 됩니다.
최종결과물
댓글