HLS и MPEG DA SH в стандартной комплектации имеют не очень низкую задержку, и цифры, которые вы получаете, не являются необычными.
Некоторые примеры из общедоступного документа форума DA SH (ссылка ниже) включают :
![enter image description here](https://i.stack.imgur.com/8Zxjp.png)
![enter image description here](https://i.stack.imgur.com/oiyPR.png)
Учитывая ресурсы некоторых из этих организаций, результаты у вас есть Достигнуты не плохо!
В отрасли потокового вещания в настоящее время уделяется большое внимание обеспечению более низкой задержки, при этом цель состоит в том, чтобы максимально приблизиться к традиционной задержке широковещания.
Один ключ Компонент задержки в кусочной адаптивной битовой скорости (ABR, см. этот ответ для получения дополнительной информации: { ссылка }) - это необходимость для проигрывателя получать и декодировать один или несколько сегментов видео, прежде чем оно сможет отображаться Это. Традиционно игрок должен был получить весь сегмент, прежде чем он мог начать декодировать и отображать его. Диаграмма из первой ссылки на открытый исходный код ниже иллюстрирует это:
![enter image description here](https://i.stack.imgur.com/RgFBj.jpg)
DA с малой задержкой SH и HLS с использованием CMAF, 'Common Media Application Format 'который разбивает сегменты, которые могут быть длиной, например, 6 секунд, на более мелкие "кусочки" внутри каждого сегмента. Эти фрагменты предназначены для того, чтобы позволить игроку декодировать и начать их воспроизведение до того, как он получит полный сегмент.
Другими источниками задержки в типичном живом потоке будут любое перекодирование из одного формата в другой и любая задержка в сервер потоковой передачи, принимающий канал от веб-камеры в вашем случае, кодирующий и упаковывающий его для потоковой передачи.
В настоящее время имеется достаточно много полезной информации о потоковой передаче с низкой задержкой как от органов стандартизации, так и от открытых Исходные обсуждения, которые, я думаю, действительно помогут вам оценить проблемы (все ссылки актуальны на момент написания статьи) Из открытых источников и обсуждений стандартов:
и от поставщиков:
Примечание. Обычный случай, часто цитируемый в мире вещания, - это случай, когда кто-то, наблюдающий прямую трансляцию, например игру, может услышать их соседи празднуют цель или приземление до того, как увидят это сами, потому что у их подачи задержка выше, чем у соседей. Хотя это является драйвером для низкой задержки, на самом деле это проблема синхронизации, которая потребовала бы других решений, если бы целью было «идеально» синхронизированное решение.
Как видите, потоковая передача с низкой задержкой - непростая задача, и может случиться так, что вы захотите рассмотреть другие подходы в зависимости от деталей вашего варианта использования, в том числе от того, сколько у вас подписчиков, какая-то потеря качества, если справедливая компромисс за меньшую задержку и т. д. c. Как упомянуто @ user1390208 в комментариях, более сфокусированная технология видеосвязи в реальном времени, такая как WebRT C, может лучше подходить для решения, на которое вы ориентируетесь.
Если вы хотите предоставить услугу, обеспечивающую жизнь потоковую передачу, а также запись, вы можете рассмотреть возможность использования протокола реального времени для просмотра в режиме реального времени и потоковой передачи HLS / DA SH для всех, кто просматривает записи, где задержка может быть не важна, но качество может быть более важным.