Существует несколько возможностей:
UDP - ненадежный протокол.Вы можете проверить порядковые номера RTP, чтобы увидеть, так ли это и сколько / какие кадры отброшены.Что может помочь минимизировать потерю пакетов UDP, так это увеличить размер буфера приема UDP на клиенте. Здесь - пример того, как это сделать в Linux.Конечно, вы можете сделать то же самое в Windows.
Клиент может правильно декодировать видео только после получения кадра IDR.До этого момента он не может правильно декодировать видео.Является ли первый кадр, который вы передаете новому клиенту, IDR-кадром (помните, что он все еще может быть потерян).
В любом случае мне кажется, что есть еще одна проблема с вашим приложением видеоплеера: даже если кадры пропущены, проигрыватель отвечает за буферизацию и синхронизацию аудио и видео идолжен быть в состоянии сделать это независимо от потери пакетов.
На чисто информативном примечании вы также можете реализовать RTP / RTCP с чередованием по RTSP (и, следовательно, по TCP).Таким образом, вам не нужно беспокоиться о пропущенных кадрах.Библиотеки, такие как live555 , медиапоток и VLC , поддерживают это.
Чтобы ответить на ваш последний вопрос о паузе: нет, это не имеет к этому никакого отношения.RTSP является чисто сигнальным протоколом.Потеря пакетов будет происходить на транспортном (UDP) уровне.