буфер джиттера

Discussion in 'Web Call Server 3' started by OctOpuss, Nov 9, 2014.

  1. OctOpuss

    OctOpuss New Member

    Каким образом FlashPhoner обрабатывает джиттер от флэш-клиента? Если происходит потеря пакета между флэш-клиентом и flashphoner, используется ли какая-либо буферизация и т.д. Можете пояснить?
  2. Max

    Max Administrator Staff Member

    1. В исходящем направлении от клиента Flash до WCS.
    В этом направлении нет буфера джиттера.
    Здесь работает протокол RTMFP.
    Т.е. Flash посылает UDP пакеты на сервер, сервер отвечает пакетом ACK на каждый пакет.
    Параметр audioReliable=false - означает частичную надежность. Т.е. если Flash посылает пакет UDP с аудиофреймом (напр. speex), и этот пакет теряется в сети, то Flash пересылает пакет несколько раз.
    Если audioReliable=true то это полная надежность. Пакет пересылается до тех пор, пока не будет получен ответ ACK на данный пакет (т.е. произошла успешная доставка пакета).
    Таким образом параметр audioReliable=true работает в точности как TCP(RTMP).
    А параметр audioReliable=false работает по принципу частично надежного протокола UDP, что уменьшает задержку по сравнению с TCP/RTMP. Еще одной настройкой для аудио является параметр stream_mode_udp=true по умолчанию. Эта настройка отключается все повторные пересылки в данном направлении, делая таким образом реализацию протокола RTMFP ближе к нативному UDP.
    JitterBuffer - это фишка VoIP, которая используется, в основном, на точках VoIP, например, Flash клиент или SIP клиент, телефон и т.д., т.к. буфер джиттера должен располагаться максимально близко к устройству, обеспечивающему воспроизведение аудио на звуковой карте.
    Таким образом, для данного направления джиттер-буфер должен располагаться на конечном устройстве или клиентской программе (клиент Flash или SIP PSTN).
    2. Направление от WCS сервера до клиента Flash.
    В этом случае FlashPlayer работает как конечная точка VoIP и использует собственную реализацию джиттер-буфера, которая обеспечивает минимальную задержку и потерю пакетов.
    Насколько мне известно, реализация дж.буфера во Flash основана на исходных кодах препроцессора speex, но я могу ошибаться.
    В любом случае, дж.буфер - это алгоритм, который контроллирует потерю пакетов и статистику задержек, и отбрасывает пакеты, чтобы удержать задержку на низком уровне.
    Я к сожалению не могу сказать больше за неимением доступа к реализации Flash Player.
    Last edited: Nov 10, 2014

Share This Page