close menu

Полное руководство по RTMP: что это такое и когда его использовать?

Complete Guide To RTMP

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

Но что такое RTMP? Как он работает? И стоит ли вам использовать его для своей следующей прямой трансляции?

Узнайте об этом и многом другом ниже.

Что такое RTMP?

RTMP - это сетевой протокол или система, используемая для потоковой передачи медиаконтента через интернет на основе технологии Transmission Control Protocol (TCP).

TCP - это один из компонентов, составляющих набор интернет-протоколов. Другим важным компонентом является интернет-протокол, также называемый IP.

RTMP - это сетевой протокол или система, используемая для потоковой передачи медиаконтента через Интернет.

Вместе TCP и IP действуют как коммуникационные мосты между прикладным и сетевым уровнями. Подумайте об этом так: прикладной уровень включает в себя то, с чем вы обычно взаимодействуете, например, браузер Mozilla Firefox или любое другое пользовательское приложение.

Чтобы браузер Firefox загрузил веб-страницу, он должен отправить запрос на сервер сайта. Получив запрос, сервер отправляет запрашиваемый ресурс (например, видеопоток, предварительно записанное видео на YouTube или Html-код для веб-страницы).

Чтобы поддерживать эффективную связь (т.е. избежать потери или задержки корреспонденции), сообщение должно быть разобрано на более мелкие части, называемые пакетами. Это делается на стороне отправителя, а после получения сообщения оно вновь собирается для пользователя.

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

Уровень IP действует как агент пересылки, который определяет наилучшие маршруты для передачи пакетов через Интернет.

Протокол RTMP используется многими популярными медиаплеерами, включая Adobe Flash Player, VLC Media Player, QuickTime Player и Windows Media Player. RTMP также поддерживается некоторыми веб-браузерами, включая Google Chrome и Mozilla Firefox.

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

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

Еще одним плюсом RTMP является его способность поддерживать массовую потоковую передачу одновременно и без серьезных проблем.

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

Вот как возникает уязвимость(и) в системе безопасности:

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

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

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

Попробуйте прямую трансляцию Wave.video

Надежная и простая в использовании мультистриминговая платформа для стримеров любого уровняПопробуйте сейчас

Разновидности RTMP

Варианты RTMP включают следующее:

  • Real-Time Messaging Protocol Server (RTMPS) - похож на RTMP, только имеет шифрование, т.е. включен уровень защищенных сокетов (SSL) и Transport Layer Security (TLS), и поддерживает все проигрыватели с включенным Flash-плеером. Он используется в сценариях, где крайне важно предотвратить фальсификацию или несанкционированный доступ к данным при их передаче.
  • Encrypted Real-Time Messaging Protocol (RTMPE) - это очень универсальный потоковый протокол, который использует для передачи данных как протокол управления транспортом (TCP), так и протокол пользовательских дейтаграмм (UDP). RTMPE также шифрует все передаваемые данные с помощью фирменного шифрования Adobe, чтобы избежать несанкционированного доступа и несанкционированного вмешательства.
  • Real-Time Messaging Protocol Tunnel (RTMPT) - RTMPT использует механизм туннелирования для обхода брандмауэров, которые обычно блокируют весь трафик RTMP. На практике RTMPT требует, чтобы клиент отправил модифицированный HTTP-запрос на сервер, который отвечает почти такой же HTTP-передачей. Клиент и сервер используют идентификатор сессии; как только соединение установлено, между ними может начаться передача данных.
  • Real-Time Media Flow Protocol (RTMFP) - RTMFP - это усовершенствованная версия RTMP, в которой используется другой формат кодирования UDP для достижения высокопроизводительной потоковой передачи мультимедиа.

История потоковой передачи данных RTMP

Real-Time Messaging Protocol (RTMP) изначально был собственным протоколом, разработанным компанией Macromedia для потоковой передачи аудио, видео и данных через интернет между Flash-плеером и сервером.

RTMP сегодня используется многочисленными популярными онлайн-сервисами, такими как Facebook, Twitch и Twitter, для потоковой передачи видео в реальном времени.

Первый публичный релиз RTMP был выпущен в 2002 году. В 2009 году компания Adobe выпустила версию RTMP с открытой спецификацией, известную как OpenRTMP. Основное различие между RTMP и OpenRTMP заключается в том, что в OpenRTMP можно использовать любой медиасервер, а не только Flash Media Server (FMS).

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

Главный принцип

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

Работа RTMP состоит из двух частей: Доставка на первую и последнюю милю.

Доставка на первую милю обычно включает передачу мультимедиа от кодера на сервер с помощью RTMP. Доставка на последней миле относится к передаче медиа с сервера на устройство пользователя. Во второй части используется Flash-плеер или аналогичный инструмент. Есть сообщения, что Adobe прекращает поддержку Flash; следовательно, это означает конец доставки "последней мили".

В ответ на это индустрия приняла протокол Hypertext Transfer Protocol (HTTP), более эффективное решение для потоковой передачи данных.

Варианты RTMP, такие как RTMPT, в настоящее время используют HTTP для инкапсуляции и передачи мультимедиа.

Как работает RTMP Ingest

Это, вероятно, одно из достоинств RTMP, благодаря которому он существует так долго. Когда мир перешел от просмотра медиа на компьютерах к просмотру на мобильных устройствах, RTMP столкнулся с проблемой.

Например, RTMP полагался на плеер Adobe Flash для обеспечения бесперебойной потоковой передачи, но была небольшая проблема. Мобильные устройства не поддерживали Adobe Flash player; по сути, RTMP стал бесполезен для пользователей, которые хотели получить те же потоковые услуги на своих мобильных устройствах.

В ответ компания Apple разработала протокол HLS для поддержки функции потокового вещания на мобильных устройствах.

Было вполне разумно ожидать, что RTMP устареет. К счастью, он продолжал жить вместе с RTMP ingest, создав свою нишу в качестве идеального протокола для передачи мультимедиа от кодера к серверу.

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

Она включает в себя три основных компонента:

1. Рукопожатие

Когда клиент хочет подключиться к серверу RTMP, ему сначала необходимо установить рукопожатие. Этот процесс начинается с отправки клиентом запроса "connect" на сервер, который включает информацию о клиенте и типе соединения, которое он пытается установить.

Затем сервер отвечает сообщением "connected", которое содержит информацию о сервере и типе установленного соединения.

Наконец, клиент и сервер обмениваются сообщениями для подтверждения того, что они все еще соединены, и для согласования любых параметров, необходимых для соединения.

2. Соединение

Основной целью входящего соединения RTMP является предоставление средств для потоковой передачи медиаконтента от источника к месту назначения.

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

Соединение RTMP ingest состоит из трех компонентов:

  • Кодер преобразует видео- и аудиосигнал в цифровой формат, который можно передавать через Интернет.
  • Транспорт: Это среда, по которой кодированный сигнал передается от кодера к серверу; обычно это делается через UDP или TCP.
  • Сервер получает закодированный сигнал и делает его доступным для зрителей (обычно упаковывая его в формат типа Flash).

3. Потоковая передача

Когда пользователь передает контент на медиасервер, сервер должен сначала закодировать входящее видео и аудио, прежде чем отправлять его всем подключенным клиентам.

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

Подробнее о потоковом вещании Существует два типа потокового вещания: в прямом эфире и по требованию. Прямая трансляция - это трансляция в режиме реального времени, а трансляция по требованию - это когда пользователи могут смотреть контент в удобном для них месте.

Прямая трансляция требует постоянного соединения между клиентом и сервером, а трансляция по требованию - нет.

RTMP использует TCP для поддержания постоянного соединения между клиентом и сервером, обеспечивая потоковую передачу с низкой задержкой. Однако RTMP не очень хорошо подходит для потоковой передачи по требованию.

Альтернативы RTMP для загрузки

SRT и WebRTC - основные претенденты, которые могут сравниться с возможностями RTMP или даже превзойти их. Вот краткий обзор этих двух альтернатив:

Безопасный надежный транспорт (SRT)

SRT заполняет пробелы, с которыми не справился RTMP, например, поддерживает потоковое вещание с низкой задержкой, даже если пользователь подключен к относительно ненадежной сети. Это делает его отличным выбором для потокового вещания как в прямом эфире, так и по требованию.

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

Веб-коммуникации в реальном времени (WebRTC)

WebRTC выигрывает благодаря возможности публикации через браузер. WebRTC HTTP Ingest Protocol (WHIP) также находится в разработке, и для пользователей это означает, что они смогут осуществлять потоковую передачу с помощью только веб-браузера вместо того, чтобы возиться с кодировщиками, как в случае с RTMP.

Альтернативы ППТМ для эвакуации

В списке альтернатив RTMP egress лидируют HTTP Live Streaming (HLS), MPEG-DASH и WebRTC.

Вот краткий обзор альтернатив:

HLS и MPEG-DASH

Эти две технологии практически одинаковы, только HLS является проприетарной, а MPEG-DASH - с открытым исходным кодом.

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

WebRTC также является достойной альтернативой решениям RTMP egress.

Умирают ли RTMP и Flash?

Короткий ответ: скорее всего, нет. Длинный ответ немного сложнее.

Постоянный рост популярности HTML5 и распространение способных альтернатив Flash могут создать впечатление, что RTMP и Flash умирают. Но это не так.

Flash уже давно переживает упадок, уступив в последние годы значительную долю рынка HTML5, и его некогда доминирующее положение в мире видео теперь постоянно находится под угрозой.

Тем не менее, он по-прежнему широко представлен в Интернете и используется многими популярными сайтами, включая YouTube и Facebook.

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

Компания Adobe объявила о прекращении поддержки RTMP в 2020 году, что может означать конец этого протокола. Тем не менее, существует множество альтернатив, основанных на RTMP, поэтому он, вероятно, будет продолжать использоваться в той или иной форме еще долгие годы.

Так стоит ли вам стримить с помощью RTMP?

Это зависит от обстоятельств. Взгляните на некоторые плюсы и минусы использования RTMP.

Плюсы

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

Cons

  • RTMP требует постоянного соединения между клиентом и сервером, что может быть проблематичным при перебоях в сети
  • Поскольку это проприетарное программное обеспечение, у него мало гибкости для опытных пользователей.

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Как использовать Wave.video для потоковой передачи через RTMP?

Если вы хотите передавать потоковое видео через RTMP, Wave.video - отличный вариант. Вот как его использовать:

  1. Создайте учетную запись на Wave.video и войдите в систему, если вы этого еще не сделали.
  2. Выберите видео, которое вы хотите транслировать.
  3. Перейдите на страницу "Destinations" на Wave.video и нажмите на "Custom RTMP". RTMP Wave.video
  4. Далее необходимо найти URL-адрес сервера и ключ потока для содержимого, которое вы пытаетесь транслировать. Для этого перейдите на веб-сайт с потоком, который вы хотите просмотреть.
  5. Вы можете использовать стороннее приложение или расширение для извлечения URL и ключа, если не знаете, как это сделать.
  6. Скопируйте URL-адрес сервера и ключ потока.
  7. Вставьте URL-адрес сервера и ключ потока в Wave.video.RTMP name, key, url
  8. Создайте или запланируйте свой поток.
  9. Откройте студию прямого эфира и начните трансляцию.

Вот и все, быстро и просто!

Какие кодировщики поддерживают RTMP?

Существует множество аппаратных и программных средств кодирования, поддерживающих RTMP. Некоторые из них включают:

  • Adobe Media Encoder
  • Студия OBS
  • Элементарный сервер
  • TriCaster
  • Проводное вещание
  • vMix
  • TeraDek
  • Wowza Streaming Engine
  • Ниагарское видео

RTMP против RTSP - что лучше?

RTMP и RTSP - это протоколы для потоковой передачи аудио, видео и данных через Интернет. Они во многом похожи, но некоторые ключевые различия делают их идеальными для разных ситуаций или предпочтений.

Вот краткая информация о ключевых различиях между ними:

  • RTMP лучше подходит для потокового вещания в реальном времени, а RTSP - для потокового вещания по требованию.
  • RTMP имеет меньшую задержку, в то время как RTSP может обеспечить более высокое качество видео.
  • Для RTMP требуется Flash Media Server, в то время как RTSP может работать с любым медиа-сервером.

Итак, какой протокол лучше? Все зависит от ваших конкретных потребностей.

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

Что такое формат сообщений действия (AMF)?

AMF - это двоичный формат для кодирования и передачи данных через Интернет, который часто используется в сочетании с RTMP.

AMF позволяет передавать данные, несовместимые с RTMP, например, объекты ActionScript. Он также обеспечивает эффективный обмен данными между приложениями Flash и серверами.

Что такое URL RTMP и как получить его из Facebook или YouTube?

URL RTMP - это уникальный идентификатор, используемый для потоковой передачи видеоконтента в реальном времени на различные платформы.

Обычно он содержит IP-адрес, имя домена и номер порта.

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

Заключительные размышления

RTMP, несомненно, оставил свой след в мире. Находится ли он на пути к выходу? В качестве решения для выхода - возможно, для входа - нет!

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

Мы будем держать вас в курсе событий!

Присоединяйтесь к 5 000 маркетологов, которые читают наши статьи первыми