Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> `битый` исходящий стрим с флеш клиета, `битый` исходящий стрим с клиета 
:(
    Опции темы
g613
Дата 12.9.2011, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.9.2011

Репутация: нет
Всего: нет



День добрый !


делаем гейт flash<->sip ( freeswitch + mod_rtmp + их клиент для примера ). 

все настроено и вроде как работало ( сервер крутился, звонки ходили ) на тестовых машинках.
пришли манагеры и говорят голос гуано... :(.   В результате некоторых изысканий воспроизвести
удалось запуском клиента в вмвари за натом.


выгладит так, что вместо голоса на сервер приходит 'бульканье' к клиенту приходит чистый поток.

отловленные tcpdump'om пакеты выхглядят по разному ( с натом и без ). 

Кто то сталкивался с таким ? 

P.S.
Я как  то больше по voip,  так что если не хватает каких то данных говорите...



PM MAIL   Вверх
SoWa
Дата 13.9.2011, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



В флеше со звуком выбор невелик - либо кодек, либо параметры эхоподавления. Ну плюс RTMP.
Кодек - SPEEX лучше Nellymoser(или как его звать...)
Эхоподавление - глупенькое оно у флеша, лучше его вырубать.
RTMP - передаете с помощью NetStream? Если так, то надо смотреть, выставлена ему буферизация или нет.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
g613
Дата 13.9.2011, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.9.2011

Репутация: нет
Всего: нет



Кодек speex.

Собственно так инициализируется:

Код

private function setupMic():void {
                                try {
                                        mic = Microphone.getMicrophone(mic_index);
                                        mic.addEventListener(ActivityEvent.ACTIVITY, activityHandler);
                                        mic.addEventListener(StatusEvent.STATUS, statusHandler);
                                        mic.codec = SoundCodec.SPEEX;
                                        mic.setUseEchoSuppression(true);
                                        mic.setLoopBack(false);
                                        mic.setSilenceLevel(0,20000);
                                        mic.framesPerPacket = 1;
                                        mic.gain = 55;
                                        mic.rate = 16;
                                        mic_index = mic.index;
                                        
                                        if (outgoingNetStream != null) {
                                                outgoingNetStream.close();
                                                outgoingNetStream = new NetStream(netConnection);
                                                outgoingNetStream.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
                                                outgoingNetStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);             
                                                outgoingNetStream.attachAudio(mic);
                                                outgoingNetStream.publish("publish", "live");
                                        }
                                } catch(e:Error) {
                                        onDebug("Couldn't setup microphone: " + e.message);
                                }
                        }



весь клиент.

ходит всё по tcp. А где и как смотреть буферизацию ?

PM MAIL   Вверх
g613
Дата 13.9.2011, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.9.2011

Репутация: нет
Всего: нет



mic.setUseEchoSuppression(false);

ниче не поменяло
PM MAIL   Вверх
SoWa
Дата 13.9.2011, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



 mic.framesPerPacket = 1; - это меня настораживает. Пробовали по дефолту, без этой установки?
Цитата

framesPerPacket    property  

framesPerPacket:int
Language Version:  ActionScript 3.0
Runtime Versions:  Flash Player 10, AIR 1.5




 Number of Speex speech frames transmitted in a packet (message). Each frame is 20 ms long. The default value is two frames per packet. 

The more Speex frames in a message, the lower the bandwidth required but the longer the delay in sending the message. Fewer Speex frames increases bandwidth required but reduces delay.





--------------------
Всем добра smile
PM MAIL ICQ   Вверх
g613
Дата 13.9.2011, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.9.2011

Репутация: нет
Всего: нет



по дефолту ( 2 ) не получится - freeswitch может только 1.  Самое фиговое то, что оно не всегда не работает. Включенный нат в вмваре - один из случаев. Смотрели тррафик в wireshark'e - он разный для хорошего и плохого потока.   
PM MAIL   Вверх
dursun266
Дата 30.11.2011, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 30.11.2011

Репутация: нет
Всего: нет



Такая же ситуация с флешь клиентом из под MacOS (под linux,windows все ок).
Пробовал вместо Speex - ALAW,ULAW с framesperpacket=2 + изменения в mod_rtmp, в MacOS так же булькает.
Причем с asterisk'ом (rtmp от phsultan)  работает без проблем.

Это сообщение отредактировал(а) dursun266 - 30.11.2011, 23:39
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы про программирование на ActionScript 1,2 (Flash 8 и более ранние версии) пишите в форуме ActionScript 1,2
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Flash | Следующая тема »


 




[ Время генерации скрипта: 0.1033 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.