Google Nest Hub对接WebRTC摄像头流异常问题排查
问题根因
对接流程存在两处核心配置错误,导致Google Home平台未正确识别设备声明的WebRTC流支持能力,最终下发指令时未携带WebRTC协议选项:
- 布尔类型字段传值不符合规范:SYNC响应
attributes节点下的cameraStreamNeedAuthToken、cameraStreamNeedDrmEncryption两个字段,协议要求必须传入布尔类型值,当前配置传的是带引号的字符串类型"true"/"false",平台做属性Schema校验时会判定该属性块非法,直接忽略你声明的cameraStreamSupportedProtocols配置,回退到默认的公共流协议列表。 - 协议枚举值写法错误:
cameraStreamSupportedProtocols数组中WebRTC对应的标准枚举值为WebRTC(大写开头),当前配置传的是全小写的webrtc,即便属性校验通过,平台也无法匹配到对应的协议标识。
修复步骤
- 调整SYNC响应的attributes节点配置,修正字段类型和枚举值写法,参考如下:
"attributes": { "cameraStreamSupportedProtocols": ["WebRTC"], "cameraStreamNeedAuthToken": true, "cameraStreamNeedDrmEncryption": false }
- 触发全量设备SYNC同步,等待平台刷新设备属性缓存。如果需要立即验证,可以先在Google Home中解绑该设备后重新绑定,跳过缓存等待周期。
- 重新在Nest Hub上进入摄像头页面,此时收到的
GetCameraStream指令中,SupportedStreamProtocols参数就会包含WebRTC选项,按协议返回对应WebRTC流信息即可正常拉流。
补充说明:平台默认回退的支持协议列表正好是你当前收到的
progressive_mp4/hls/dash/smooth_stream四个值,和属性校验失败后的回退逻辑完全吻合,可以优先排查配置类型问题。
内容的提问来源于stack exchange,提问作者ycoder-pro
相关产品推荐
相关产品推荐

