Google Home Camera与WebRTC集成问题:EMPTY_SDP报错排查
问题核心
发送GetCameraStream请求后返回SUCCESS,但Google Home未向指定的https://xxxx/signaling/answer端点发送SDP Offer请求,仅在关闭应用界面时发送{"action":"end"};Google Cloud日志显示EMPTY_SDP错误,附带ASTWebRTCConnectionDomain error -1015。已知cameraStreamOffer为可选字段,需明确该错误的含义及触发原因。
EMPTY_SDP 含义
该错误表示Google Home在初始化WebRTC连接流程中,未能获取到有效的SDP(会话描述协议)数据,导致连接协商无法推进,最终终止流程。这里的SDP缺失可能来自两种场景:设备端未主动提供cameraStreamOffer,且Google Home发起Offer请求后未收到有效响应;或设备端提供的cameraStreamOffer本身为空/无效。
问题原因分析
信令端点异常
尽管cameraStreamOffer可选,但设备必须确保signaling/answer端点能正常接收并处理Google Home发送的SDP Offer请求。如果端点存在以下问题,会导致Google Home无法获取有效SDP Answer,触发EMPTY_SDP:- 端点未配置合法的HTTPS证书(Google Home要求信令端点必须使用公网信任的SSL证书,自签证书会被拦截)
- 端点不可达,或被防火墙、网络策略阻止Google Home的IP访问
- 端点未正确处理POST请求,无法解析Google Home发送的Offer数据,也未返回符合要求的SDP Answer
对「可选字段」的误解
cameraStreamOffer可选仅代表设备有两种初始化WebRTC的方式:要么主动向Google Home发送Offer,要么等待Google Home发起Offer。但无论哪种方式,都必须保证SDP协商能正常完成。如果设备选择等待Google Home发起Offer,但信令端点无法响应,就会导致SDP为空,触发错误。WebRTC参数不兼容
设备端的WebRTC配置(如视频编码格式、ICE服务器设置、媒体参数)不符合Google Home的要求,即使信令流程正常,也会导致SDP协商失败,最终被判定为EMPTY_SDP。例如Google Home仅支持特定profile/level的H.264编码,若设备不匹配则协商无法完成。
排查建议
- 验证信令端点可用性:用Postman等工具模拟Google Home的请求格式(POST方法,携带SDP Offer的JSON数据),发送到
signaling/answer端点,确认能返回合法的SDP Answer。 - 检查网络与证书:确认端点的HTTPS证书有效,且网络策略允许Google Home的IP段访问该端点。
- 核对WebRTC配置:对照Google Home Camera文档,检查设备的编码格式、ICE服务器、媒体参数是否符合要求。
内容的提问来源于stack exchange,提问作者kakopappa

