如何在Golang中使用字节保存Opus文件?

时间:2019-05-30 14:36:03

标签: go webrtc opus

我们正在使用pion / webrtc库,并且有来自 RTCPeerConnection

我们需要从RTCPacket.Raw(字节列表)保存opus音频文件。我们尝试使用他们的OpusWriter,但没有用,音频已写入但无法播放。

所以问题是如何保存字节中的Opus音频文件?

代码:

        for {
          rtpPacket, err := remoteTrack.ReadRTP()
          b := rtpPacket.Raw

          if ivfFile != nil {
            if err := ivfFile.WriteRTP(rtpPacket); err != nil {
              log.Println(err)
            }
          }

          checkError(err)
          videoTrackLock.RLock()
          _, err = videoTrack.Write(b)
          videoTrackLock.RUnlock()

          if err != io.ErrClosedPipe {
            checkError(err)
          }
        }

1 个答案:

答案 0 :(得分:0)

save-to-disk示例不适合您吗?这表明将VP8 / Opus保存到磁盘。

如果您确实希望直接来自*RTP.Packet的音频,则应使用Payload字段而不是RawRaw包含RTP标头,而Payload仅包含媒体。

感谢您使用Pion!很高兴在这里或在Slack

上提供帮助