|
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
|
|||||||||||
Задержка пакетов UDP14.11.2013, 15:34. Показов 6860. Ответов 6
Метки нет (Все метки)
Всем добрый день,
не нашёл на просторах интернета ответа на свой вопрос, по этому хочу спросить у вас, надеюсь на ответ. Принимаю данные по UDP от устройства - самопальной видеокамеры. Данные отправляются непрерывно, но на стационарных ПК задержка на приёме минимальная, а вот на ноутбуках Samsung (а возможно и на других) возникает задержка больше 1 секунды. Ещё раз раз поясню: устройство отправляет данные в момент Т, а на экране монитора они отбражаются на стационарном ПК через Т+100мс, а на ноутбуках через Т+1000мс. Задержка не меняется от времени примерно стабильная. Принимает ПО на C#, следующим образом:
по этому выбираю в цикле кусками по 1024 байта... Загрузка ПК ПО не более 20%. Поток данных не более 12Мбайт/с. Буфер задан, как :
кажется что и не причём... Потери пакетов нет, пропусков данных так же нет. Антивирусы отключены сетевые карты как на стационарном так и на ноутбуке Realtek GigE Ну собственно сабж, прошу помощи... Заранее спасибо!
0
|
|||||||||||
| 14.11.2013, 15:34 | |
|
Ответы с готовыми решениями:
6
Сниффер UDP пакетов Отправка udp sip пакетов .NET 4.5 Прием широковещательных UDP пакетов |
|
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
|
|
| 18.11.2013, 08:41 | |
|
Тут дело не в загрузке ПО ПК, а скорее всего в видеокарте ноута, при прочих равных ноут всегда уступает стационарному ПК в производительности
1
|
|
|
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
|
|
| 21.11.2013, 10:42 [ТС] | |
|
Всем привет!
опять же проблема оказалась в реализации StopWatch ((( может быть кто-то знает как гарантированно измерить абсолютное время?. Объясню подробнее, я с помощью StopWatch измеряю интервал времени равный 35мс, с запасом от 40мс, что соответствует 25Гц, камера четко со стабильностью 10^-4 выдаёт именно 25Гц видео, при работе с большинством персональных ПК время измеряется корректно, буфер не заполняется. При работе с AMD/ATI и вот как оказалось с ноутом Samsung измеренное время оказывается больше, то есть по факту не 35мс, а где-то 50мс... буфер переполняется - возникает задержка в буфере. Опять же повторю вопрос, как измерить абсолютное время в шарпах?... всем заранее спасибо!
0
|
|
|
4 / 4 / 1
Регистрация: 10.07.2011
Сообщений: 52
|
|||||||||||
| 21.11.2013, 22:27 [ТС] | |||||||||||
|
спасибо!)
собственно юзаю вот так:
кадров FrameBuffer, если в нём есть кадры, и время прошло больше 45мс, то в любом случае выводим кадр, если время прошло от 35 до 45мс и в буфере есть некоторое количество кадров больше VideoBufferSize, то так же выводим кадр. В буфере необходимо держать несколько кадров, на случай лагов сети.
не превышает 5мс. Если же встречается AMD или такой ноутбук, что у меня, то получается, что ПК думает, что времени прошло меньше чем нужно и буфер начинает переполнятся, тк всегда срабатывает условие, ((BuffCount > VideoBufferSize) && (delay > 35)), при том, что буфер полностью заполнен... Кадры поступают гарантированно раз в 40мс... Предполагаю, что незаметно для программы меняется частота процессора и StopWatch не меняет некоторую переменную типа CPU_TICKS. При этом на своём ПК, запускаю CPU-Z и наблюдаю, что тактовая процессора меняется от 1.6ГГц, до 3.0 и это не сказывается на работе ПО, почему это сказывается на других процессорах, не могу понять. Прошу помощи, заранее спасибо!
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 18.09.2015
Сообщений: 1
|
|
| 16.11.2016, 12:29 | |
|
та же проблема - не могу обработать звук входящий из УДП вовремя. пакеты приходят со скоростью 30мс, а я их получаю с помощью UDPClient.Receive со скоростью за 100мс и больше, при этом весть остальной код уже давно выключен - тормозит сам класс UDPClient!!!
буду искать ответы, другого выбора у меня нет!
0
|
|
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|||||||||||
| 26.11.2016, 10:30 | |||||||||||
|
При выполнении Thread.Sleep(x) поток отказывается от выделенного ему кванта времени и сможет продолжить работу не раньше чем при следующем запуске системного таймера (Windows system timer).
По умолчанию период системного таймера (timer resolution) равняется 15.6 ms. Но программы могут уменьшать это значение до 1 ms и даже до 0.5 ms. Поэтому ваша проблема воспроизводится не на всех компьютерах, а только на тех, где этот таймер не установлен на меньший период. В случае стандартного периода 15.6 ms несмотря на все ваши стремления (Thread.Sleep(1)) значения delay будут в основном такими: 0->15.6 (16)->31.2 (31)->46.8 (47). А учитывая, что Stopwatch перезапускается после обработки каждого кадра, то ошибка будет постоянно накапливаться. Самый простой вариант - это установить интервал системного таймера в 1 ms, тогда вся эта колбасня со Thread.Sleep(1) будет работать как положено, с квантованием в 1 ms. Но я бы попробовал переделать обработку кадров на использование высокоточного WinApi таймера. Средняя частота вызова события этого таймера будет гарантировано 40 ms.
0
|
|||||||||||
| 26.11.2016, 10:30 | |
|
Помогаю со студенческими работами здесь
7
Прием пакетов по UDP Потери UDP пакетов Перехват UDP пакетов Потери UDP пакетов Прием UDP пакетов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|