Термин
End-to-end latency
Задержка между выходом энкодера и входом декодера в стриминговой цепочке меньше, чем glass-to-glass – она исключает захват с камеры и отрисовку на дисплее.
End-to-end latency, или encoder-to-decoder latency, выделяет именно сетевую и протокольную часть цепочки. Это то, что измеряют, когда камера, оптика и матрица не важны (или не поддаются контролю). Это естественная единица для сравнения протоколов – HLS, LL-HLS и WebRTC – потому что обе стороны находятся в одинаковых условиях по захвату и отображению.
Компоненты цепочки: выходной буфер энкодера, протокол передачи (RTMP, SRT, RIST, WebRTC), origin/packager, CDN edge, последняя миля, входной буфер декодера. Каждый из них вносит задержку: SRT обычно даёт 100–500 мс в зависимости от размера окна ретрансляции, packager добавляет длительность сегмента, CDN edge ограничен RTT и эффектом head-of-line blocking в HTTP/2, а плеер поддерживает буфер на 2–10 сегментов. Суммарная задержка – это и есть end-to-end.
Удобный способ измерения задержки без специального оборудования – проставлять каждому кадру NTP-метку (большинство энкодеров поддерживают встраивание метаданных времени или стандарта SCTE-104), а в плеере считывать presentation timestamp и сравнивать его с настенными часами. Разница между ними и будет end-to-end задержкой. Точность измерения зависит от качества синхронизации часов, поэтому на практике энкодер и мониторинговый плеер обычно используют один и тот же NTP-источник.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.