2012-09-28 3 views
1

Android 휴대 전화에서 내 노트북으로 비디오를 스트리밍하려고합니다. 나는 gstreamer를 돌렸고 제대로 작동합니다. 내 문제는 다음 코드입니다 :gstreamer : 요소를 추가 할 수 없습니다.

 (server.py:2893): GStreamer-WARNING **: Name 'source' is not unique in bin 'pipeline0', not adding 
     Traceback (most recent call last): 
     File "server.py", line 27, in <module> 
     py = pyserver() 
     File "server.py", line 18, in __init__ 
     pipeline.add(source, decoder, sink) 
     gst.AddError: Could not add element 'source' 

내가있는 GStreamer에 새로운 오전 : 나는 그것을 실행할 때이 오류가

[....] 
    pipeline = gst.parse_launch('rtspsrc name=source latency=0 ! decodebin ! autovideosink') 
    source = pipeline.get_by_name('source') 
    source.props.location = "rtsp://128.237.119.100:8086/" 
    decoder = gst.element_factory_make("decodebin", "decoder") 
    sink = gst.element_factory_make("autovideosink", "sink") 

    pipeline.add(source, decoder, sink) 
    gst.element_link_many(source, decoder, sink) 
    [...] 

. 이 질문을 참조하여 코드를 작성했습니다. Playing RTSP with python-gstreamer

누구든지 내가 잘못하고있는 것을 지적 할 수 있습니까? 왜 나는 adderror를 얻는가?

+0

이 보인다. parse_launch 요소없이 시도해 보시기 바랍니다. 각 요소를 별도로 만들고 파이프 라인에 추가하고 연결 해보십시오. 모든 명령의 반환을 확인하면 쉽게 디버깅 할 수 있습니다. – 10robinho

답변

2

요소 원본을 파이프 라인에 다시 추가하지 않아도됩니다. 이미 추가되었습니다. gstreamer를 gst_pipeline_add_many() 문서에서

1

는 :

은 빈에 요소의 NULL로 끝나는 목록을 추가합니다.

그래서되어야합니다 : 당신이 어딘가에 전에 소스 요소를 추가처럼

gst.element_link_many(source, decoder, sink, NULL); 
관련 문제