我有一個任務,但我似乎無法完成它。我在 Raspberry Pi 上創建了一個非常簡單的 WebRTC 流,它將用作視頻聊天相機。使用 ionic 我制作了一個簡單的移動應用程式,當手機連接到同一網路時,它可以顯示我的 WebRTC 流。這一切都有效。
所以現在我有自己的本地流顯示在我的應用程式上。我現在希望能夠將此流從我的手機廣播到實時服務器,以便其他人可以觀看。
我知道如何創建一個 NodeJS 服務器,它使用“getUserMedia”功能部署我的網路攝像頭。但我想將我的 WebRTC 流“推送”到實時服務器,以便我可以檢索它的公共 URL。
有沒有辦法將我的本地 Websocket 推送到實時環境?我正在使用本地 RTCPeerConnection 創建 MediaStream 物件
this.peerconnection = new RTCPeerConnection(this.peerservers);
this.peerconnection.onicecandidate = (event) => {
if (event.candidate && event.candidate.candidate) {
var candidate = {
sdpMLineIndex: event.candidate.sdpMLineIndex,
sdpMid: event.candidate.sdpMid,
candidate: event.candidate.candidate
};
var request = {
what: "addIceCandidate",
data: JSON.stringify(candidate)
};
this.websockets.send(JSON.stringify(request));
} else {
console.log("End of candidates.");
}
};
并將流物件系結到我的 HTML Video 標簽,我正在使用它
onTrack(event) {
this.remoteVideo.srcObject = event.streams[0];
}
我的流 url 類似于:MyLocalIP:port/streams/webrtc 所以我想從中創建一個公共 URL 來廣播它。
uj5u.com熱心網友回復:
有沒有辦法將我的本地 Websocket 推送到實時環境?
這并不簡單,因為您需要的不僅僅是普通的 webrtc(點對點)。你想要的是一個SFU。看看mediasoup。
要了解為什么需要這樣做,請考慮如何在您當前的應用程式中建立 webrtc 連接。這是兩方之間的協商(由信令服務器促成)。為了將其轉換為多播設定,您需要一個代理,然后與所有發送方和接收方建立單獨的對等連接。
uj5u.com熱心網友回復:
您可以使用 Socket.io 和 WebRTC 來實作,請參閱此處的示例
var offerer = new PeerConnection('http://domain:port', 'message', 'offerer');
offerer.onStreamAdded = function(e) {
document.body.appendChild(e.mediaElement);
};
var answerer = new PeerConnection('http://domain:port', 'message', 'answerer');
answerer.onStreamAdded = function(e) {
document.body.appendChild(e.mediaElement);
};
answerer.sendParticipationRequest('offerer');
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/386877.html
標籤:节点.js 离子框架 网络套接字 网页版 rtcpeerconnection
