Как подключить Cloudflare

Stream теперь поддерживает SRT в качестве замены RTMP.

SRT — это новый и современный протокол передачи видео в реальном времени. Он включает в себя множество улучшений существующего популярного протокола приема видео, RTMP, таких как меньшая задержка и лучшая устойчивость к непредсказуемым сетевым условиям в общедоступном Интернете. SRT поддерживает более новые видеокодеки и упрощает использование специальных возможностей, таких как субтитры и несколько звуковых дорожек. Хотя разработка RTMP была прекращена по крайней мере с 2012 года, разработка SRT поддерживается активным сообществом разработчиков.

Мы не ожидаем, что использование RTMP в ближайшее время сократится, но мы можем сделать что-то, чтобы у авторов нового программного обеспечения для вещания, а также у платформ потокового видео была альтернатива.

Stream теперь поддерживает SRT в качестве замены RTMP.

Начиная с сегодняшнего дня в открытой бета-версии вы можете использовать Stream Connect в качестве шлюза для преобразования SRT в RTMP или RTMP в SRT с вашими существующими приложениями. Таким образом, вы можете получить преимущества надежности SRT на последней миле и продолжить использовать службу RTMP по вашему выбору. Стоимость составляет 1 доллар за 1000 минут, независимо от параметров кодирования видео.

Вы также можете использовать SRT для прямой трансляции в Stream Live, нашей сквозной службе потоковой передачи в реальном времени, чтобы получать URL-адреса манифеста HLS и DASH из вашего ввода SRT и выполнять одновременную трансляцию на несколько платформ, независимо от того, используете ли вы SRT или RTMP.

Реализация Stream SRT и RTMP поддерживает добавление или удаление выходных данных RTMP или SRT без перезапуска исходного потока, масштабируется до десятков тысяч одновременных видеопотоков на каждого клиента и работает на каждом сервере Cloudflare в любом месте Cloudflare по всему миру.

Живи как в 2022 году

Когда в начале прошлого года мы впервые начали разрабатывать функции живого видео в Cloudflare Stream, нам пришлось решить, следует ли повторно реализовать старый и неподдерживаемый протокол RTMP или сосредоточиться на будущем и начать все заново, используя современный протокол. Если бы мы запускались с RTMP, мы бы получили мгновенную совместимость с существующими клиентами, но отказались бы от функций, которые значительно повысили бы производительность и надежность. Повторная реализация RTMP также будет означать, что нам придется обрабатывать сложную конечную машину, которая обеспечивает его работу, демультиплексировать FLV-контейнер, анализировать AMF и даже писать сервер, который отправляет текст «Подлинный Adobe Flash Media Server 001» как часть RTMP-рукопожатия.

Stream теперь поддерживает SRT в качестве замены RTMP.

Несмотря на то, что в этом проекте было несколько новых протоколов для оценки и выбора, доминирование RTMP по-прежнему было подавляющим. Мы решили внедрить RTMP, но очень не хотим, чтобы кто-то еще делал это снова.

Устранить блокировку в начале очереди

Общей слабостью TCP, когда речь идет о передаче видео с малой задержкой, является блокировка начала строки. Представьте себе приложение камеры, отправляющее видео на сервер прямой трансляции. Камера помещает каждый захваченный кадр в пакеты и отправляет их по надежному TCP-соединению. Независимо от разнообразия интернет-инфраструктуры, через которую он может проходить, TCP гарантирует, что все пакеты будут доставлены по порядку (чтобы ваши видеокадры не прыгали) и надежно (чтобы вы не увидели, что какая-либо часть кадра отсутствует). ). Тем не менее, этот тип соединения обходится дорого. Если Один пакет отбрасывается или теряется в сети где-то между двумя конечными точками, как это часто происходит при подключении к мобильной сети или Wi-Fi, это означает, что все TCP-соединение останавливается, пока потерянный пакет находится и повторно передается. Это означает, что если один кадр вдруг отсутствует, то все это произойдет после того, как потерянный видеокадр должен подождать. Это известно как блокировка начала строки.

RTMP испытывает блокировку заголовка строки, поскольку использует TCP-соединение. Поскольку SRT является протоколом на основе UDP, он не подвергается блокировке заголовков строк. SRT имеет функцию восстановления пакетов, которая учитывает требования к низкой задержке и высокой надежности видео. Подобно QUIC, он достигает этого, реализуя собственную логику для надежного соединения поверх UDP, а не полагаясь на TCP.

SRT решает эту проблему, лишь немного подождав, потому что знает, что потеря одного кадра не будет заметна для конечного зрителя в большинстве случаев. Видео движется дальше, если кадр сразу не передается повторно. SRT действительно сияет, когда вещатель транслирует с менее чем звездным подключением к Интернету. Использование SRT означает меньшее количество событий буферизации, меньшую задержку и лучшее общее впечатление от просмотра для ваших зрителей.

RTMP в SRT и SRT в RTMP

Сравнение SRT и RTMP сегодня может оказаться не таким уж полезным для самых прагматичных разработчиков приложений. Возможно, это просто еще один протокол, который делает то же самое для вас. Важно помнить, что даже если сегодня для вас не будет больших улучшений, завтра появятся новые варианты использования видео, которые выиграют от протокола на основе UDP, который избегает блокировки заголовка строки, поддерживает прямое исправление ошибок и современные кодеки за пределами H.264 для видео высокого разрешения.

Переключение протоколов требует усилий как со стороны программного обеспечения, которое отправляет видео, так и со стороны программного обеспечения, которое получает видео. Это разочаровывающая проблема курицы или яйца. Служба потоковой передачи видео не будет реализовывать неиспользуемый протокол, а клиенты не будут реализовывать протокол, не поддерживаемый службами потоковой передачи.

Начиная с сегодняшнего дня, вы можете использовать Stream Connect для преобразования между протоколами и отказа от поддержки RTMP, не дожидаясь, пока видеоплатформы наверстают упущенное. Таким образом, вы можете использовать свой любимый сервис потокового видео в реальном времени с протоколом по вашему выбору.

Поток полезен, если вы также являетесь платформой для прямых трансляций! Вы можете начать использовать SRT, сохраняя при этом совместимость с существующими клиентами RTMP. При создании видеосервиса вы можете настроить Stream Connect для завершения RTMP и вместо этого отправить SRT в пункт назначения, который вы планируете.

SRT уже реализован в таких программах, как FFmpeg и OBS. Вот как заставить его работать из OBS:

Stream теперь поддерживает SRT в качестве замены RTMP.

Начните с регистрации в Cloudflare Stream и добавления прямого ввода.

Прямая трансляция, не зависящая от протокола

Мы работаем над добавлением поддержки дополнительных медиа-протоколов в дополнение к RTMP и SRT. Что бы вы хотели увидеть дальше? Дайте нам знать! Если этот пост вам понравился, присоединяйтесь к инженерам, работающим над созданием видео и других материалов в Cloudflare!

Что такое Cloudflare