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