Есть некоторые варианты использования, подходящие для транспорта UDP, и другие, подходящие для транспорта TCP.
Вариант использования также диктует настройки кодирования для видео. При трансляции футбольного матча основное внимание уделяется качеству, а для видеоконференций - задержке.
При использовании многоадресной рассылки для доставки видео вашим клиентам используется UDP.
Требование для многоадресной передачи - дорогое сетевое оборудование между сервером вещания и клиентом. На практике это означает, что если вашей компании принадлежит сетевая инфраструктура, вы можете использовать UDP и многоадресную передачу для потокового видео в реальном времени. Даже в этом случае также реализовано качество обслуживания для маркировки видеопакетов и определения их приоритетов, чтобы не было потери пакетов.
Multicast упростит программное обеспечение для вещания, потому что сетевое оборудование будет обрабатывать рассылку пакетов клиентам. Клиенты подписываются на многоадресные каналы, и сеть переконфигурируется для маршрутизации пакетов новому подписчику. По умолчанию все каналы доступны всем клиентам и могут быть оптимально маршрутизированы.
Этот рабочий процесс затрудняет процесс авторизации. Сетевое оборудование не отличает подписанных пользователей от других пользователей. Решение для авторизации заключается в шифровании видеоконтента и включении дешифрования в программном обеспечении проигрывателя, когда подписка действительна.
Рабочий процесс одноадресной передачи (TCP) позволяет серверу проверять учетные данные клиента и разрешать только действительные подписки. Даже разрешить только определенное количество одновременных подключений.
Многоадресная рассылка не включена через Интернет.
Для доставки видео через интернет необходимо использовать TCP. Когда используется UDP, разработчики заканчивают тем, что повторно реализуют повторную передачу пакетов, например, для. Протокол Bittorrent p2p в реальном времени.
«Если вы используете TCP, ОС должна буферизовать неподтвержденные сегменты для каждого клиента. Это нежелательно, особенно в случае живых событий».
Этот буфер должен существовать в некоторой форме. То же самое верно для буфера джиттера на стороне игрока. Он называется «буфером сокета», и серверное программное обеспечение может знать, когда этот буфер заполнен, и отбрасывать надлежащие видеокадры для потоковой передачи. Лучше использовать метод одноадресной передачи / TCP, потому что серверное программное обеспечение может реализовать правильную логику отбрасывания кадров. Случайные пропущенные пакеты в случае UDP просто создадут плохой пользовательский опыт. как в этом видео: http://tinypic.com/r/2qn89xz/9
«Многоадресная IP-рассылка значительно снижает требования к пропускной способности видео для большой аудитории»
Это верно для частных сетей, многоадресная передача не включена через Интернет.
"Обратите внимание, что если TCP теряет слишком много пакетов, соединение прерывается; таким образом, UDP дает вам гораздо больший контроль над этим приложением, поскольку UDP не заботится о сбоях сетевого транспортного уровня."
UDP также не заботится о том, чтобы отбрасывать целые кадры или группу кадров, поэтому он не дает больше контроля над пользовательским интерфейсом.
«Обычно видеопоток несколько отказоустойчивый»
Кодированное видео не отказоустойчиво. При передаче по ненадежному транспорту в контейнер видео добавляется прямое исправление ошибок. Хорошим примером является контейнер MPEG-TS, используемый в спутниковой видеотрансляции, который переносит несколько потоков аудио, видео, EPG и т. Д. Это необходимо, поскольку спутниковая линия не является дуплексной связью, то есть получатель не может запросить повторную передачу потерянных пакетов.
При наличии дуплексной связи всегда лучше повторно передавать данные только тем клиентам, у которых потеря пакетов, а затем включать накладные расходы на прямое исправление ошибок в потоке, отправляемом всем клиентам.
В любом случае потерянные пакеты недопустимы. Отброшенные кадры в порядке в исключительных случаях, когда пропускная способность ограничена.
Результатом отсутствия пакетов являются артефакты, подобные этому:
Некоторые декодеры могут разбивать потоки на пропущенные пакеты в критических местах.