gstreamer-udp-Streaming ist langsam

Arbeite ich an einer videochat-Anwendung und bin Probleme mit UDP-streaming-vs TCP.

Wenn ich den Rohrleitungen unterhalb der video-streams akzeptabel. (Die Anwendung selbst ist in python, aber die Leitungen sind im wesentlichen wie unten)

sender: 

gst-launch-0.10 v4l2src ! video/x-raw-yuv,width=320,height=240 ! 
    theoraenc ! oggmux ! tcpclientsink host=nnn.nnn.nnn.nnn port = 5000

receiver: 

gst-launch-0.10 tcpserversrc host=nnn.nnn.nnn.nnn port=5000 
    ! decodebin ! xvimagesink

Jedoch, da diese app ist die Durchführung über/durch NAT, I UDP-streaming.
Wenn ich schalten Sie die tcpserversrc zu einem "udpsrc port=5000" und der tcpclientsink zu einem "udpsink host = nnn.nnn.nnn.nnnn port=5000", die Leistung sinkt bis zu dem Punkt, wo der empfangende computer wird mit einem single-frame alle 5 Sekunden oder so. (Dies geschieht auch, wenn beide streams ausgeführt werden auf der gleichen Maschine)

Den senden-pipeline generiert die folgenden (einmal):

WARNING: from element /GstPipeline:pipeline0/GstUDPSink:udpsink0: 
    Internal data flow problem.
    Additional debug info:
    gstbasesink.c(3492): gst_base_sink_chain_unlocked (): /GstPipeline:pipeline0
    /GstUDPSink:udpsink0:
    Received buffer without a new-segment. Assuming timestamps start from 0.

...und das empfangen-pipeline generiert (alle 20 Sekunden oder so):

WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: 
    A lot of buffers are being dropped.
    Additional debug info:
    gstbasesink.c(2739): gst_base_sink_is_too_late (): /GstPipeline:pipeline0
    /GstXvImageSink:xvimagesink0:
    There may be a timestamping problem, or this computer is too slow.

Ich gelesen habe, docs und manpages, fummelte mit verschiedenen Parametern, um die udpsink, ohne gute Wirkung.
Kann jemand mich direkt zu dem (zweifellos offensichtliche) Sache, die ich bin ganz nicht immer auf???
Vielen Dank im Voraus 🙂

InformationsquelleAutor powerclam | 2011-06-28
Schreibe einen Kommentar