"плавная" отправка RTP пакетов
От: gwg-605 Россия  
Дата: 30.01.13 10:34
Оценка:
Народ!

Может кто знает и может подсказать как реализовать плавную отсылку RTP пакетов? т.е. идет поток кадров для примера 60 кадров в секунду (может и больше), размеры кадров могут различаться на пару-тройку порядков каждый кадр разбивается на несколько RTP пакетов, после чего все пакеты просто отправляются за раз. Проблема — непредвиденные потери пакетов при передаче по локальной сети. Есть желание "размазать" их отправку по времени, уменьшив неравномерность нагрузки сети и приемника. Принципиально сложностей не вижу в самой логике, но вылезла сложность в технической реализации. Проблема точного осчета времени. Крутить тупо поток в цикле и ждать нужного времени — абсолютно не приемлемо, а точности стандартных часов в винде не достаточно. для примера надо "размазать" 50-300 пакетов в 10-50мс времени. Сейчас просто отправляю пакеты группами, при этом не достигается достаточная равномерность отправки, группы получаются до 80 пакетов. В общем точность отсчета хотелось бы получить в районе десятков микросекунд.

В общем решение ищется не очень сложное и кросс-платформенное (ну может с минимальной платформной зависимостью).

ЗЫ. Я знаю что эту проблему не раз решали, но вот так с набегу не смог найти в инете.
Re: "плавная" отправка RTP пакетов
От: John1979  
Дата: 30.01.13 21:55
Оценка:
Здравствуйте, gwg-605, Вы писали:

G6>Может кто знает и может подсказать как реализовать плавную отсылку RTP пакетов?

http://en.wikipedia.org/wiki/Token_bucket
поможет ?

время в виндах мультимедийным таймером можно засекать достаточно точно. на линуксе тоже.
можно написать свой кроссплатформенный враппер.
Re[2]: "плавная" отправка RTP пакетов
От: gwg-605 Россия  
Дата: 31.01.13 18:02
Оценка:
Здравствуйте, John1979, Вы писали:

G6>>Может кто знает и может подсказать как реализовать плавную отсылку RTP пакетов?

J>http://en.wikipedia.org/wiki/Token_bucket
J>поможет ?
Не совсем то что надо, да и с алгоритмом у меня особых проблем не было.

J>время в виндах мультимедийным таймером можно засекать достаточно точно. на линуксе тоже.

J>можно написать свой кроссплатформенный враппер.
С мультимедийными таймера не совсем понятно как сделать засыпание трида, но в общем уже не важно, проблема успешно решена с помощью Waiteable Timers.
Re: "плавная" отправка RTP пакетов
От: Mr.Delphist  
Дата: 06.02.13 11:16
Оценка:
Здравствуйте, gwg-605, Вы писали:

G6>Народ!


G6>Проблема — непредвиденные потери пакетов при передаче по локальной сети. Есть желание "размазать" их отправку по времени, уменьшив неравномерность нагрузки сети и приемника.


Я бы начал с вопроса "почему пакеты теряются". Что является узким местом?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.