Возможно, это не лучший форум для такого специализированного вопроса, но на данный момент я не знаю лучшего (открытого для предложений / рекомендаций).
Я работаю над видеопродуктом, который последние 10+ лет использует собственный протокол связи (на основе DCOM) для отправки видео по сети. Некоторое время назад мы осознали необходимость стандартизации и в настоящее время почти готовы вырвать весь этот багаж DCOM и заменить его полностью совместимой клиент-серверной средой RTP / RTSP.
Одна вещь, которую мы заметили во время тестирования за последние несколько месяцев, - это то, что когда мы переключаем клиента на использование RTP / RTSP, происходит заметное увеличение задержки запуска. Проблема в том, что это не мы, а RTSP.
ДО (DCOM): мы отправили бы одну команду DCOM, и до того, как эта команда даже вернулась к клиенту, сервер уже отправлял видео. - общая задержка 1 RTT
NOW (RTSP): это последовательность команд, каждая из которых представляет собой отдельный сетевой запрос: DESCRIBE, SETUP, SETUP, PLAY (при условии, что в сеансе есть аудио и видео) - всего 4 RTT.
Работает как задумано - к сожалению, это похоже на шаг назад, потому что предыдущий пользовательский опыт был на самом деле лучше.
Можно ли это улучшить? Если вы придерживаетесь стандарта, короткий ответ - НЕТ. Однако моя команда полностью контролирует весь наш стек RTP / RTSP, и я подумал, что мы могли бы ввести новую команду RTSP (не затрагивая ни одну из существующих команд, поэтому мы все еще полностью совместимы) в качестве решения: DESCRIBE_SETUP_PLAY.
Мы могли бы отправить эту одну команду, передавая типы потоков, которые интересуют (как правило, есть только одно видео и 0..1 аудио). Ответ будет включать полный текст SDP, а также всю информацию о порте, и, как и прежде, сервер начнет потоковую передачу мгновенно, не ожидая чего-либо еще от клиента.
Будет ли это работать? Есть ли недостатки, которые я не вижу? Мне любопытно, почему это не было учтено (или было исключено) из официальной спецификации, поскольку задержка даже в локальной сети определенно заметна.