Объединение нескольких аудиопотоков в один в red5 - PullRequest
0 голосов
/ 24 августа 2010

У меня есть несколько флеш-клиентов, которые отправляют живой аудиопоток на сервер Red5. Можно ли объединить все эти аудиопотоки вместе, чтобы другие клиенты могли подписаться только на один аудиопоток и слушать живое аудио от всех издателей?

1 Ответ

0 голосов
/ 04 сентября 2010

Возможно ли это да, но только с red5, нет. Вам нужно будет написать свою собственную библиотеку или использовать что-то вроде 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; }

...