我正在创建一个客户端应用程序,在远程 pear 连接和断开连接时构建和销毁 webrtcbin gstreamer 组件。在 ICE 协商期间,应用程序会打开多个端口,这很好。
> netstat -aon | findstr 11608
TCP 10.17.106.41:54009 0.0.0.0:0 LISTENING 11608
TCP 127.0.0.1:53981 127.0.0.1:57778 ESTABLISHED 11608
TCP 192.168.56.1:54012 0.0.0.0:0 LISTENING 11608
TCP [fe80::34:f544:540:20ec%6]:54010 [::]:0 LISTENING 11608
TCP [fe80::8618:6e2e:a295:191c%14]:54011 [::]:0 LISTENING 11608
UDP 10.17.106.41:62525 *:* 11608
UDP 192.168.56.1:62528 *:* 11608
UDP [fe80::34:f544:540:20ec%6]:62526 *:* 11608
UDP [fe80::8618:6e2e:a295:191c%14]:62527 *:* 11608
当远程对等点断开连接时,我将 webrtcbin 设置为 GST_STATE_NULL 状态并根据其他来源:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1169
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1636
这应该释放 webrtcbin 保留的端口。
问题是它没有发生,我猜描述这些端口连接的文件描述符被泄露了。
已经尝试应用链接中提到的总线刷新技巧,但没有帮助。
你找到webrtcbin免费端口的解决方案了吗? 我有 sema 问题