罗罗诺亚D路飞 2023-07-07 16:30 采纳率: 100%
浏览 46
已结题

webrtc 怎么把视频流传输到后端 前端具体怎么操作


// 创建本地视频流
navigator.mediaDevices.getUserMedia({ video: true, audio: false })
  .then(stream => {
    // 获取视频轨道
    const videoTrack = stream.getVideoTracks()[0];

    // 创建RTCPeerConnection对象
    const peerConnection = new RTCPeerConnection();

    // 将视频轨道添加到RTCPeerConnection对象
    peerConnection.addTrack(videoTrack, stream);

    // 创建数据通道
    const dataChannel = peerConnection.createDataChannel('videoStream');

    // 发送视频流数据到后端
    dataChannel.addEventListener('open', () => {
      console.log('Data channel opened');
      const reader = new FileReader();
      reader.onload = function(event) {
        dataChannel.send(event.target.result);
      };
      const videoBlob = new Blob([videoTrack]);
      reader.readAsArrayBuffer(videoBlob);
    });

    // 监听ICE候选事件并发送给对方
    peerConnection.addEventListener('icecandidate', event => {
      if (event.candidate) {
        // 发送ICE候选信息到后端
      }
    });

    // 创建SDP offer并发送给对方
    peerConnection.createOffer()
      .then(offer => {
        // 发送SDP offer到后端
        return peerConnection.setLocalDescription(offer);
      })
      .then(() => {
        // SDP offer发送成功
      })
      .catch(error => {
        console.error('Error creating offer:', error);
      });
  })
  .catch(error => {
    console.error('Error accessing media devices:', error);
  });

这个webrtc 把视频流发送到后端不需要写地址嘛,有没有做过的指点一下

  • 写回答

4条回答 默认 最新

查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月21日
  • 已采纳回答 7月13日
  • 创建了问题 7月7日