Ви дивитесь футбольний матч онлайн. Раптом ваш сусід кричить "ГОООЛ!", а у вас на екрані м'яч ще в центрі поля. Це — затримка (Latency).
У світі стрімінгу є три категорії:
Чому ми не можемо мати все й одразу (якість 4K і нульову затримку)? Тому що Інтернет ненадійний.
Уявіть, що ви надсилаєте листи (пакети) поштою.
Це "Рекомендований лист з повідомленням про вручення".
Це "Викидання листівок з вікна потяга".
Legacy HLS / DASH
LL-HLS (Low Latency)
WebRTC
Twitch використовує модифікований HLS (Low Latency). Чому не WebRTC? Тому що WebRTC важко масштабувати. Роздати UDP-потік на 1 мільйон глядачів — це інженерний кошмар. HLS (через TCP/HTTP) легко кешується на CDN. Тому Twitch має затримку ~5 секунд. Це компроміс: достатньо швидко, щоб чат реагував на стрімера, але достатньо надійно для мільйонів.
Відкрийте сайт time.is на телефоні.
Результат: