RTP: рекомендовать стратегию для достижения свободного аудиопотока - PullRequest
0 голосов
/ 24 июня 2011

Позвольте мне объяснить, что я имею в виду, когда говорю беглый аудиопоток.

У меня есть приложение VOIP, которое передает закодированный в PCMU звук, упакованный в пакеты RTP, через UDP. Я уже реализовал механизмы, которые работают с потерями пакетов (как предложено в rfc3550)

Проблема в том, что из-за ограничений платформы (ОС Blackberry) мне нужно поддерживать постоянный поток данных, то есть мне нужно передавать X байтов каждые S миллисекунд.
Из-за сетевых задержек, недоставленных дейтаграмм и т. Д. Я не могу гарантировать постоянный поток данных, поэтому я создал отдельный поток, который компенсирует пакеты, которые были отброшены или доставлены с опозданием с помощью поддельных пакетов («тишина»).

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

1 Ответ

4 голосов
/ 09 июля 2011

Вы должны прочитать:

  • Буферы джиттера
  • Сокрытие потери пакета

Они существуют для решения именно тех проблем, с которыми вы имеете дело.

...