簡體   English   中英

如何處理音頻 stream

[英]How to process audio stream

我在處理數據流方面完全沒有經驗,並且想將 getUserMedia 作為學習項目提供給 opus 轉換器,然后 - 可能太天真了 - 通過 socket.io 發送它。 我的 - 可能是錯誤的想法 - 是我不斷地將 stream 分割和轉換。

我感謝所有解釋一般 stream 處理更好的解釋,因為我說這是一個學習項目,我知道使用 WebRTC 可以提供更好的解決方案。

作為編碼器,我想使用https://github.com/ImagicTheCat/libopusjs 歡迎使用替代方案,但我想堅持使用基於 wasm 的編碼器的想法。

到目前為止我所擁有的(作為第一步,我的想法是編碼 stream 並再次解碼 output ):

if (navigator.mediaDevices) {
      console.log('getUserMedia supported.');
      navigator.mediaDevices.getUserMedia ({audio: true, video: true})
      .then(function(stream) {
          video.srcObject = stream;
          video.onloadedmetadata = function(e) {
              video.play();
              video.muted = true;
          };

          var audioCtx = new AudioContext();
          var source = audioCtx.createMediaStreamSource(stream);


          var enc = new libopus.Encoder(1,48000,24000,20,false);
=> enc stream
          var dec = new libopus.Decoder(1,48000);

=> perspectively send this enc stream via socketio
=> dec enc stream => RESULT stream




          RESULT.connect(audioCtx.destination);

      })
      .catch(function(err) {
          console.log('The following gUM error occured: ' + err);
      });
  } else {
     console.log('getUserMedia not supported on your browser!');
  }

你見過這些 WASM 模塊嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM