티스토리 뷰

Processing

[Processing] 동영상 재생

생각많은 소심남 2012. 11. 25. 19:36

많이 다루고들 계시겠지만 프로세싱으로 다양한 효과를 낼 수 있습니다. 저는 그 중에서도 키넥트랑 연동해서 할 수 있는 작업에 대해서 소개를 하고 있고, 그에 필요한 기본적인 지식을 전달하고 있습니다. 


그 중 오늘 다뤄볼 내용은 동영상 재생입니다.

물론 기본 Example에도 나오는 내용이긴 하지만 이걸 통해서 손의 위치에 따라 재생 속도를 조절하는 예제를 보여드리고자 합니다.

우선 여러가지 방법들이 있습니다. 기본적으로 내장되어 있는 Video 라이브러리를 사용할 수도 있고, 일반 사용자가 만든 GSVideo 라이브러리를 사용할 수도 있습니다만, 여기서는 기본 라이브러리를 통한 재생 방법을 알아보도록 하겠습니다. 무척 쉽습니다.


먼저 들어가기 전에 영상을 준비해야 되는데 아무 동영상이나 되는 것이 아니라 MOV 확장자를 가진 동영상을 준비하셔야 합니다. 애플 제품을 많이 이용하시는 분이라면 아시겠지만 이 확장자는 맥북에 내장되어 있는 QuickTime player에서 재생할 수 있는 기본 동영상입니다. 저 같은 경우는 FormatFactory라는 프로그램을 통해서 일반 영상을 MOV 형식으로 바꿔줬습니다.



자 프로젝트를 만들고 저장부터 합니다.( 이게 가장 선행되어야 할 부분입니다. 그래야 프로젝트에 관한 폴더가 생성되고 이 안에다가 동영상 파일을 삽입할 겁니다.

그 다음에 동영상 재생에 필요한 라이브러리와 동영상을 담을 자료형을 선언해줍니다.



그 다음에 동영상을 띄울 창을 지정하고 어떤 동영상을 띄울지를 선택하고 연결하는 과정을 거칩니다. 그런데 여기서 한가지 해줘야 할 작업이 있습니다.



아까 한번 저장하라고 한 이유가 바로 이 폴더를 만들기 위함입니다. 프로세싱의 특성상 프로세싱 내에서 구동되는 컨텐츠는 이 data라는 폴더에서 읽어오도록 되어 있습니다. 그래서 이 폴더를 생성하고 이 안에 아까 만든 동영상 파일을 집어넣는 과정을 먼저 취해줘야 합니다.

그 부분이 마무리 된 후에는 이전 Setup부분을 다음과 같이 작성해줍니다.


저는 아까 동영상을 test.mov라는 이름으로 만들어주고 계속 반복해서 틀어주기 위해 loop를 돌리도록 했습니다. 영화를 읽어왔으니까 이에 대한 이벤트가 발생할 겁니다. 바로 저 라이브러리에서 제공해주는 이벤트가 있습니다.


영상은 여러개의 프레임들이 모여서 연속적으로 보여주는 형태를 취합니다. 그래서 영화가 켜진 이벤트가 활성화되면 계속 다음 프레임에 대한 정보를 읽어오고 여기서 그 과정을 수행하게 됩니다. 그런데 읽어오기만 하면 사용자가 볼 수 없으므로 마지막으로 draw쪽에서 그걸 그려주는 걸 해야 될겁니다.

 


이게 끝입니다. 한번 결과를 보겠습니다.


맨위의 창 틀을 보시면 아시겠지만 지금 이 동영상은 프로세싱으로 재생되고 있으며, 소리도 정상적으로 나옵니다.



간단하게 소개한 동영상 재생이었고, 다음 포스트에서는 프로세싱에서 이중으로 창을 여는 방법(Multiple Windows)에 관해서 해보고자 합니다.

댓글