Что такое RTMP? Протокол обмена сообщениями в реальном времени
Потоковое онлайн-видео с годами становится все более популярным, и одной из технологий, которая помогла сделать это возможным, является RTMP. Технология потокового видео постоянно развивается, и RTMP до сих пор играл ключевую роль в ее развитии.
RTMP означает протокол обмена сообщениями в реальном времени, и он используется для потоковой передачи видео в реальном времени примерно с 2002 года. Но с годами протокол превратился из инструмента для профессионалов в более профессиональный. По мере развития технологии потокового вещания роль RTMP в видео меняется вместе с ней.
В этом посте мы расскажем все, что вам нужно знать о RTMP и о том, как он связан с прямой трансляцией. Мы обсудим, что такое RTMP, а что нет, и углубимся в более технические аспекты протокола, а также его будущее.
Мы также рассмотрим конкретное назначение RTMP в прямой трансляции, различные варианты видеопротокола и основы кодирования RTMP. В заключение мы обсудим, как RTMP работает с Dacast.
Содержание- Что такое RTMP?
- Краткий обзор RTMP
- Как работает прием RTMP?
- Объяснение формата сообщения о действии (AMF)
- Флэш мертв?
- Варианты протокола RTMP
- RTMP-кодирование
- RTMP и RTSP: в чем разница?
- Как вести прямую трансляцию с RTMP на Dacast
- Заключительные мысли
Протокол обмена сообщениями в реальном времени (RTMP) — это коммуникационная технология, обеспечивающая потоковую передачу видео через Интернет. Он основан на технологии протокола управления передачей (TCP) и изначально был разработан Macromedia для их Flash Player, который позже стал Adobe Flash Player после того, как компания была приобретена Adobe.
Первоначально протокол RTMP в основном использовался для передачи контента между хост-сервером и видеоплеером. Сегодня его предназначение немного другое. С точки зрения самых современных настроек потокового вещания, основная роль RTMP заключается в доставке контента от кодировщика к онлайн-видеохосту. Это процесс, известный как «проглатывание».
В контексте своей новой роли в потоковом вещании RTMP важен, но его возможности несколько уступают тому, что он делал раньше. Он способен вести потоковую передачу с малой задержкой, что является большим плюсом для вещательных компаний, которые транслируют важные события в режиме реального времени. Он также известен своей минимальной буферизацией, которая действительно улучшает взаимодействие с пользователем. Потоковая передача по протоколу RTMP — один из лучших способов доставки потокового контента с низким уровнем буферизации.
Технология RTMP также играет роль в потоковой передаче с адаптивным битрейтом и в некоторых инструментах веб-конференций. Существует несколько вариантов протокола RTMP, используемых для различных целей, которые мы обсудим далее в этом посте.
Краткий обзор RTMPВот несколько фактов, которые помогут вам лучше понять, что означает RTMP и что этот протокол делает для видеоконтента.
- RTMP — это протокол потоковой передачи в реальном времени, который передает видеофайлы с кодировщика на платформу онлайн-видеохостинга.
- RTMP и его варианты передаются по TCP и UDP (протокол пользовательских дейтаграмм).
- RTMP поддерживает такие аудиокодеки, как AAC и MP3.
- H.264 — это распространенный видеокодек для кодирования RTMP, но он также поддерживает другие кодеки, такие как x264.
- RTMP Ingest поддерживает использование недорогих инструментов кодирования.
- Загрузка RTMP в Dacast автоматически поддерживает преобразование в HLS на iOS, Android и во всех браузерах.
- RTMP имеет несколько различных вариантов.
- RTMP в основном устарел для общего использования и больше не поддерживается Adobe.
Хотя RTMP технически прекращен, его все еще можно использовать с некоторыми транскодерами в различных рабочих процессах и контекстах вещания.
Есть три отдельных компонента, которые обеспечивают работу приема RTMP:
- Рукопожатие
- Соединение
- Поток
Эта последовательность событий может произойти почти мгновенно. Загрузка RTMP — относительно простой процесс, но он усложняется тем, что протокол больше не поддерживается Adobe.
В наши дни прием RTMP в основном происходит в профессиональных средах вещания. Это может быть сложно, но одна из причин, по которой он остается, заключается в том, что он уже давно является надежным и управляемым инструментом для потоковой передачи видео. Он по-прежнему может легко интегрироваться с профессиональной платформой видеохостинга.
Вот краткий обзор процесса загрузки RTMP.
Этап рукопожатия включает серию быстрых обменов между клиентом и сервером. Сначала клиент отправляет то, что обычно называют заголовком. По сути, это криптографическая подпись. Сразу после отправки заголовка клиент отправляет 1536 байт случайных данных.
Затем сервер отвечает тем же: он отправляет заголовок, а затем сразу за ним 1536 байт случайных данных. Наконец, клиент отправляет серверу копию случайных данных сервера обратно им, затем сервер отправляет клиенту копию случайных данных клиента обратно им. На этом рукопожатие завершено.
Шаг 2: СоединениеПосле завершения рукопожатия начинается фаза соединения. Фаза соединения включает обмен данными с использованием кодирования AMF (формат сообщения о действии). Это устанавливает стандарт связи между клиентом и сервером, включая общие спецификации для таких вещей, как воспроизведение видео, размеры кадра и пропускная способность.
Шаг 3: ПотокПосле установления стандартов соединения и связи запускается поток. Эта фаза позволяет выполнять важные пользовательские команды, такие как воспроизведение и пауза.
Описание формата сообщений о действиях (AMF)AMF — это формат двоичной сериализации, который широко используется для обмена данными между приложениями Adobe Flash и серверами. Он также сериализует графы объектов, например, в данных XML. Хотя он был разработан для Adobe Flash, теперь AMF поддерживается во многих серверных средах.
Роль, которую AMF продолжает играть в RTMP, в основном такая же, как и для Flash. Это механизм, который позволяет клиенту отправлять команды на сервер, который затем обрабатывает запрос и отправляет ответ.
Флэш умер?Флеш вполне может исчезнуть. Но RTMP не совсем мертв, он просто устарел для общего использования. В вещании старые стандарты и форматы нередко продолжают использоваться на профессиональных объектах по ряду причин. Одна из этих причин заключается в том, что когда все еще полезная технология теряет популярность у широкой публики, она становится менее уязвимой для пиратства. Хотя проигрыватель Adobe Flash (видеоплеер, изначально использовавший этот протокол) практически мертв, сам по себе RTMP по-прежнему ценен в других ролях в прямых трансляциях.
Проигрыватель Adobe Flash Player больше не поддерживается Adobe и в значительной степени был заменен видеопроигрывателями HTML5. Как мы уже упоминали, RTMP использовался для подключения Flash player к серверу доставки RTMP. Протокол HLS взял на себя эту роль с помощью видеоплеера HTML5.
По сути, доставка RTMP мертва, но прием RTMP для HLS — нет.
RTMP остается важным в сфере потокового вещания, даже несмотря на то, что его предыдущий основной вариант использования быстро прекращается.
Варианты протокола RTMPСуществует несколько вариантов протокола RTMP, включая собственно RTMP, RTMPS, RTMPE, RTMPT и RTMFP. Эти видеопротоколы служат несколько отличающимся друг от друга целям в мире потокового вещания.
Давайте посмотрим, что именно может предложить каждый из этих вариантов потокового протокола.
1. RTMPСобственно RTMP является самой старой версией протокола RTMP. Это формат потоковой передачи, разработанный Macromedia (позже Adobe), который лег в основу других стандартов в этом списке.
2. RTMPS Потоковая передача RTMPS использует сертификат SSL для создания более безопасного потока. Крупные платформы, такие как YouTube, до сих пор используют этот вариант RTMP для защиты стримеров, которые выходят в эфир на общедоступных интернет-серверах.
RTMPE был альтернативным безопасным методом потоковой передачи, первоначально разработанным Macromedia. Он по-прежнему имеет ограниченное использование в 2022 году, но не использует сертификацию безопасности SSL (которая остается одним из преобладающих стандартов для защиты данных и контента в Интернете).
4. RTMPTRTMPT передает потоковое видео через туннелирование. Туннелирование — это способ отправки личных данных через общедоступные сети. Хотя это может быть полезно в определенных контекстах, также известно, что это приводит к дополнительной задержке в процессе или рабочем процессе.
5. RTMFP Протокол передачи мультимедиа в реальном времени (RTMFP) — это разновидность RTMP, построенная на базе UDP вместо TCP. Эта технология лежит в основе многих инструментов для видеоконференций и приложений для социальных сетей с функциями чата в прямом эфире. Причина, по которой этот протокол предпочтительнее для этого варианта использования, заключается в том, что он требует меньше данных, что позволяет снизить затраты на полосу пропускания.
Как упоминалось ранее, в настоящее время технология RTMP обычно используется для передачи видеоконтента с кодировщика прямых трансляций на потоковую платформу. Для потоковой передачи с настройкой, использующей протокол RTMP таким образом, вы должны использовать кодировщик RTMP.
К счастью, многие из лучших кодировщиков на рынке по-прежнему поддерживают RTMP, поэтому у вас не должно возникнуть особых проблем с поиском того, который вам подходит.
Когда дело доходит до кодирования RTMP, у вещательных компаний есть варианты, когда речь идет о программных и аппаратных кодировщиках. Есть решения практически для любых потребностей и бюджета.
Вот список некоторых из лучших вариантов кодировщика RTMP:
- OBS Studio : OBS Studio — это бесплатная программа кодирования с открытым исходным кодом, которая идеально подходит для вещателей, которые плохо знакомы с игрой. OBS предлагает пользовательскую версию для пользователей Dacast.
- Wirecast : Wirecast — популярный программный кодировщик от Telestream. Это программное обеспечение стоит от 599 долларов, что делает его более подходящим для более продвинутых вещателей.
- VidBlaster : VidBlaster — это программа для прямой трансляции с возможностями редактирования, микширования и кодирования. Это отличный вариант для вещателей, которые хотят придать своим трансляциям профессиональный вид. Программное обеспечение стоит от 9 долларов в год.
- vMix : vMix — еще одна программа для потоковой передачи в реальном времени с возможностями кодирования и планами для любого бюджета. В настоящее время планы варьируются от бесплатных до 1200 долларов за пожизненную лицензию.
- TriCaster : TriCaster — это серия кодирующих устройств от NewTek. В эту серию входят как переносные, так и стационарные варианты.
- Teradek : Teradek — компания-производитель оборудования, предлагающая широкий ассортимент кодирующих устройств.
Для получения дополнительной информации о настройке кодировщика RTMP ознакомьтесь с нашим Руководством по настройке кодировщика . Вы узнаете больше о том, как настроить кодировщики RTMP и что такое RTMP.
Помимо упомянутых выше инструментов кодирования, существуют приложения для iOS, поддерживающие потоковую передачу RTMP с вашего iPhone. Эти приложения предназначены для прямой трансляции на ходу.
Вот несколько примеров лучших приложений для потокового вещания, поддерживающих iOS и RTMP:
- Larix Broadcaster
- Twitch.tv
- нанопоток
- Wirecast Go
- Аирмикс Соло
- Передай мне
- LinkedIn Live
Мы хотели бы отметить, что, несмотря на то, что стримить можно со смартфона iPhone, идеально подходит стриминг на профессиональном оборудовании. Однако, если вы транслируете на месте и у вас нет мобильного оборудования для потоковой передачи, iPhone или iPad все равно могут справиться с этой задачей.
Для получения более подробной информации о приложениях для iOS, таких как Twitch, TikTok и других, не упомянутых здесь, которые поддерживают потоковую передачу RTMP, ознакомьтесь с нашим Сравнение приложений iOS RTMP .
RTMP и RTSP: в чем разница?RTSP, сокращенно от «Протокол потоковой передачи в реальном времени», — это еще один протокол, используемый для потоковой передачи онлайн-видео. Он значительно менее популярен, чем RTMP, но все же важен.
Основное различие между RTMP и RTSP заключается в той части процесса прямой трансляции, за которую каждый из них отвечает. RTMP передает видео от кодировщика к видеоплееру, тогда как RTSP управляет командами между зрителями, сервером и видеоплеером.
Как проводить прямую трансляцию с помощью RTMP на Dacast Технология RTMP по-прежнему очень важна для прямой трансляции.Dacast автоматически использует прием RTMP и совместим с любым кодировщиком RTMP. Это означает, что RTMP — это Dacast по умолчанию, а не выбор. Вот насколько важен RTMP для процесса потоковой передачи видео.
Dacast не поддерживает доставку по протоколу RTMP или проигрыватель Adobe Flash. Причина этого в том, что он использует видеоплеер HTML5, который является более современной альтернативой. Видеоплеер HTML5 — это то, что делает возможной потоковую передачу на все устройства.
Если вы хотите узнать больше о том, как настроить прямую трансляцию на Dacast, ознакомьтесь с руководством «Введение в прямую трансляцию».
Заключительные мыслиRTMP играет важную роль в нескольких различных аспектах прямой трансляции. Без этой технологии трудно сказать, где сегодня была бы индустрия потокового онлайн-видео.
Подводя итоги, важно помнить, что RTMP не умер, просто он играет больше закулисных ролей, чем когда-то.
Если у вас есть какие-либо вопросы о том, как работает RTMP, обратитесь в компетентную службу поддержки Dacast 24/7. Они ответят на ваши вопросы и предоставят вам материалы, необходимые для понимания этой технической темы.
Вы получите доступ к 14 дней бесплатного обслуживания , чтобы узнать, почему Dacast был выбран в 2019 году в номинации «Лучшая платформа для малого и среднего бизнеса». Никаких кредитных карт или огромных стартовых взносов не требуется.
Начните бесплатно
А пока, пожалуйста, ознакомьтесь с базой знаний Dacast, которая является специальной частью сайта и содержит документацию о том, как использовать каждую функцию платформы потокового видео Dacast.
Спасибо за чтение и удачной трансляции.
Что такое протокол обмена сообщениями в реальном времени (RTMP)?
Определение
Протокол обмена сообщениями в реальном времени (RTMP) — это протокол для потоковой передачи аудио, видео и данных через Интернет.
Обзор
После того, как Adobe приобрела компанию Macromedia, создавшую RTMP, они выпустили частичную версию для общего пользования. Как и многие общедоступные исходные коды, протокол обмена сообщениями в реальном времени имеет несколько вариантов:
- RTMPS — использует соединение Secure Sockets Layer (SSL).
- RTMPE — зашифрован с помощью механизма безопасности Adobe.
- RTMPT — инкапсулируется в HTTP-запросы для прохождения через брандмауэры.
- RTMFP — использует UDP вместо TCP.
Каждый тип протокола обмена сообщениями в реальном времени в основном используется для трех различных процессов:
- Прямая трансляция
- Потоковая передача с адаптивным битрейтом
- Ускоренная перемотка видео/аудио
Как работает протокол обмена сообщениями в реальном времени
RTMP — это протокол на основе TCP, разработанный для поддержки соединений с малой задержкой для потоковой передачи аудио и видео. Чтобы увеличить объем данных, которые можно беспрепятственно передавать, потоки разбиваются на более мелкие фрагменты, называемые пакетами. RTMP также определяет несколько виртуальных каналов, которые работают независимо друг от друга для доставки пакетов. Это означает, что видео и аудио передаются по разным каналам одновременно.
Трехэтапный процесс
На высоком уровне протокол обмена сообщениями в реальном времени работает как трехэтапный процесс.
Шаг 1: рукопожатие
Как только RTMP устанавливает TCP-соединение, он выполняет рукопожатие путем обмена тремя пакетами между клиентом и сервером. Эти пакеты называются чанками.
Процесс выглядит следующим образом:
- Клиент отправляет фрагмент, чтобы сообщить серверу, какую версию протокола он использует.
- Не дожидаясь ответа, клиент отправляет еще один фрагмент с отметкой времени.
- Сервер отвечает эхом полученных фрагментов, на этот раз включая отметку времени их получения.
- Клиент отправляет последний пакет, который является копией пакета с отметкой времени, и сервер возвращает его.
- После завершения последнего обмена пакетами рукопожатие считается завершенным.
Шаг 2. Соединение
Теперь клиент и сервер могут начать согласование соединения с помощью сообщений в формате Action Message Format (AMF). Например, клиент отправил бы запрос на подключение, который выглядит следующим образом:
(Вызов) "подключиться" (Идентификатор транзакции) 1.0 (Object1) { приложение: "sample", flashVer: "MAC 10,2,153,2", swfUrl: null, tcUrl: "rtmpt://127.0.0.1/sample", fpad: ложь, возможности: 9947.75, аудиокодеки: 3191, видеокодеки: 252, videoFunction: 1 , pageUrl: null, objectEncoding: 3.0 }
И сервер получит запрос и ответит соответствующей последовательностью сообщений:
(Invoke) "_result" (идентификатор транзакции) 1.0 (Object1) { fmsVer: "FMS/3,5,5,2004", возможности: 31.0, режим: 1.0} (Object2) { уровень: "статус", код: "NetConnection.Connect.Success", описание: "Соединение успешно", данные: (массив) {версия: "3,5,5,2004"}, идентификатор клиента: 1728724019, objectEncoding: 3. 0 }
Шаг 3: Поток
Теперь клиент может запустить видео- или аудиопоток, отправив на сервер три сообщения: createStream, ping и play.
Примеры протокола обмена сообщениями в реальном времени
Вы можете создать прямую трансляцию протокола обмена сообщениями в реальном времени, используя программное обеспечение, такое как Simple-RTMP-Server (SRS), на своем собственном сервере или у поставщика, такого как ManyCam. Стандартный метод настройки прямой трансляции RTMP требует как минимум одного сервера для вашего программного обеспечения для потоковой передачи и подключения к отдельной сети доставки контента.
Основная проблема с этой стандартной настройкой заключается в возможности увеличения задержки, поскольку ваш поток перемещается с вашего сервера на вашу CDN, прежде чем он будет распространен среди ваших зрителей. StackPath решает эту проблему с помощью граничных вычислений.
Протокол обмена сообщениями в реальном времени на периферии
Как уже говорилось, медиасервер абсолютно необходим, если вы хотите использовать RTMP для прямой трансляции. Например, Wowza Streaming Engine — это широко используемое программное обеспечение для потоковой передачи видео в реальном времени и видео по запросу, которое можно установить на любой сервер, например на одну из виртуальных машин или контейнеров StackPath.
Ваш потоковый движок будет принимать живой поток RTMP, а затем предоставлять вашей CDN кешируемые фрагменты, обычно около 10 секунд.
Когда трафик поступает в CDN и выходит к зрителям, возникает задержка. Благодаря граничным вычислениям StackPath ваши медиасерверы уже находятся на периферии и могут доставлять контент без необходимости в сети доставки контента. Используя наши виртуальные машины или контейнеры на периферии, вы можете сократить задержки и расходы.
Ключевые выводы
- Протокол обмена сообщениями в реальном времени (RTMP) — это протокол с открытым исходным кодом, принадлежащий Adobe, предназначенный для потоковой передачи аудио и видео путем поддержания соединений с низкой задержкой.