2010-08-24 2 views
0

У меня есть несколько флеш-клиентов, которые отправляют прямой аудиопоток на сервер Red5. Можно ли объединить все эти аудиопотоки вместе, чтобы другие клиенты могли подписаться только на один аудиопоток и слушать живое аудио от всех издателей?Слияние нескольких аудиопотоков в один в 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; 
} 

Смежные вопросы