Термин в Энциклопедическом Фонде

Потоковая передача данных

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

Для решения проблемы быстрого доступа к медиа-файлам через Интернет используется сочетание агрессивной компрессии с потоковой передачей данных. Сетевые протоколы пересылают файлы "пакетами" - фрагментами данных, непригодными для непрерывного проигрывания. Для обеспечения работоспособности технологии приложения для приёма-передачи данных реализуют по клиент-серверной технологии, при которой сервер собирает поток и, при получении запроса от клиента, отправляет этот поток ему. Клиент же получает данные, обрабатывает их и преобразовывает в звук и изображение. Если клиент получает данные недостаточно быстро, их воспроизведение не будет гладким, то есть будет обрываться или замирать. Возможна и обратная ситуация, когда приложение получает данные быстрее, чем воспроизводит. Для преодоления этой проблемы приложения, осуществляющие потоковую передачу медиа-данных, сохраняют полученные пакеты данных в памяти ("буферизируют"), вследствие чего обеспечивается проигрывание файла с постоянной скоростью. Компрессия данных является компромиссом между качеством передаваемых данных и скоростью самого компьютера, а также скоростью доступа в интернет.

Изначально потоковая передача данных применялась для передачи аудио (интернет-радио и т.п.) Первая аудио-трансляция в интернете была произведена в США в августе 1994 г. Пионером в этой области стала компания RealNetworks (носившая тогда название Progressive Networks) основанная в 1995 г., а их формат RealAudio постепенно завоевал популярность и превратился в общепринятый стандарт, наравне с такими популярными сегодня форматами, как Flash или MP3. В последних версиях RealAudio предусматриваются динамическая компрессия, которая может переключаться в зависимости от качества соединения, а также обработка аудиоданных в реальном времени на стороне клиента (например, очистка и восстановление полученного звука). Компанией RealNetworks был также разработан формат RealVideo (1997 г.), однако в Российском сегменте интернета он не получил сильного распространения.

У аудиоверсий форматов QuickTime (первый релиз 2 декабря 1991 г.) и Windows Media имеются особенности, связанные с потоковой передачей данных. Так, при кодировании файлов в формат Windows Media Audio (WMA) используется непосредственно операционная система, вследствие чего, при желании, файлы можно закодировать так, что открыть их смогут только определенные пользователи. Технология DRM (Digital Rights Management, или система управления правами на цифровые данные) позволяет поставщикам данных различного содержания шифровать файлы таким образом, чтобы открыть их можно было лишь при наличии специального ключа (вполне естественно, что эту технологию особенно пылко приветствуют представители музыкальной индустрии). Помимо Windows Media DRM существует и другая, немного отличная от нее система шифрования и дистрибуции под названием Liquid Audio, которая поддерживается и программой Windows Media Player, и программой RealPlayer.

С увеличением скорости доступа в интернет у пользователей появилась возможность организовать не только аудио, но и видео-трансляции. Однако первая трансляция была произведена американским телеканалом ABC ещё в 1994 г. Для приёма передач использовался клиент CU-SeeMe, разработанный в 1992 г. Однако клиент CU-SeeMe не стал популярным. По способу организации потока различают протоколы "последовательные" (Progressive Streaming) и "в реальном времени" (Real-time Streaming). Передачу последовательным способом организовать проще, поскольку видео загружается на жёсткий диск пользователя и воспроизводится уже с него. Для его передачи достаточно воспользоваться обычным вэб-сервером. При организации передачи данных в реальном времени необходим специальный потоковый сервер (Unreal Media Server, Adobe Flash Media Server и тп.). Для воспроизведения потокового видео сейчас наиболее популярны протоколы RTSP, Multicast, RTMP, а также P2P и ещё несколько менее популярных реализаций: 

  1. Дейтаграммные протоколы, такие как UDP (User Datagram Protocol), отправляют поток медиаинформации как поток отдельных маленьких пакетов. Протокол прост и эффективен, но в спецификации протокола нет гарантии доставки данных получателю. Это сильно затрудняет поиск и исправление получаемых данных принимающим информацию приложением. При потере данных поток может быть отключен.
  2. Протоколы RTSP (Real-Time Streaming Protocol), RTP (Real-time transport protocol) и RTCP (Real-Time Control Protocol) специально разрабатывались для передачи мультимедийной информации по сети. В протоколах предусмотрена возможность контролируемой передачи видеопотока. Последние два построены на основе UDP.
  3. Надежные протоколы, такие как TCP, гарантируют корректность получаемых данных клиентами потокового вещания. Однако передаваемая информация может стать неактуальной при большом количестве ошибок в пакете данных, что также может вызвать значительные задержки на время, затраченное на пересылку поврежденной информации.
  4. Протоколы Unicast отправляют отдельную копию данных каждому клиенту. Unicast подходит для большинства пользователей сети Интернет, но сильно затрудняет масштабирование сервера для бо́льшего количества клиентов. При широковещательной передаче одна копия данных передается всем клиентам сервера.
  5. Протоколы Multicast разработаны для снижения нагрузки с серверов при получении потокового мультимедиа большим количеством клиентов. Эти протоколы отсылают одну порцию данных целой группе клиентов. Одним из потенциальных недостатков групповой передачи данных является отсутствие возможности реализовать функцию "видео по запросу", а также невозможность управлять воспроизведением со стороны пользователя. Однако эта проблема может быть решена внедрением в сеть передачи данных кэширующих серверов и буферизирующего принимаемый поток программного обеспечения.
  6. Протокол RTMP (Real Time Messaging Protocol) разработан компанией Adobe и реализован в Adobe Flash Media Server. На данный момент это наиболее распространённый протокол. Он массово используется во встраиваемых в веб-страницы flash-плеерах.
  7. Протоколы P2P (Peer-to-peer) могут использоваться при распространении предварительно сохраненного мультимедиа контента между компьютерами. Это снимает нагрузку с сервера, однако сеть передачи данных между сервером и одним из клиентов становится узким местом данного варианта реализации потокового вещания информации.
Для организации потокового вещания необходим сервер. Наиболее популярными реализациями являются: Adobe Flash Media Server, Icecast и Red5.
Воспроизводить потоковое вещание могут практически все современные медиа-проигрыватели, однако наиболее часто используются встраиваемый в вэб-страницы flash-плеер и программа SopCast, позволяющая организовать передачу данных по протоколу P2P. Популярные программы QuickTime и Windows Media также имеют возможность воспроизведения потокового видео, но редко используются для этого. Также распространена универсальная программа с открытым исходным кодом VideoLAN, которая позволяет не только получать, но и создавать свои потоки данных.

Используемые источники:
  1. ru.wikipedia.org/wiki/Потоковое_мультимедиа
  2. webopedia.com/TERM/S/streaming.html
  3. en.wikipedia.org/wiki/RealAudio
  4. sapr.ru/Article.aspx?id=10935
Энциклопедический Фонд