Browser 如何检测数据包丢失GStreamer-webrtcbin(以及如何发送PLI或FIR)

Browser 如何检测数据包丢失GStreamer-webrtcbin(以及如何发送PLI或FIR),browser,webrtc,gstreamer,Browser,Webrtc,Gstreamer,我正在开发基于GStreamer的应用程序,用于从浏览器接收WebRTC流。 我刚刚开始介绍webrtc sendrecv.c的示例: 问题是图像损坏。来源是屏幕共享(getDisplayMedia)——经过一段时间的传输后,我得到了不同的彩色方块——即使在一台PC或LAN上也缺少一些东西 在Linux和MacOS上试用过浏览器,在两个Linux发行版(GStreamer 1.16.2和1.18.0)上试用过GStreamer应用程序 现在我不知道如何检测到这种情况,以及如何向源浏览器发送PL

我正在开发基于GStreamer的应用程序,用于从浏览器接收WebRTC流。 我刚刚开始介绍webrtc sendrecv.c的示例:

问题是图像损坏。来源是屏幕共享(getDisplayMedia)——经过一段时间的传输后,我得到了不同的彩色方块——即使在一台PC或LAN上也缺少一些东西

在Linux和MacOS上试用过浏览器,在两个Linux发行版(GStreamer 1.16.2和1.18.0)上试用过GStreamer应用程序

现在我不知道如何检测到这种情况,以及如何向源浏览器发送PLI或FIR消息

你知道如何面对这一切吗?如果是,怎么做? 谢谢,迪姆

编辑1: 好的,运行一段时间后,我发现数据包明显丢失vivaldi://webrtc-internals 示例应用程序中一定有问题

我可以在浏览器端获取丢失的数据包数量:

函数getStats(pc){ 中频(pc){ pc.getStats(空)。然后(stats=>{ stats.forEach(报告=>{ if((report.type==“远程入站rtp”)&&(report.kind==“视频”)){ console.log(report.packetsLost); } }) }) } }
告诉浏览器PLI的方法是什么?JS中是否有一些API调用?

如果您使用的是Chrome,要了解数据包丢失量,您可以访问chrome://webrtc-internals. 它将向您显示有关实际RTC对等连接的大量统计信息,包括数据包丢失和往返时间。

如果您使用的是Chrome,要了解数据包丢失的数量,您可以通过访问查看WebRTC统计信息chrome://webrtc-internals. 它将向您显示有关实际RTPeerConnection的大量统计信息,包括数据包丢失和往返时间