Webrtc.视频数据不是从ipad safari发送的



我有一个小型网络应用程序,它使用基于webrtc的应用程序,最多允许4个人看到/听到彼此的声音。在大多数情况下,一切都很好,除非涉及ipad。以下是一些测试场景:

用户1(windows上的chrome(,用户2(ipad 14,safari(,用户3(MacOS,safari(。用户1可以看到/听到并被所有人看到/听到。用户2可以看到/听到所有内容,但用户3看不到(音频很好(。用户3可以被所有人看到/听到。我记录了每个对等连接的统计数据,对于视频类型的出站rtp,没有数据从用户2发送到用户3(但音频发送良好,音频/视频发送良好(。

如果用户3也切换到使用iPad,那么现在用户2和用户3无法看到对方(这两个用户之间没有发送出站视频数据(,尽管他们仍然可以听到对方的声音。

如果我们有两台Windows/Chrome机器和一台iPad,一切都很好。

因此,Ipad似乎不会将视频发送到另一个Safari实例(无论是Mac还是Ipad(,但可以很好地发送音频,并可以将音频和视频发送到Chrome。所有信令状态都如预期,所有对等连接状态都已完成,音频和视频轨道的ontrack都按预期调用。音频和视频捕捉良好(因为用户1看到/听到它们(。我不明白为什么视频数据没有从ipad发送到另一个Safari。

有人遇到过这个问题吗?或者有什么建议吗?

回答我自己的问题,以防其他人遇到这种情况。经过大量挖掘,我找到了一种使它发挥作用的方法。

在我的应用程序中,视频渲染得很小,所以我在getUserMedia中设置了一个视频约束宽度:160。调用本身运行良好(没有异常(,捕获的视频也正常,但由于某种原因,它不会将视频数据发送到其他Safari浏览器。我把它改成320,一切都开始工作了。代价当然是浪费带宽,但至少它是有效的。

最新更新