Я разработал серверное и клиентское приложение для потоковой передачи видеокадров с одного конца на другой с использованием RTSP. Теперь, чтобы собрать статистику, которая поможет мне улучшить мои приложения, мне нужно измерить прошедшее время между отправкой фрейма и получением кадра.Измерение истекшего времени по сети
На данный момент я использую следующую формулу:
Client_Receive_Timestamp - Server_Send_Timestamp = Elapsed_Time
Проблема
Мне кажется, что время, прошедшее около 100-200ms слишком высоко. Я думаю, причина в том, что часы сервера и клиентские часы не синхронизированы и имеют разницу примерно в 100-200 мс.
Вопрос
Как я могу точно измерить время, прошедшее между двумя апаратов?
В статье Accurately measuring elapsed time between machines предлагается рассчитать задержку в оба конца. Однако я не могу использовать это решение, так как клиент не запрашивает фреймы. Он просто получает кадры через RTSP.
Не могли бы вы пояснить, почему вы можете» t рассчитать задержку в оба конца? Вы вынуждены использовать поток RTSP в качестве единственного сетевого подключения? Если нет, вы можете использовать простые пинги по другому сетевому соединению, чтобы оценить время прохождения туда-обратно. –
Используйте третью машину и подтвердите свои сомнения. – lsalamon
@ LukasBoersma Моя цель - измерить, сколько времени требуется для доставки кадра, а не для определения того, сколько времени потребуется для отправки и получения одного пакета. – chrisp