Самая маленькая задержка, которую я достиг, составляет 170 мс. Я понимаю, что это называется низкой задержкой для реальных живых приложений? Но возможно ли уменьшить задержку больше? То же самое приложение, работающее в рабочем столе Google Chrome, имеет задержку 100 мс, что в порядке. Я полагаю, что Android Google Chrome имеет минимальный предел буфера -джиттера выше, чем на рабочем столе. Я прав? < /P>
Мой текущий код для установления соединения и потоковой передачи WEBRTC следующего < /p>
Код: Выделить всё
public async runWebRTC() {
const pc = this.pc;
pc.addTransceiver('video', {direction: 'recvonly'});
pc.ontrack = event => {
this.video.nativeElement.srcObject = event.streams[0];
pc.getReceivers().forEach(receiver => {
if (receiver.track.kind === "video") {
try {
receiver.jitterBufferTarget = 10;
receiver.track.contentHint = "motion";
} catch (e) {
}
}
});
};
pc.onicecandidate = async e => {
if (e.candidate === null) {
const offer = pc.localDescription;
try {
const response = await fetch('/offer', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(offer)
});
const answer = await response.json();
await pc.setRemoteDescription(answer);
} catch (err) {
console.error('Error sending offer:', err);
}
}
};
// Create an offer to send to the server
const offer = await pc.createOffer();
await pc.setLocalDescription(offer);
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... web-camera