1

Androidフォンからラップトップにビデオをストリーミングしようとしています。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)
    [...]

実行すると、次のエラーが表示されます。

      (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を初めて使用します。コードを書くためにこの質問を参照しました: Playing RTSP with python-gstreamer

誰かが私が間違っていることを指摘してもらえますか? adderror が表示されるのはなぜですか?

4

2 に答える 2

4

要素ソースをパイプラインに再度追加する必要はありません。すでに追加されています。

于 2012-09-29T17:56:05.497 に答える
1

gstreamer gst_pipeline_add_many()ドキュメントから:

NULL で終わる要素のリストをビンに追加します。

したがって、次のようになります。

gst.element_link_many(source, decoder, sink, NULL);
于 2013-09-17T08:14:31.537 に答える