2010-08-24 52 views
0

我有几个发送实时音频流到Red5服务器的Flash客户端。是否有可能将所有这些音频流合并到一起,以便其他客户端只能订阅一个音频流并收听所有发布商的现场音频?将几个音频流合并为一个red5

回答

0

这可能是的,但只有红色5,没有。您需要编写自己的图书馆或使用Xuggler之类的东西。 Red5不会对音频或视频数据进行编码或解码,因此无法以您喜欢的方式合并或操作您的数据流。
另请注意,如果您使用库来获取音频流,则在合并时需要密切关注,以免在输出音频中出现嘶嘶声和爆音。更多涉及的方法,比下面的方法需要两个以上的流:

 
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; 
} 

相关问题