执行了./objs/srs -c conf/rtc.conf
打开了srs的推拉流网页:
推流
拉流
srs报错如下:
[2023-11-08 21:55:23.489][Warn][44992][8xvf4d62][104][DTLS_HANG] DTLS:
Hang, done=0, version=-1, arq=0
观看srs日志,在sdp offer,answer交换完以后,DTLS交换失败,报上述错误。
RTC remote offer:
RTC local answer:
原因是因为conf/rtc.conf中candidate的配置,当推拉流浏览器在本地时,如果srs也在本地,那么可以使用官网默认。如果srs在公网上,由于srs是lite-ice端,导致他不会主动到srs获取自己的公网ip,因此需要在这里帮他指定 ,他才会把这个ip放到sdp中,发给full-ice的浏览器客户端。
切忌什么时候都不可以写为127.0.0.1,也会报上述错误,如果浏览器和srs都在一个pc上,也可以使用 “*” 如"candidate *;"
rtc_server {
enabled on;
listen 8000; # UDP port
# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidate
candidate $CANDIDATE; #如139.169.8.2;
}
参考srs官网