WebRTC

WebRTC筆記

  • 簡介

    網(wǎng)頁即時通信(Web Real-Time Communication)是一個支持網(wǎng)頁瀏覽器進行實時語音對話或視頻對話的API。目的主要是讓Web開發(fā)者能夠基于瀏覽器(Chrome\FireFox...)輕易快捷開發(fā)出豐富的實時多媒體應用,而無需下載安裝任何插件;Web開發(fā)者也無需關注多媒體的數(shù)字信號處理過程,只需編寫簡單的Javascript程序即可實現(xiàn)。

    WebRTC提供了視頻會議的核心技術,包括音視頻的采集、編解碼、網(wǎng)絡傳輸、顯示等功能,并且還支持跨平臺:windows,linux,mac,android。

    不能簡單地將 WebRTC 與 RTC 劃等號。

  • 應用場景

    視頻成了娛樂、學習、商務會議、社交、電商的載體,人們逐漸不再有耐心閱讀文字性的信息。視頻不僅是信息的展現(xiàn)方式,從單向的“錄制 上傳 下載 找播放器打開 播放”,變成了“現(xiàn)場錄制 邊錄邊播 實時收看”,再變成視頻與即時通訊工具、會議工具融合的雙向“錄制與播放”。實時視頻的目標,是把正在某個地方A發(fā)生的人和事,以幾乎零延遲、不失真的方式“同步”到另外一個地方 B,讓 B 的人瞬間看到、聽到,并且反之亦然。

    Cloud Gaming,就是你不需要本地的光盤了,游戲在云端運行,然后通過流媒體的方式傳輸?shù)侥愕钠聊簧?,就像你在電視上點播電影一樣,但你用游戲手柄可以與“電影”互動。

    元宇宙,是一個“仿真”或者說“全真”的互聯(lián)網(wǎng),它的特點之一,是利用極其強大的實時網(wǎng)絡,把物理世界里事物的無限細節(jié)信息化并瞬間傳播給接收者,使其通過一些特殊設備去復原這些信息并最大程度感受到在原發(fā)地事物的原本樣子。

  • 項目開發(fā)

    在項目中簡單實現(xiàn)了一下實時顯示錄像視頻,只應用到了接受流。主要使用了webrtc-adapter.js

      async function handleNegotiationNeededEvent(event) {
        var localePc = event.target;
        const offer = await localePc.createOffer();
        await localePc.setLocalDescription(offer);
        _this.getRemoteSdp(localePc, equiUuid);
      }
    
      const privatePc = new RTCPeerConnection(config);
      privatePc.onnegotiationneeded = handleNegotiationNeededEvent;
      const privatestream = new MediaStream();
      privatePc.ontrack = function(event) {
        privatestream.addTrack(event.track);
        privateVideoElem.srcObject = privatestream;
      };
      privatePc.addTransceiver("video", {
        direction: "sendrecv"
      });
      privatePc.addTransceiver("video", {
        direction: "sendrecv"
      });
    
      getRemoteSdp(localePc, uuid) {
      const formData = new FormData();
      formData.append("suuid", uuid);
      formData.append("data", window.btoa(localePc.localDescription.sdp));
      getWebRtc(uuid, formData)
        .then(res => {
          localePc.setRemoteDescription(
            new RTCSessionDescription({
              type: "answer",
              sdp: window.atob(res)
            })
          );
        })
        .catch(e => {
          console.warn(e);
        });
    }
    
  • 補充

    WebRTC 成為下一代互聯(lián)網(wǎng)的實時應用基石,估計有點懸,因為確實有潛在的更優(yōu)解在那里。但是,對于應用開發(fā)者,未來幾年內(nèi),WebRTC可能就是我們的最優(yōu)解。

  • 參考

    1.https://baijiahao.baidu.com/s?id=1714740880954778889&wfr=spider&for=pc

    2.https://baike.baidu.com/item/WebRTC/5522744?fr=aladdin

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容