我捕获了RTP数据包并使用以下代码对其进行了解码:
public byte[] Decode(byte[] data)
{
MemoryStream src=new MemoryStream(data);
System.IO.BinaryReader brsrc=new BinaryReader(src);
MemoryStream dst=new MemoryStream();
System.IO.BinaryWriter bwdst=new BinaryWriter(dst);
int step=(int)(data.Length/10);
for(int i=0;i<step;i++)
{
byte[] d=new byte[160];
va_g729a_decoder(brsrc.ReadBytes(10),d,0);
bwdst.Write(d);
}
byte[] ret=dst.GetBuffer();
brsrc.Close();
bwdst.Close();
src.Close();
dst.Close();
return ret;
}
使用 G729 DLL。
现在我有一个充满解码 RTP 数据包的字节数组,如何播放它或将其转换为 WAV 文件或接近的东西?
嗡嗡,奥菲克
您可以使用 ffmpeg 将 rtp 数据转换为 mp3 格式的语音。这里是参考。