2007년 1월 20일 토요일

gst + python 팁

여러가지 방법으로 GStreamer를 사용할 수 있긴 하지만 GObject를 기반으로 한 동적인 특징은 파이썬과 상당히 어울린다.

GStreamer에서 흔히 하는 일 중의 하나가 n개의 element를 만들고 그 element를 pipeline에 추가한 다음에 줄줄이 연결하는 일인데, 사용하는  컴퓨터의 pygst가 구버전인지 add_many()는 구현되어 있지만 link_many()가 구현되어 있지 않다...  그래서 map/zip으로 해결.  (하는 김에 add_many()도 map으로)

import gst

player = gst.Pipeline('player')

elements = [gst.element_factory_make('filesrc'),
            gst.element_factory_make('mad'),
            gst.element_factory_make('gconfaudiosink')]
elements[0].set_property('location', 'fighter.mp3')

map(player.add, elements)
map(lambda (x,y): x.link(y), zip(elements[:-1], elements[1:]))

player.set_state(gst.STATE_PLAYING)


댓글 없음:

댓글 쓰기

뜬금없이 문법 따위를 지적하거나, 오래된 글에 링크가 깨진 걸 지적하는 등의 의미 없는 댓글은 자제해 주시기 바랍니다. 그러한 경우 답 없이 삭제합니다. 또한 이해 당사자이신 경우 숨어서 옹호하지 마시고 당사자임을 밝히시길 바랍니다.

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.