gstreamer udp流媒体很慢

pow*_*lam 8 streaming udp video-streaming gstreamer

我正在研究视频应用程序,但遇到UDP流与TCP的问题.

当我使用下面的管道时,视频流可以接受.(应用程序本身是python,但管道基本上如下)

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
Run Code Online (Sandbox Code Playgroud)

但是,由于这个应用程序要跨越/通过NAT执行,我需要UDP流.当我将tcpserversrc切换为"udpsrc port = 5000"并将tcpclientsink切换为"udpsink host = nnn.nnn.nnn.nnnn port = 5000"时,性能急剧下降到接收计算机每5秒获取一个帧的程度或者.(即使两个流在同一台机器上执行,也会发生这种情况)

发送管道生成以下(一次):

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.
Run Code Online (Sandbox Code Playgroud)

...并且接收管道生成(每20秒左右):

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.
Run Code Online (Sandbox Code Playgroud)

我已经阅读了文档和联机帮助页,摆弄了udpsink的各种参数,一切都没有好的效果.任何人都可以指导我(无疑是显而易见的)我完全没有得到的东西吗?提前致谢 :)

Fux*_*uxi 7

我有同样的问题.尝试设置

sync=false
Run Code Online (Sandbox Code Playgroud)

tcpclientsinkxvimagesink上

  • 有用!谢谢.顺便问一下,`sync = false`甚至做什么? (3认同)