Получать в реальном времени видео поток rtp/rtcp на окнах
Я пытаюсь отправить и получить видеопоток с минимальной задержкой. Для отправки я использую gstreamer на linux:
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.
Если я использую gstreamer на Linux в качестве приемника, он прекрасно работает; Я получаю задержки ниже 400 мс.
Тем не менее, я изо всех сил пытаюсь получить ту же производительность при получении на Windows. Что я попробовал:
- VLC. Кажется, не поддерживает rtcp вообще.
- gstreamer для windows. Кажется, работает странно, производя огромные задержки или даже слайд-шоу вместо видео; RTCP, похоже, не работает.
- FFmpeg. Открывает порт rtcp, но это ни на что не влияет. Задержка с опцией -nobuffer составляет около 1000 мс.
У меня есть еще варианты? Любая библиотека или SDK?