0

ライブ オーディオ ストリームを Red5 サーバーに送信するフラッシュ クライアントがいくつかあります。このすべてのオーディオ ストリームを結合して、他のクライアントが 1 つのオーディオ ストリームのみをサブスクライブし、すべてのパブリッシャーからのライブ オーディオを聞くことができるようにすることは可能ですか?

4

1 に答える 1

0

はい、これは可能ですが、red5のみで可能です。独自のライブラリを作成するか、Xuggler などを使用する必要があります。Red5 は、オーディオまたはビデオ データをエンコードまたはデコードしないため、希望する方法でストリームをマージまたは操作することはできません。
また、ライブラリを使用してオーディオ ストリームにアクセスする場合は、出力オーディオにヒスやポップノイズが発生しないように、マージ時に細心の注意を払う必要があることに注意してください。2 つ以上のストリームには、以下の方法よりも複雑な方法が必要になります。

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

于 2010-09-03T22:03:24.400 に答える