首页 > 解决方案 > Google Chrome 中 ctrl-r、F5 和刷新按钮的区别

问题描述

我有一个应用程序,它利用 janus-gateway 将 gstreamer 生成的 RTP 流转发到在 google chrome 中运行的 vuejs 客户端。有时在页面刷新时,视频元素中不会显示视频。此问题发生的频率因刷新页面所用的方法而异。例如 ctrl-r 工作约 20 次而没有失败,而按下浏览器刷新按钮只工作 2 次,然后每次尝试都失败。刷新按钮的“硬重新加载”和“空缓存和硬重新加载”选项不会影响失败的频率。

查看 chome://webrtc-internals 时,我看到带宽进入浏览器。janus-gateway admin api 也表明它正在发送正确的带宽。这让我认为这个问题与 chrome 中的资源绑定有关。

ctrl-r、F5和刷新按钮有什么区别?他们是否清除了不同的资源?

此行为始于 chrome 版本 71,在 chrome 版本 70 及更早版本中不可重现。

标签: google-chromevue.jswebrtcjanus-gateway

解决方案


只有在创建 PeerConnection 时,如果很快收到关键帧,就会显示视频,否则查看器收到的数据包将没有多大意义(它们将与用户打开流之前发送的内容有所不同) . 由于在您的情况下,源是外部的,在 Gstreamer 中,您只会在 gstreamer 决定发送关键帧时看到一些东西,这可以定期发送,但不够频繁。因此,您需要确保将 gstreamer 管道配置为定期发送关键帧,以便新观众能够赶上。当然,它们也不应该太频繁,因为这在带宽方面是个坏主意。您可以在 Janus 论坛上找到更多信息,这是一个常见问题:https ://groups.google.com/forum/#!forum/meetecho-janus


推荐阅读