XENIX(제닉스)

AviSynth - 11.PIP효과 (동영상 속에 동영상 넣기)

AviSynth 2010.02.25 댓글 XENIX

목차

    처음부터 차근차근 해보겠습니다. 먼저 두개의 영상이 필요하겠지요. 바탕이 되는 영상을 full.avi라고 하고 full.avi 속에 들어갈 영상을 in.avi라고 이름 지어봤습니다.

    일단은 두개의 영상을 불러와야겠지요.
    a=avisource("full.avi")
    b=avisource("in.avi")


    동영상 속에 동영상을 넣으려면 layer 필터를 사용해야 하는데 위 그림에서 보듯이 Layer 필터의 경우 입력받는 동영상이 RGB32 또는 YUY2 형식이어야 하므로 다음과 같이 컨버팅해줍니다.
    a=avisource("full.avi").converttorgb32()
    b=avisource("in.avi").converttorgb32()


    그런 후 속에 들어가는 in.avi가 바탕이 되는 full.avi보다 화면이 크면 보기 흉하므로 full.avi화면크기보다 작은 사이즈로 줄여줍니다. full.avi가 640*480 이므로 320*240으로 줄여보겠습니다.
    a=avisource("full.avi").converttorgb32()
    b=avisource("in.avi").converttorgb32().BicubicResize(320,240)

    자 이제 Layer 필터를 사용하여 Full.avi 속에 In.avi 파일을 집어 넣어보겠습니다.
    a=avisource("full.avi").converttorgb32()
    b=avisource("in.avi").converttorgb32().BicubicResize(320,240)
    layer(a,b,"add",128)


    layer필터의 오퍼레이션으로 "add", "subtract", "lighten", "darken", "fast", "mul" 이 있는데 약간씩 차이가 있습니다. 직접 확인해보시기 바라구요 여기서는 "add"로 작업하였습니다.

    128이라는 값은 레벨값인데 투명도라고 생각하시면 되겠습니다. 0 ~ 255 사이의 값을 줄수 있는데 255로 갈수록 삽입된 영상이 짙게 표시됩니다.

    삽입되는 영상이 위치하게될 좌표를 적어주지 않으면 기본적으로 좌측상단에 표시가 되는데 X, Y 좌표를 주면 해당지점에서 영상이 표시되게 됩니다.
    a=avisource("full.avi").converttorgb32()
    b=avisource("in.avi").converttorgb32().BicubicResize(320,240)
    layer(a,b,"add",128, 320, 240)



    레벨값을 128로 주었을 경우


    레벨값을 255로 주었을 경우

    댓글