我想在一个WAV文件中混合两个RTP流(每个呼叫方向一个)。
问题是两个流可能使用不同的编解码器(因此采样频率,编码等)不同。
是否可以使用两个通道(即立体声)将两个RTP流存储在WAV文件中?换句话说,有没有办法存储具有不同编码,采样频率等的多个频道?
答案 0 :(得分:1)
WAV文件的结构假定所有Feed的通道的采样率和通道位数相同。编码应用整个提要(使用许多编码/格式/编解码器,您无法在不解码提要的情况下分离通道)。
您需要将Feed存储在单独的文件中,或者您需要支持多个音频轨道的文件格式(例如MP4,MKV),尽管它们都有自己的限制。
答案 1 :(得分:1)
正如罗曼·R提到的那样,它不是即时的。您需要在两者之间采取额外步骤,将RTP流上的任何内容转换为正确的WAV文件。我们的想法是使用像ffmpeg这样的软件:
2×mono→stereo:ffmpeg -i left.mp3 -i right.mp3 -ac 2 output.wav
之后你可以尝试一些味道(未经测试):
ffmpeg -i rtp://leftrtp -i rtp://rightrtp -ac 2 output.wav
您很可能需要调整编解码器设置以使其按您的需要运行。你可以谷歌周围找到关于这个主题的一些信息或阅读ffmpeg doc。