2013-03-24 2 views
2

나는 명령 행에서 실행하고 싶은 간단한 오디오 플레이어를 만들려고 시도했다. 나는 이것을 Gstreamerpygst 파이썬 바인딩과 지금까지 사용한 적이있다. 다음과 같습니다Gstreamer가 X11을 초기화하지 못하도록 막는 방법

어떤 이유로 지금
import pygst 
pygst.require('0.10') 
import gst 
import os 

class Player(object): 
    mp3stream = "http://http-live.sr.se/p1-mp3-192" 

    def __init__(self): 
     self.pipeline = gst.Pipeline("RadioPipe") 
     self.player = gst.element_factory_make("playbin", "player") 
     self.pipeline.add(self.player) 

     self.player.set_property('uri', self.mp3stream) 
     self.pipeline.set_state(gst.STATE_PLAYING) 

player = Player() 

while 1: 
    if(1 == 2): 
     break  

,이 코드를 실행할 때 다음과 같은 경고를 얻을 :

** (radio.py:7803): WARNING **: Command line `dbus-launch --autolaunch=f12629ad79391c6f12cbbc1a50ccbcc8 --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.\n 

나는 문제없이 음악을 재생할 수 있습니다,하지만 난 아주 많이 제거 것 이 경고들, 지금 나는 Gstreamer 라이브러리 f 또는 어떤 이유로 든 X11이 필요하지만 무언가를 시작하려하지만 오디오 재생 부분에는 필요하지 않습니다. 이 가정의 타당성에 대한 의견은 언제나 환영합니다.

Gstreamer가 X11을 초기화하지 못하도록 다른 것을 가져 오거나 일종의 플래그를 전달할 수 있습니까?

나는이 추가 해봤 1

편집 : documentation에 따라 위의 코드가 자동으로 비디오 스트리밍의 활성화를 해제합니다

fakesink = gst.element_factory_make("fakesink", "fakesink") 
self.player.set_property("video-sink", fakesink) 

. 그러나이 경고에 내 문제가 해결되지 않습니다.

을 편집 element(?) playbin 여러 오디오 및 비디오 관련 물건의 기성품 배관 같은 것이 그래서 2

그래, 난 지금은 더 잘 설명 할 수 없다 죄송합니다. 그러나 재생 빈은 에 액세스하려고 시도하는 일부 elements(?)을 초기화하는 것 같습니다. 나는 비디오 콜을하지 않았기 때문에 추락하지는 않는다고 생각합니다. playbin elements(?) 중 일부를 수정했지만 아무도 X11 경고를 수정하지 않았습니다.

현재의 코드는 다음과 같습니다 요소 다음

self.pipeline = gst.Pipeline("RadioPipe") 

self.player = gst.element_factory_make("playbin", "player") 
pulse = gst.element_factory_make("pulsesink", "pulse") 
fakesink = gst.element_factory_make("fakesink", "fakesink") 

self.player.set_property('uri', channel) 
self.player.set_property("audio-sink", pulse) 
self.player.set_property("video-sink", fakesink) 

self.pipeline.add(self.player) 

와 Questionmark 날 반드시 올바른 표현입니다없는과 관련이있다.

답변

1

재생 빈의 flag 속성에서 video 플래그를 비활성화 할 수 있어야합니다. 또는 비디오가 필요하고 필요한 비디오 싱크를 알고있는 경우 그에 따라 video-sink 속성을 설정하십시오.

+0

의견을 보내 주셔서 감사합니다. 저는 gstreamer를 완전히 처음 보았습니다. 그래서 내가 올바르게 따라 왔는지 확실하지 않습니다. 그러나 비디오 스트리밍의 자동 실행을 사용하지 못하게하는 것이 올바르게 이해되면, 필자는 필요 없기 때문에 내 경우에는 사용하지 않는 것이 좋습니다. –

+0

확인. 나는 이것이 당신의 질문에 대한 답이 아니라는 것을 깨달았습니다. 나는 처음에 비디오 싱크가 시도되고 경고를 생성했다고 가정했는데, 이는 사실이 아닌 것으로 보입니다. 'gst-inspect'을 실행하고'hal'을 grep 할 수 있습니까? DBUS를 직접 참조하는 유일한 gstreamer 플러그인입니다. – Hasturkun

+0

나는'gst-inspect-0.10 | grep hal' 그리고 아무것도 출력하지 않습니다. 지금까지의 나의 이해에서, 오디오 스트림 만 enalbes하는 요소 팩토리에'playbin '대신에 전달할 수있는 다른 것이 존재하지 않아야합니까? –

관련 문제