Живой голосовой чат с управляемым голосовым звуком с RTMFP - PullRequest
3 голосов
/ 27 марта 2012

Мы создаем приложение для голосового чата RTMFP с Cumulus .Хотя базовая передача голоса работает с помощью NetStreams довольно просто, у нас есть одна большая проблема:

Похоже, не существует способа манипулирования данными микрофона, которые отправляет NetStream, а также способа манипулирования даннымипрослушивающий NetStream получает до его воспроизведения.

Однако это именно то, что нам нужно.Мы не хотим передавать звук, записанный обычным микрофоном, но сначала передайте его, затем отправьте, затем воспроизведите.Или сначала пошлите это, затем передайте это, затем играйте это.Но кажется, что вся запись звука, кодирование speex, декодирование speex и воспроизведение аудио полностью заключены в класс NetStream.

Единственные способы достичь того, чего мы хотим (и все они полностью удаляют NetStream), по-видимому,be:

  1. Отправка необработанных звуковых данных.Это работает, но, конечно, много данных для отправки и, вероятно, не будет работать достаточно быстро вне нашего тестирования локальной сети.

  2. Передача аудиоданных, преобразование в ogg / mp3 с использованиемсуществующие кодеры для flash, отправки, декодирования ogg / mp3 и воспроизведения.Но это будет означать кодирование каждого образца пакета, полученного с микрофона, добавление заголовка и т. Д. Так что это, вероятно, даже не принесет такой большой выгоды по сравнению с необработанными аудиоданными.

    2.1.На самом деле это было бы неплохо, если бы был флэш-кодировщик Speex .Но по иронии судьбы, нет ничего, кроме встроенного (который используется для кодирования / декодирования аудио в NetStreams), который не может быть явно использован.Да, большое спасибо за то, что не предложили это, Adobe ...

  3. Отправьте данные на сервер Cumulus, отправьте (и, вероятно, конвертируйте) туда и отправьте получателю.Это, вероятно, даже не будет намного быстрее, чем 1., а также отбросит точную выгоду RTMFP, P2P-коммуникации.

Есть ли какое-либо решение этой проблемы, которое будет работать лучше, чемте, которые я перечислил здесь, возможно, способ фактически манипулировать данными микрофона перед их передачей в NetStream?

1 Ответ

3 голосов
/ 05 апреля 2012

Чтобы получить что-то жизнеспособное, аудиоданные должны быть преобразованы в сжатый формат, необработанные данные представляют собой огромное количество данных.Я думаю, что второй вариант лучше; -)

Я уже разработал декодер / кодировщик ogg vorbis во флэш-памяти, при использовании Alchemy он всегда потреблял меньше 10% процессорного времени!Это вполне возможно.

Если вы предпочитаете формат speex, я думаю, что последовательными усилиями можно получить то же самое при создании кода speex с алхимией.

Если я могу дать вамболее подробно, свяжитесь со мной по адресу cumulus.dev@gmail.com; -)

...