XENIX(제닉스)

AviSynth

22

AviSynth - 10.FPS 필터비교

예를들어서 원본영상의 fps가 30이고 재생시간이 10분이라고 가정해봅시다. 그러면 총 프레임수는 10*60*30 = 18000프레임이 됩니다. assumefps(20)의 의미는 총 프레임수에는 변동이 없습니다. fps값에 맞추기 위해서 프레임을 드롭시키거나 복제하지 않습니다. 따라서 초당 20장씩 18000장을 다 보여주기 때문에 재생시간이 18000/20 =900초, 즉 15분이 걸리게 됩니다. assumefps는 오디오에는 영향을 미치지 않으므로 영상은 마치 슬로모션처엄 재생되고 오디오는 기본속도로 재생되므로 오디오가 비디오를 앞질러가다가 결국에는 오디오가 끝나면 오디오없이 영상만 재생되는 구간이 생기게 되겠지요. 즉, 오디오와 비디오의 싱크가 완전히 어긋남을 의미합니다. ( 참고 ) 반면에 Cha..

AviSynth 2010.02.08 XENIX

AviSynth - 9.간단한 문구 삽입하기

Subtitle라는 필터를 이용하여 동영상 클립안에 원하는 문구를 삽입할 수 있습니다. 아래 테스트 스크립트를 먼저 보시면서 이야기를 해보죠 avisource("movie5.avi") subtitle("네이버 스마트에디터", size=30, font="나눔고딕", align=2, text_color=$FFFFFF, first_frame=80, last_frame=200) 대충 보셔도 그 의미를 아실것입니다. 폰트는 한글로 글꼴명을 적어주시면 되구요, align은 아래 그림을 보시면 될겁니다. 그리고 프레임수는 80번째 프레임부터 200번째 프레임까지만 텍스트를 츨력하라는 의미가 되겠지요.

AviSynth 2010.02.08 XENIX

AviSynth - 8.분할화면에 경계선 주기

[AviSynth] - AviSynth - 7.공간적 이어붙이기 위의 포스트에서는 하나의 화면에 2X2 해서 4화면을 집어 넣는것 까지 해봤는데요 보니까 경계선이 없어서 그런지 눈에 확 들어오질 않더군요. 그래서 화면에 경계선을 주는 필터 Addborders를 찾아봤더니 다른 함수와 비슷하게 클립명과 좌,상,우,하의 픽셀값을 입력값으로 받더군요. 즉 addboarder(avisource("movie1.avi"),3,4,2,5, $000000) 3,4,2,5는 좌상우하에 그릴 선의 픽셀값을 말하고 그 뒤에 경계선의 색깔로 지정할 수 있습니다. 기본값은 검정색입니다. clip1=stackhorizontal(addborders(avisource("movie1.avi"),2,2,1,1),addborders(av..

AviSynth 2010.02.08 XENIX

AviSynth - 7.공간적 이어붙이기

아래 그림의 소스를 먼저 읽어봅시다. 사용되는 필터들은 여기를 참고하시기 바랍니다. 수평으로 서로 다른 두개의 영상을 놓고 이를 clip1이라고 하고 또 수평으로 서로 다른 두개의 영상을 놓고 이를 clip2라고 한 후에 이 clip1과 clip2를 수직으로 놓아서 만들어진 영상을 640 * 480 크기로 리사이즈 하라는 스크립트입니다. 즉 4개의 영상이 하나의 화면에 담겨지는것이지요. Stack.. 필터의 경우 맨 첫 클립의 오디오만 Active가 되고 나머지 오디오는 Disable되는 특성이 있습니다. 이 작업은 일단 화면크기와 fps값이 모두 일치한다는 조건으로 작성된것입니다. 서로 불일치하는 조건의 경우에 대해서는 차후에 포스팅하겠습니다. 자, 그럼 그 결과물을 보실까요? 단 4줄의 스크립트로 이..

AviSynth 2010.02.07 XENIX

AviSynth - 6.FPS조절필터

AviSynth의 필터중에 FPS수치를 조절하는 필터들이 몇가지 있는데 Assumefps, Changefps, Convertfps가 그들인데 그중 먼저 Assumefps에 대해서 알아보고 다른 필터들과의 차이에 대해서 알아보도록 하겠습니다. 먼저 스크립트를 보실까요? 위의 내용을 해석해보자면 movie5.avi를 불러와서 200 ~ 500 프레임까지만 끄집어내서 FPS값을 24로 맞추라는 의미이지요. 본래 movie5.avi의 fps값은 30입니다. 그런데 그걸 24로 맞추어야될 무슨 이유가 있나보죠. 그럼 위 스크립트를 돌렸을때 그 결과는 어떨까요? 보셔서 아시겠지만 소리와 입모양도 맞질 않고 오디오가 비디오를 앞질러가서 일찍 끝나버리는 현상이 발생하지요. 당연히 그럴것이 원래 초당 30장이 지나가야 ..

AviSynth 2010.02.07 XENIX

AviSynth - 5.이어붙이기(FPS가 다른 경우)

앞에서는 FPS나 화면사이즈가 동일한 영상들을 이어붙이는 작업을 했었습니다. [AviSynth] - AviSynth - 이어붙이기 (FPS,SIZE가 동일할 때) 그와 같은 경우에선 아무런 에러없이 작업을 마칠 수가 있었는데요 이번에 테스트해볼 내용은 FPS(초당 프레임수)가 다른 두 영상을 이어붙이기 할때도 아무런 문제가 없을른지 한번 보도록 하겠습니다. 먼저 movi1.avi영상과 girl1.avi 영상의 정보를 확인해보도록 하겠습니다. FPS값이 다르다는걸 알 수 있습니다. 물론 원본의 비디오코덱도 서로 다르기는 하지만 전에도 말씀드렸듯이 AviSynth로 불러들일때는 무압축으로 불러들여지기 때문에 스크립트로 불러들여지는 클립의 코덱은 같다고봐야하므로 비디오코덱은 신경스지 않아도 됩니다. 자 그럼 ..

AviSynth 2010.02.07 XENIX

AviSynth - 4.이어붙이기 (FPS,SIZE가 동일할 때)

서로 다른 5개의 영상을 가지고 각각의 영상에서 맨 첫프레임부터 시작해서 300 프레임까지 떼어내서 이것을 하나로 연결하는 작업을 해보겠습니다. 참고로 이 테스트에 사용된 동영상들은 동일한 프레임수, 동일한 화면크기로 만들어진 동영상들입니다. 이런 조건일때의 결과와 이중에서 하나라도 다를때 이어붙이기하는 결과가 어떻게 나오는지와 그걸 해결하는 과정을 다음 포스트에서 보여드리도록 하겠습니다. [AviSynth] - AviSynth - 이어붙이기(FPS가 다른 경우) 우선 스크립트와 동영상클립이 같은 폴더에 있다고 가정하겠습니다.(경로 적어주는게 지겨워서..) 그럼 첫번째 동영상클립을 avisource("movie1.avi") 이런 식으로 불러오면 되겠죠. 나머지도 클립명만 다를뿐 마찬가지 입니다. 그런 후..

AviSynth 2010.02.07 XENIX

AviSynth - 3.구간선택

하나의 동영상에서 구간을 세개로 나누어 첫번째 클립은 처음부터 800 프레임까지, 두번째 프레임은 1000번째 프레임부터 1500번째 프레임까지 그리고 마지막 클립은 2000번째 프레임부터 맨 끝까지 구간을 나눈다음 이 게 클립을 합치는데 첫번째 클립만 흑백영상으로 만들어보도록 하겠습니다. trim(A,B)에서 A는 시작프레임 B는 끝프레임을 의미하며 B부분에 0이오면 영상의 마지막 프레임을 의미합니다. Greyscale()의 인자(argument)로는 클립명을 받습니다. 위의 스크립트를 버추얼덥으로 돌려 XviD와 MP3 코덱으로 인코딩한 결과물은 아래와 같습니다.

AviSynth 2010.02.06 XENIX

AviSynth - 2.화면에 런닝타임 넣기

동영상의 화면에 재생시간을 표시하도록 하는 내부필터입니다. 이 필터의 사용에관한 내용은 여기를 참고하시기 바랍니다. - 파일을 불러오고 SMPTE코드를 보여주도록 하는 필터인데 변수를 아무것도 주지 않았습니다 - 그 결과는 화면 하단 중앙에 노란색으로 표현되는군요 - 글꼴크기변수의 값을 키워봤습니다 -글꼴크기만 증가한 것을 볼수 있습니다. - 글꼴의 색깔도 변경을 주어봤습니다. - 색깔이 하얀색으로 변했네요. - SMPTE 타임코드가 표시될 좌표를 지정해봤습니다. 변수들간에는 ( , ) 콤마로 분리하시면 됩니다. - 화면의 상단 귀퉁이 쪽으로 이동되었네요 참고로 위의 스크립트를 줄여서 아래와 같이 쓸수도 있습니다. ShowSMPTE 필터안에 바로 클립의 경로를 지정할 수도 있습니다. 스크립트와 클립이 같..

AviSynth 2010.02.06 XENIX

AviSynth - 1.시작 및 설치

AviSynth는 비디오 후처리 쪽에서는 그 기능이 아주 막강한 비디오 에디터로 널리 알려져 있습니다. 하지만 사용방식이 GUI 환경이 아니고 스크립트언어를 사용해서 그런지 그 막강한 기능에 비해 관심도는 다소 떨어진다 할 수 있지요. 저 역시도 AviSynth에 관해서는 이제 막 걸음마를 떼는 수준이므로 많은 것을 알려드릴 수는 없지만 하나하나 테스트를 통해서 만족도를 높여가보도록 하겠습니다. 다시 원래 화제로 돌아가보면 AviSynth는 스크립트 방식의 비디오 에디터라고 했습니다. 비디오 에디팅에 관한 스크립트를 메모장과 같은 텍스트 에디터로 작성한 후에 AviSynth와 호환되는 프로그램 (윈미플,곰플,버추얼덥,버추얼덥모드,TMPGEnc등등)을 통해서 스크립트를 읽어들이는데 이때 스크립트를 해독하는..

AviSynth 2010.02.06 3 XENIX