带有多个UDP接收器的GStreamer管道(包括图像)

Mic*_*and 5 java gstreamer

我正在尝试使用gstreamer-java构建会议解决方案.

我被音频部分困住了,因为每个参与者都应该只听到其他人,而不是他自己.

我构建了一个管道(参见附带的图像文件).

如果我在最后放置一个rtpmuxer和一个udpsink/multiudpsink,整个构造工作.但在这种情况下,每个参与者都会复用所有音频流(如预期的那样).

如果我在图片中这样做,则不会创建数据包(使用wireshark检查).我在推理中的错误在哪里?

(您可以将图像拉到另一个标签以便能够阅读文本)

管道的调试图像

Mic*_*and 5

这是一个糟糕的管道,但它确实做到了它应该做的事情。我添加了点文件的转储,以便您可以方便地提取管道的图像。

GST_DEBUG_DUMP_DOT_DIR=/tmp/ gst-launch --gst-debug-level=2 gstrtpbin name=rtpbin latency=2 sync=false udpsrc name=udpsrc0 caps="application/x-rtp, media=audio, clock-rate=8000, payload=0, encoding-name=PCMU" port=5000 ! rtpbin.recv_rtp_sink_0 rtpbin. ! rtppcmudepay ! mulawdec ! tee name=t0 ! queue max-size-buffers=150 ! liveadder name=mix1 ! mulawenc ! rtppcmupay ! udpsink name=udpsink1 host=192.168.0.101 port=5050 t0. ! queue max-size-buffers=150 ! liveadder name=mix2 ! mulawenc ! rtppcmupay ! udpsink name=udpsink2 host=192.168.0.112 port=5050  rtpbin. ! rtppcmudepay ! mulawdec ! tee name=t1 ! queue max-size-buffers=150 ! liveadder name=mix0 ! mulawenc ! rtppcmupay ! udpsink name=udpsink0 host=192.168.0.101 port=5051 t1. ! queue max-size-buffers=150 ! mix2. rtpbin. ! rtppcmudepay ! mulawdec ! tee name=t2 ! queue max-size-buffers=150 ! mix0. t2. ! queue max-size-buffers=150 ! mix1.
Run Code Online (Sandbox Code Playgroud)