如何在Golang中使用字节保存opus文件?
我们正在使用pion/webrtc库,我们从 RTPEERCONNECTION 我们需要从RTCPacket.Raw(字节列表)保存opus音频文件。我们尝试使用他们的如何在Golang中使用字节保存opus文件?,go,webrtc,opus,Go,Webrtc,Opus,我们正在使用pion/webrtc库,我们从 RTPEERCONNECTION 我们需要从RTCPacket.Raw(字节列表)保存opus音频文件。我们尝试使用他们的OpusWriter,但没有成功,音频已编写但无法播放 所以问题是我们如何从字节中保存Opus音频文件 守则: for { rtpPacket, err := remoteTrack.ReadRTP() b := rtpPacket.Raw if ivf
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)
}
}
这个例子对你不适用吗?这演示了如何将VP8/Opus保存到磁盘
如果您确实希望音频直接来自,则应使用有效负载
字段而不是原始
Raw
包含RTP头,而Payload
仅包含介质
谢谢你使用π介子!我很乐意在这里或上提供帮助-
os.File
是一个io.Writer
,您可以将字节写入其中。*代码片段提到ivfFile
您是否可以确保您只编写Opus数据包(而不是意外地制作视频)*还要再次检查您是否有每个音轨的opus文件。*还有一个已知的错误,Opus文件不能被所有玩家播放,我尝试使用有效载荷而不是Raw,但它不起作用。结果是一样的。客户端可以通过浏览器中的WebRTC听到声音,但当我们保存音频文件时,它无法播放。您是否使用OpusWriter
?您能否共享正在创建的Opus文件之一。你能试着设置不同的采样器和通道吗?你能试着创建一个简单的例子吗。