Java 在red5中将多个音频流合并为一个

Java 在red5中将多个音频流合并为一个,java,apache-flex,red5,Java,Apache Flex,Red5,我有几个flash客户端,它们向Red5服务器发送实时音频流。是否可以将所有这些音频流组合在一起,以便其他客户端只能订阅一个音频流并收听来自所有发布者的实时音频?是否可以?是,但只能使用red5,否。您需要编写自己的库或使用类似Xugler的工具。Red5不会对音频或视频数据进行编码或解码,因此它无法以您希望的方式合并或处理您的流。 还要注意,如果您确实使用库来访问音频流,则在合并时需要密切注意,以免在输出音频中出现嘶嘶声和砰砰声。对于两个以上的流,将需要比以下方法更复杂的方法: 私有短[]

我有几个flash客户端,它们向Red5服务器发送实时音频流。是否可以将所有这些音频流组合在一起,以便其他客户端只能订阅一个音频流并收听来自所有发布者的实时音频?

是否可以?是,但只能使用red5,否。您需要编写自己的库或使用类似Xugler的工具。Red5不会对音频或视频数据进行编码或解码,因此它无法以您希望的方式合并或处理您的流。
还要注意,如果您确实使用库来访问音频流,则在合并时需要密切注意,以免在输出音频中出现嘶嘶声和砰砰声。对于两个以上的流,将需要比以下方法更复杂的方法:

私有短[]混合样本(短[]样本1,短[]样本2){
short[]mixedSamples=新的short[samples1.长度];
对于(int s=0;sshort.MAX_值?short.MAX_值:总和);
}
返回混合样品;
}

private short[] mixSamples(short[] samples1, short[] samples2) { short[] mixedSamples = new short[samples1.length]; for (int s = 0; s < samples1.length; s++) { int sum = (samples1[s] + samples2[s]) / 2; mixedSamples[s] = (short) (sum < Short.MIN_VALUE ? Short.MIN_VALUE : sum > Short.MAX_VALUE ? Short.MAX_VALUE : sum); } return mixedSamples; }