0

我正在尝试以尽可能低的延迟发送和接收视频流。对于发送,我在 linux 上使用 gstreamer:

gst-launch-1.0 -v rtpbin ntp-sync=false name=rtpbin \
    v4l2src do-timestamp=true ! jpegenc ! rtpjpegpay ! rtpbin.send_rtp_sink_0 \
    rtpbin.send_rtp_src_0 ! udpsink port=2000 host=192.168.1.10 name=vrtpsink \
    rtpbin.send_rtcp_src_0 ! udpsink port=2001 host=192.168.1.10 sync=false async=false name=vrtcpsink \
    udpsrc port=2005 name=vrtpsrc ! rtpbin.recv_rtcp_sink_0          

此管道将视频发送到端口 2000,并使用端口 2001 和 2005 进行一些“神奇”的 rtcp 同步。

如果我在 linux 上使用 gstreamer 作为接收器,效果很好;我得到低于 400 毫秒的延迟。

但是,在 Windows 上接收时,我很难获得相同的性能。我尝试了什么:

  • VLC。似乎根本不支持 rtcp。
  • 用于 Windows 的 gstreamer。似乎工作起来很奇怪,会产生巨大的延迟,甚至是幻灯片而不是视频;rtcp 似乎不起作用。
  • ffmpeg。打开 rtcp 端口,但它根本不影响任何东西。-nobuffer 选项的延迟约为 1000 毫秒。

我还有什么选择吗?任何类型的库或sdk?

4

0 回答 0