You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复iOS设备上Kurento视频会议的视频流黑屏问题

修复iPhone端Kurento视频会议远端黑屏问题

以下是针对你遇到问题的具体修复方案:

  • 明确指定视频编码格式
    iPhone的Safari WebRTC实现默认优先使用H.264编码,而Kurento如果没有正确适配可能会出现兼容性问题。修改你的videoConstraints,明确指定H.264编码:

    const videoConstraints = {
      facingMode: 'environment',
      width: { ideal: 1280 },
      height: { ideal: 720 },
      codec: 'H264'
    };
    
  • 移除固定延迟的connectMedia触发逻辑
    你当前用setTimeout(100ms)触发媒体连接的时机不可靠,iPhone上WebRTC初始化速度可能更慢,容易导致媒体流未准备好就发送指令。建议在ICE候选收集完成后再触发,比如在onIceCandidate回调中判断候选为null(表示收集完成)时执行:

    // 修改Participant的onIceCandidate方法
    onIceCandidate(candidate) {
      if (candidate) {
        this.socket.emit('iceCandidate', { candidate, sender: this.sender, mode: this.mode });
      } else {
        // 候选收集完成后触发媒体连接
        iKurentoClient.sendMessage({ ...data, type: 'video', mode: 'webcam', id: 'connectMedia' });
      }
    }
    

    同时删除原来的setTimeout代码块。

  • 确保video元素符合Safari要求
    iPhone Safari对video元素的属性有严格限制,必须添加playsinline、autoplay、muted属性才能正常播放本地视频,进而保证媒体流正常发送:

    <video autoplay playsinline muted></video>
    
  • 验证Kurento服务器的H.264支持
    检查Kurento配置文件(通常路径为/etc/kurento/kurento.conf.json),确认mediaServer下的codecs列表包含H264:

    "mediaServer": {
      "codecs": [
        "H264",
        "VP8",
        "VP9",
        "G711",
        "OPUS"
      ]
    }
    

    如果没有添加,修改后重启Kurento服务。

内容的提问来源于stack exchange,提问作者alex jk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 12:18:26