【问题标题】:Webrtc. Video data not sent from ipad safariWebrtc。未从 ipad safari 发送视频数据
【发布时间】:2021-04-09 06:26:14
【问题描述】:

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

用户 1(Windows 上的 Chrome)、用户 2(ipad 14、Safari)、用户 3(MacOS、Safari)。用户 1 可以看到/听到并被所有人看到/听到。用户 2 可以看到/听到所有内容,但用户 3 看不到(音频很好)。所有人都可以看到/听到用户 3。我记录了来自每个对等连接的统计信息,对于视频类型的出站 rtp,没有数据从用户 2 发送到用户 3(但音频可以正常发送,音频/视频可以正常发送给用户 1)。

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

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

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

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

【问题讨论】:

    标签: ios ipad video safari webrtc


    【解决方案1】:

    回答我自己的问题,以防其他人遇到这个问题。经过大量挖掘,我找到了一种方法。

    在我的应用程序中,视频渲染得非常小,因此我在 getUserMedia 中设置了视频约束宽度:160。调用本身运行良好(没有抛出异常)并且视频捕获正常,但由于某种原因,它不会将该视频数据发送到其他 Safari 浏览器。我将其更改为 320,一切都开始工作了。 折衷当然是浪费带宽,但至少它有效。

    【讨论】:

    • 嘿,很高兴你遇到这个问题,你能把代码示例发给我吗,我也有同样的问题。加上 Mac Safari 浏览器到 iPad Safari 你也测试过这个组合吗?
    • @MuhammadAdil。我认为这是从 Safari 到 Mac 和 Ipad 上的 Safari 的问题。这是一些示例代码。真的只是根据 safari 变量设置约束。让 videoContraints = isSafari 吗? {宽度:320}:{宽度:160};让约束 = { 视频:videoContraints };让流 = 等待 navigator.mediaDevices.getUserMedia(constraints);
    • 谢谢你的回复,不过我觉得应该是2.8.0版本的aws-chime-sdk-js自动处理
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    相关资源
    最近更新 更多