webRTC:视频流在本地播放,但不';不要玩遥控器 建筑师 网页用于创建连接。它在配置中使用了一个眩晕和一个回合服务器。它创建一个报价,并仅在收集了所有候选客户之后才将报价发送给远程客户端
远程(GO)服务器使用REST API接受报价,并用应答。只有在远程对等机上收集了所有候选人之后,才会发送答案。即,在收到webRTC:视频流在本地播放,但不';不要玩遥控器 建筑师 网页用于创建连接。它在配置中使用了一个眩晕和一个回合服务器。它创建一个报价,并仅在收集了所有候选客户之后才将报价发送给远程客户端,webrtc,video-streaming,stun,Webrtc,Video Streaming,Stun,远程(GO)服务器使用REST API接受报价,并用应答。只有在远程对等机上收集了所有候选人之后,才会发送答案。即,在收到“候选人后 远程服务器有一个正在发送到主机的本地RTP流。主机在发送报价之前添加收发器 当收到onTrack事件时,流被添加到变量中,并且仅当iceConnectionState更改为connected时,才设置为组件的srcObject 问题 在本地网络的情况下,上述设置非常有效。主持人和同伴都选择了一个主持人候选者,视频播放得非常完美 当使用远程连接时,如果是眩晕(s
“
候选人后
报价之前添加收发器
onTrack
事件时,流
被添加到变量中,并且仅当iceConnectionState
更改为connected
时,才设置为
组件的srcObject
主持人
候选者,视频播放得非常完美
当使用远程连接时,如果是眩晕(srflx)候选和转向(中继)候选,视频都不会播放
chrome://webrtc-internals
清楚地显示交通工具已选择正确的候选者,但所选的本地
候选者上没有交通
我可以看到,在远程对等机上使用UDP转储可以完美地发送视频流
调试信息
srflex
候选,与本地网络相比,nack
和pli
计数非常高对我来说,这听起来像是丢包。有几件事可能是导致它的原因 你能试着降低你正在发送的内容的比特率吗?看看是不是交通堵塞造成的
你能试着降低MTU吗?如果您正在从FFMPEG转发数据包,请尝试将pkt_大小附加到URL,如谢谢。这很好用。修正的是MTU的大小。我很好奇你是如何达到1280的MTU尺寸的。是1200(webRTC)+头吗?很久以前我调试时偶然发现,现在1280是我一直使用的第一个值:)1200实际上是一个更好的赌注,这是Pion使用的MTU!
if(pc.iceGatheringState === "complete"){
const resp = await fetch("REMOTE URL", {
method: "post",
body: JSON.stringify({
offer: btoa(JSON.stringify(pc.localDescription)),
}),
});
const sdp = await resp.text();
pc.setRemoteDescription(
new RTCSessionDescription(JSON.parse(atob(sdp)))
).catch((e) => console.log(e));
}
pc.addTransceiver("video", { direction: "recvonly" });
For approx 15 sec of video
pliCount:
local: 5
remote: 221
nackCount:
local: 7
remote: 2577