'filtergraph'에 해당하는 글 1건

지난 포스팅에서 다이렉트쇼 기반의 멀티미디어 재생과정을 눈으로 확인할 수 있는 프로그램 몇 가지를 소개드렸습니다. 이번에는 그 중 대표적인 그래프에디트에 대해 좀 더 살펴보도록 하겠습니다.

동영상 파일을 드래그해서 회색영역으로 이동시킨 화면


보통은 그래프에디트 ( 실행화일은 graphedit.exe ) 를 실행시킨 후, 윈도우탐색기에서 동영상 파일을 눌러 회색부분에 올려두면 자동으로 위와같은 화면이 출력됩니다. 이건 " Connect Intelligent " 라고 해서 지능적인 연결 혹은 자동 연결 정도로 이해됩니다. 그래프에디트가 자동으로 추천한 필터들로 재생환경으로 만들어주는 것이지요.


왼쪽의 " 우이천(1).avi " 라고 표시한 네모칸이 해당 동영상파일에 대한 소스필터가 로딩됐음을 알려줍니다. 오른쪽에 " AVI Splitter " 이라고 스플리터 필터와 연결되어있습니다.
 


네모칸 ( 필터 ) 양쪽 끝으로 조그만 사각형 홈들이 튀어나와 있는데, 왼쪽에 있는 홈을 " 입력핀 " ( Input Pin ) 이라고 하고, 오른쪽에 2개 있는 핀을 " 출력핀 " ( Output ) 이라고 합니다. 화살표가 동영상 데이타스트림이 흐르는 방향이라고 생각하시면 됩니다.

이 입력핀과 화살표는 수동으로 연결이 가능하며, 방법도 단순합니다. 연결하고자 하는 필터의 입력핀을 정확하게 클릭하신 후, 드래그하면 화살표가 보여지기 시작합니다. 그후 화살표의 검은 삼각형 부분을 다른 필터의 입력핀 ( 돌출된 홈 ) 에 정확히 위치시키면 됩니다. 연결될만한 ( 적당한 ) 필터라면 연결되고 그렇지 않으면 에러메시지를 출력시킵니다. ^^;;

또한, 소스필터 - 스플리터 - 디코더 ( 코덱 ) - 후처리필터 - 렌더러 의 순서대로 연결시켜야 합니다. 중간에 필요없는 것은 지나치셔도 되지만, 디코더의 출력핀에서 스플리터 필터의 입력핀으로 연결은 할 수 없습니다.


왼쪽에 스플리터가 보이고, 여기서 다시 비디오 코덱과 오디오 코덱으로 나눠집니다. 스플리터의 역할이 무엇인지 눈에 확 들어오지요? ^^;;


왼쪽의 비디오, 오디오 코덱 ( 필터 ) 마다 연결된 렌더필터들이 우측에 표시됩니다.

각 필터들은 마우스 포인터로 선택 ( 클릭 ) 한 후, Del 키를 누르거나 " Edit " ( 편집 ) 메뉴의 " Delete " 를 클릭해서 삭제하실 수 있습니다. 새 필터를 넣으시려면 " Graph " 메뉴의 " Insert Filters... " 를 클릭하신 후, 새로 뜬 창에서 골라 삽입 ( Insert ) 하시면 됩니다.

이때는 자동으로 연결되지 않으므로 마지막으로 연결된 필터의 입력핀을 마우스 포인터로 클릭하신 후, 드래그해서 받을 쪽 ( 삽입한 필터 ) 의 왼쪽 홈 ( 입력핀 ) 에 정확히 맞춰주시면 됩니다. 잘못된 필터라면 바로 에러메시지 출력하고 화살표는 사라집니다.




필터그래프 ( Filter graph )

위와 같이 필터들이 어떤 순서로 어떻게 연결되어 있는지 보여주는 모습을 필터그래프 ( Filter Graph ) 라고 합니다.

http://en.wikipedia.org/wiki/Filter_graph

A filter graph in multimedia processing is a directed graph. Edges represent one way data flow and nodes represent a data processing step. The term pins or pads are used to describe the connection point between nodes and edges.
- 발췌 : 위키피디아, Filter graph 중에서

http://msdn.microsoft.com/en-us/library/dd373390(VS.85).aspx

As the diagram shows, each filter is connected to one or more other filters. The connection points are also COM objects, called pins. Filters use pins to move data from one filter the next. The arrows in the diagram show the direction in which the data travels. In DirectShow, a set of filters is called a filter graph.
- 발췌 : MSDN

위키와 MSDN 의 내용이 좀 다르긴 해도 필터그래프가 어떤 의미인지는 이해가 되시리라 봅니다. ^^;;

다이렉트쇼에서는 동영상 재생이 되려면 이 필터그래프를 구성해야 합니다. 소스필터, 스플리터, 디코더 ( 코덱 ), 후처리필터, 렌더러 필터들이 연결 ( Connect ) 되어 데이타스트림 ( 동영상 파일 ) 이 흘러갈 수 있는 구성이라고 보시면 될 것 같습니다.
 
이 필터그래프를 손쉽게 구성하고, 수정할 수 있도록 도와주는 프로그램이 그래프에디트입니다.

혼동하지 말아야 점은 그래프에디트에서 재생이 된다고 해서 그냥 곧바로 동영상 플레이어에서도 재생되는 건 아니라는 점입니다. 여러 이유가 있겠지만, 동영상 플레이어에 내장된 필터들만 사용하도록 설정해 뒀을 경우라든가, 플레이어와 새로운 필터 간에 마찰(?)이 생겼을 수도 있기 때문입니다.

다행이도 제 경험으로는 그래프에디터에서 원활하게 재생된 건 동영상 플레이어의 여러 설정 변경을 통해 거의 재생됐었다는 겁니다. ^^;; 어떤 필터 혹은 디코더 ( 코덱 ) 이 가장 적절한지는 먼저 그래프 에디터를 통해 누구나 실험해 보실 수 있습니다.




 

 

 

 


WRITTEN BY
리컨
영화를 즐기는 취미를 기록한 블로그입니다.

,