Подпишитесь, чтобы получать уведомления о новых публикациях:

Stream Live теперь общедоступен

2022-09-21

7 мин. чтения
Другие языки, на которых доступна эта публикация: English, Polski и Español.

Сегодня мы рады объявить о завершении бета-тестирования Stream Live, теперь он доступен всем желающим и готов к приему массового рабочего трафика. Stream Live является функцией Cloudflare Stream, позволяющей разработчикам встраивать видеотрансляции в веб-сайты и нативные приложения.

Stream Live is now Generally Available

С момента запуска бета-тестирования разработчики используют Stream для трансляции концертов ведущих мировых исполнителей напрямую поклонникам, разрабатывают на его основе новые платформы для создателей видео, обеспечивают функционирование глобального OTT-сервиса видеотрансляций в режиме 24/7 и многое другое. За время бета-тестирования Stream принял и доставил зрителям по всему миру миллионы минут прямых эфиров.

Каковы бы ни были ваши задачи — трансляция крупных мероприятий, новый масштабный сервис видеоподписок или мобильное видеоприложение с миллионами пользователей — мы к ним готовы.

Потоковые видеотрансляции в больших масштабах — непростое дело

Видеотрансляции требуют большой пропускной способности. Например, поток 1080p 8 Мбит/с продолжительностью 1 час — это 3,6 Гбайт. А учитывая типичные расценки облачных сервисов, даже небольшой объем исходящего трафика «кусается».

Видеотрансляции необходимо кодировать на лету, в режиме реального времени. Люди хотят иметь возможность смотреть трансляции на телефоне через мобильные сети, несмотря на их ограниченную пропускную способность, сетевые задержки и частые сбои соединения. Для этого видеопоток необходимо перекодировать в режиме реального времени в разных разрешениях, чтобы у телефона была возможность переключиться на более низкое разрешение и продолжить воспроизведение. Это может быть непросто (какой битрейт? какие кодеки? сколько?) и недешево: парк виртуальных машин стоит немалых денег.

Имеет значение точка приема видеопотока — протоколы потокового вещания, такие как RTMPS, используют для передачи видео протокол TCP. Если хотя бы один пакет оказывается отброшен или потерян, весь поток останавливается, пока пакет не будет найден и передан заново. Это называется «блокировка начала очереди». Чем дальше находится вещатель от принимающего видеопоток сервера, чем больше сетевых переходов, тем больше пакетов может быть потеряно, что в конечном итоге для зрителей приводит к задержкам и буферизации.

Имеет значение место доставки — видеотрансляции должны кэшироваться и доставляться из точек присутствия, расположенных как можно ближе к зрителям. Чем дольше время приема-передачи по сети, тем больше вероятность, что трансляции будут буферизироваться или переключаться на более низкое качество.

Протоколы потокового вещания меняются — самый распространенный протокол для потоковых видеотрансляций, RTMPS, не поддерживается с 2012 года и относится к эпохе Flash-видео начала 2000-х годов. Новый и набирающий популярность формат, SRT, пока не везде поддерживается. А WebRTC лишь недавно стал способен обеспечивать вещание в формате «один ко многим» с высоким разрешением и в больших масштабах.

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

Мы создали Stream Live для того, чтобы сделать онлайн-трансляции таким же легким делом, как добавление тега на веб-сайт. Видеотрансляции стали важным компонентом интернет-контента, и мы считаем, что у любого разработчика должны быть инструменты, дающие возможность встраивать их в веб-сайт или нативное приложение.

С помощью Stream вы или ваши пользователи передаете видеопоток трансляции напрямую в Cloudflare, а Cloudflare доставляет видео напрямую зрителям. Вам не нужно управлять внутренними системами кодирования, хранения и доставки — только видеопоток на входе и на выходе.

Наша сеть и наше оборудование = решение, которое может предоставить только Cloudflare

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

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

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

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

Кодирование видео требует больших затрат вычислительной мощности, доставка видео требует большой пропускной способности, при этом имеет значение точка приема видеопотока. При использовании Stream вам не нужно беспокоиться об оптимизации производительности, заниматься поиском CDN и/или бесконечной корректировкой настроек. Stream делает это за вас.

Ваши онлайн-трансляции не должны зависеть от бизнес-моделей больших платформ

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

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

Бесплатное кодирование. Бесплатный прием видеопотока. Бесплатная аналитика. Простая поминутная тарификация.


Others Stream
Encoding $ per minute Free
Ingestion $ per GB Free
Analytics Separate product Free
Live recordings Minutes or hours later Instant
Storage $ per GB per minute stored
Delivery $ per GB per minute delivered

.tg {border-collapse:collapse;border-spacing:0;} .tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px; overflow:hidden;padding:10px 5px;word-break:normal;} .tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px; font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;} .tg .tg-c6q4{font-family:inherit;text-align:left;vertical-align:top} .tg .tg-dkn2{background-color:#CCC;font-family:inherit;text-align:left;vertical-align:top} .tg .tg-0fkh{background-color:#CCC;font-family:inherit;font-weight:bold;text-align:left;vertical-align:top} .tg .tg-3xvn{font-family:inherit;font-weight:bold;text-align:left;vertical-align:top}

Другие

Stream

Кодирование

$ за минуту

Бесплатные сервисы

Прием видеопотока

$ за Гбайт

Бесплатные сервисы

Аналитика

Отдельный продукт

Бесплатные сервисы

curl -X POST \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-d "{"recording": { "mode": "automatic" } }" \
https://api.cloudflare.com/client/v4/accounts/<YOUR_CLOUDFLARE_ACCOUNT_ID>/stream/live_inputs

Записи трансляций

{
"result": {
"uid": "<UID_OF_YOUR_LIVE_INPUT>",
"rtmps": {
"url": "rtmps://live.cloudflare.com:443/live/",
"streamKey": "<PRIVATE_RTMPS_STREAM_KEY>"
},
...
}
}

Спустя несколько минут или часов

Мгновенно

Хранение

$ за Гбайт

за минуту хранящегося видео

Доставка

$ за Гбайт

за минуту доставленного видео

import SwiftUI
import AVKit

struct MyView: View {
    // Change the url to the Cloudflare Stream HLS manifest URL
    private let player = AVPlayer(url: URL(string: "https://customer-9cbb9x7nxdw5hb57.cloudflarestream.com/8f92fe7d2c1c0983767649e065e691fc/manifest/video.m3u8")!)

    var body: some View {
        VideoPlayer(player: player)
            .onAppear() {
                player.play()
            }
    }
}

struct MyView_Previews: PreviewProvider {
    static var previews: some View {
        MyView()
    }
}

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

Stream осуществляет кодирование и прием видео бесплатно. Другие платформы взимают плату за доставку исходя из пропускной способности, что влечет для вас убытки при доставке зрителям видео высокого качества. Если вы вещаете в высоком разрешении, вы платите больше.

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

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

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

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

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

Встраивание видеотрансляции в веб-сайт или приложение за несколько минут

Cloudflare Stream дает возможность вам или вашим пользователям вести прямые эфиры, используя те же протоколы и инструменты, которые используют крупные и небольшие вещатели для прямых эфиров на YouTube или Twitch, при этом предоставляя вам полный контроль над доступом и оформлением трансляций.

Шаг 1: Создайте источник трансляции

Создайте новый источник трансляции на информационной панели Stream или используйте Stream API:

Запрос

Ответ

Шаг 2: Используйте ключ RTMPS в любом ПО для онлайн-трансляций или в вашем собственном нативном приложении

Скопируйте URL и ключ RTMPS и используйте их в вашем приложении для потокового вещания. Для начала мы рекомендуем использовать Open Broadcaster Software (OBS), однако любое ПО с поддержкой RTMPS или SRT должно быть совместимо со Stream Live.

Введите URL и ключ RTMPS, созданные в Stream на шаге 1:

Шаг 3: Посмотрите окно предпросмотра вашей трансляции на информационной панели Cloudflare

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

Шаг 4: Встройте возможность воспроизведения видеотрансляций в ваш веб-сайт или приложение

Воспользуйтесь для этого кодом для встраивания нашего Stream Player или используйте любой видеоплеер, поддерживающий HLS или DASH — трансляции могут воспроизводиться как на веб-сайтах, так и в нативных приложениях для iOS и Android.

Например, в iOS достаточно ввести в AVPlayer ссылку на источник трансляции в виде URL манифеста HLS, вы можете найти ее через API или на информационной панели Stream.

Для выполнения всего примера приложения в XCode воспользуйтесь данным руководством в документации для разработчиков Stream.

На основе Stream компании создают собственные новые видеоплатформы

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

Для Switcher Studio видеотрансляции — основа всего бизнеса, их приложение для iOS позволяет индивидуальным и корпоративным пользователям вести брендированные многокамерные видеотрансляции. В качестве ключевого компонента инфраструктуры потокового вещания Switcher использует Stream. Вот что они говорят:

«С 2014 года Switcher помогает создателям и зрителям видеотрансляций находить друг друга. Сейчас наши пользователи проводят более 100 000 прямых эфиров в месяц. В связи с ростом нам потребовалось масштабируемое решение для доставки контента. Cloudflare обеспечивает надежную и быструю доставку, и мы даже смогли предложить новые функции, такие как мультистриминг. Уверенность в Cloudflare Stream позволяет нашим специалистам сосредоточиться на инструментах для онлайн-трансляций, делающих Switcher уникальным».

На этапе бета-тестирования Stream Live мы работали со многими клиентами, такими как Switcher, для кого видеотрансляции — не просто одна из функций, а главная основа всего продукта. Даже будучи экспертами в области видеотрансляций, они выбрали Stream, чтобы иметь возможность сосредоточиться на создании уникальных преимуществ для клиентов, используя для приема, кодирования, записи и доставки видео инфраструктуру Cloudflare.

Начните встраивать видеотрансляции в ваш веб-сайт или приложение уже сегодня

Нужно всего несколько минут, чтобы зарегистрироваться и начать первую трансляцию с помощью информационной панели Cloudflare. Для начала работы не требуется писать никакой код, а для создания вашего собственного функционала видеотрансляций вы сможете использовать наши API. Попробуйте — мы готовы, каким бы ни был размер вашей аудитории.

Мы защищаем целые корпоративные сети, помогаем клиентам эффективно создавать интернет-приложения в глобальном масштабе, ускорять любые веб-сайты или интернет-приложения, отражать DDoS-атаки, не допускать действий хакеров, и можем оказать поддержку на вашем пути к Zero Trust.

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

Чтобы узнать больше о нашей миссии, которая состоит в том, чтобы способствовать развитию и совершенствованию Интернета, начните здесь. Если вы ищете новое направление для развития своей карьеры, ознакомьтесь с нашими открытыми позициями.
GA WeekGeneral AvailabilityCloudflare StreamVideoНовости о продуктахРазработчики

Подписаться на X

Brendan Irvine-Broque|@irvinebroque
Cloudflare|@cloudflare

Связанные публикации

24 октября 2024 г. в 13:00

Durable Objects aren't just durable, they're fast: a 10x speedup for Cloudflare Queues

Learn how we built Cloudflare Queues using our own Developer Platform and how it evolved to a geographically-distributed, horizontally-scalable architecture built on Durable Objects. Our new architecture supports over 10x more throughput and over 3x lower latency compared to the previous version....

09 октября 2024 г. в 13:00

Improving platform resilience at Cloudflare through automation

We realized that we need a way to automatically heal our platform from an operations perspective, and designed and built a workflow orchestration platform to provide these self-healing capabilities across our global network. We explore how this has helped us to reduce the impact on our customers due to operational issues, and the rich variety of similar problems it has empowered us to solve....