Адаптивная потоковая передача данных — это метод, используемый для потоковой передачи мультимедиа по компьютерным сетям .
В то время как в прошлом большинство технологий потоковой передачи видео или аудио использовали потоковые протоколы, такие как RTP с RTSP , современные адаптивные потоковые технологии основаны почти исключительно на HTTP [1] и предназначены для эффективной работы в крупных распределенных сетях HTTP.
Адаптивная потоковая передача битрейта работает путем определения полосы пропускания пользователя и мощности ЦП в реальном времени, соответствующим образом регулируя качество потока мультимедиа. [2] Для этого требуется использование кодировщика , который кодирует один исходный медиафайл (видео или аудио) с несколькими скоростями передачи битрейта . Клиент проигрывателя [3] переключается между потоковой передачей различных кодировок в зависимости от доступных ресурсов. [4] Это приводит к предоставлению очень малой буферизации , более быстрому времени запуска и хорошему опыту как для высокопроизводительных, так и для низкопроизводительных подключений. [5]
Более конкретно, адаптивная потоковая передача битрейта — это метод потоковой передачи видео по протоколу HTTP, при котором исходный контент кодируется с несколькими битрейтами. Каждый из потоков с разной битрейтом сегментируется на небольшие многосекундные части. [6] Размер сегмента может варьироваться в зависимости от конкретной реализации, но обычно он составляет от двух до десяти секунд. [4] [6] Сначала клиент загружает файл манифеста , который описывает доступные сегменты потока и их соответствующие битрейты. Во время запуска потока клиент обычно запрашивает сегменты из потока с самой низкой битрейтной скоростью. Если клиент обнаруживает, что пропускная способность сети больше, чем битрейт загруженного сегмента, то он запросит сегмент с более высокой битрейтной скоростью. Позже, если клиент обнаружит, что пропускная способность сети ухудшилась, он запросит сегмент с более низкой битрейтной скоростью. Алгоритм адаптивной битрейта (ABR) в клиенте выполняет ключевую функцию принятия решения о том, какие сегменты битрейта следует загрузить, на основе текущего состояния сети. Несколько типов алгоритмов ABR находятся в коммерческом использовании: алгоритмы, основанные на пропускной способности, используют пропускную способность, достигнутую в последних предыдущих загрузках, для принятия решений (например, правило пропускной способности в dash.js), алгоритмы, основанные на буфере, используют только текущий уровень буфера клиента (например, BOLA [7] в dash.js), а гибридные алгоритмы объединяют оба типа информации (например, DYNAMIC [8] в dash.js).
Дома постпроизводства , сети доставки контента и студии используют технологию адаптивного битрейта, чтобы предоставлять потребителям более качественное видео с меньшими затратами рабочей силы и ресурсов. Создание нескольких видеовыходов, особенно для потоковой передачи с адаптивным битрейтом, добавляет большую ценность для потребителей. [9] Если технология работает правильно, контент конечного пользователя или потребителя должен воспроизводиться без прерываний и потенциально оставаться незамеченным. Медиакомпании активно используют технологию адаптивного битрейта уже много лет, и это по сути стало стандартной практикой для поставщиков потокового вещания высокого класса; допуская небольшую буферизацию при потоковой передаче потоков высокого разрешения (начинается с низкого разрешения и поднимается).
Традиционная потоковая передача с адаптивным битрейтом, управляемая сервером, обеспечивает потребителям потокового мультимедиа наилучший возможный опыт, поскольку медиасервер автоматически адаптируется к любым изменениям в сети и условиях воспроизведения каждого пользователя. [10] Индустрия медиа и развлечений также получает выгоду от потоковой передачи с адаптивным битрейтом. По мере роста видеопространства сети доставки контента и поставщики видео могут предоставлять клиентам превосходные впечатления от просмотра. Технология адаптивного битрейта требует дополнительного кодирования , но упрощает общий рабочий процесс и создает лучшие результаты.
Технологии потоковой передачи адаптивного битрейта на основе HTTP дают дополнительные преимущества по сравнению с традиционной потоковой передачей адаптивного битрейта на основе сервера. Во-первых, поскольку потоковая технология построена поверх HTTP , в отличие от адаптивной потоковой передачи на основе RTP , пакеты не испытывают трудностей при прохождении через брандмауэр и устройства NAT . Во-вторых, поскольку потоковая передача HTTP управляется исключительно клиентом, вся логика адаптации находится на клиенте. Это снижает потребность в постоянных соединениях между сервером и клиентским приложением. Кроме того, серверу не требуется поддерживать информацию о состоянии сеанса на каждом клиенте, что повышает масштабируемость. Наконец, существующая инфраструктура доставки HTTP, такая как кэши HTTP и серверы, может быть легко принята. [11] [12] [13] [14]
Масштабируемая CDN используется для доставки потоковой передачи мультимедиа интернет-аудитории. CDN получает поток из источника на своем сервере Origin, затем реплицирует его на многие или все свои кэширующие серверы Edge . Конечный пользователь запрашивает поток и перенаправляется на «ближайший» сервер Edge. Это можно проверить с помощью libdash [15] и набора данных Distributed DASH (D-DASH) [16] , который имеет несколько зеркал в Европе, Азии и США. Использование адаптивной потоковой передачи на основе HTTP позволяет серверу Edge запускать простое программное обеспечение HTTP-сервера, стоимость лицензии которого дешева или бесплатна, что снижает стоимость лицензирования программного обеспечения по сравнению с дорогостоящими лицензиями на медиасерверы (например, Adobe Flash Media Streaming Server). Стоимость CDN для потоковой передачи мультимедиа по HTTP тогда аналогична стоимости CDN для кэширования веб-сайтов HTTP.
Адаптивная скорость передачи данных по HTTP была создана DVD Forum в группе WG1 Special Streaming в октябре 2002 года. Сопредседателями группы были Toshiba и Phoenix Technologies , в состав экспертной группы вошли Microsoft , Apple Computer , DTS Inc. , Warner Brothers , 20th Century Fox , Digital Deluxe, Disney , Macromedia и Akamai . [ сомнительно – обсудить ] [ нужна цитата ] Первоначально технология называлась DVDoverIP и была неотъемлемой частью книги DVD ENAV. [17] Концепция возникла из хранения секторов DVD TS MPEG-1 и MPEG-2 в небольших файлах размером 2 КБ, которые будут обслуживаться проигрывателем с помощью HTTP-сервера. Сегменты MPEG-1 обеспечивали поток с более низкой пропускной способностью, в то время как MPEG-2 обеспечивал поток с более высокой скоростью передачи данных. Исходная схема XML предоставляла простой список воспроизведения битрейтов, языков и URL-серверов. Первый рабочий прототип был представлен на DVD Forum компанией Phoenix Technologies в лаборатории Harman Kardon в Филлингене, Германия. [ необходима ссылка ]
Адаптивная потоковая передача данных была представлена Move Networks в 2006 году [18] и в настоящее время разрабатывается и используется Adobe Systems , Apple , Microsoft и Octoshape. [19] В октябре 2010 года Move Networks получила патент на адаптивную потоковую передачу данных (патент США номер 7818444). [20]
Dynamic Adaptive Streaming over HTTP (DASH), также известный как MPEG-DASH, является единственным адаптивным решением потоковой передачи на основе HTTP с высокой скоростью передачи данных, которое является международным стандартом [21] Технология MPEG-DASH была разработана в рамках MPEG . Работа над DASH началась в 2010 году и стала проектом международного стандарта в январе 2011 года и международным стандартом в ноябре 2011 года. [21] [22] [23] Стандарт MPEG-DASH был опубликован как ISO/IEC 23009-1:2012 в апреле 2012 года.
MPEG-DASH — это технология, связанная с Adobe Systems HTTP Dynamic Streaming, Apple Inc. HTTP Live Streaming (HLS) и Microsoft Smooth Streaming. [24] DASH основана на Adaptive HTTP Streaming (AHS) в 3GPP Release 9 и на HTTP Adaptive Streaming (HAS) в Open IPTV Forum Release 2. [25] В рамках сотрудничества с MPEG, 3GPP Release 10 принял DASH (с определенными кодеками и режимами работы) для использования в беспроводных сетях. [25]
Цель стандартизации адаптивного потокового решения — гарантировать рынку, что решение может работать универсально, в отличие от других решений, которые более специфичны для определенных поставщиков, таких как HLS от Apple, Smooth Streaming от Microsoft или HDS от Adobe.
Доступные реализации включают в себя проигрыватель MPEG-DASH на основе HTML5 bitdash [26], а также клиентскую библиотеку доступа DASH с открытым исходным кодом на основе C++ libdash компании bitmovin GmbH, [15] инструменты DASH Института информационных технологий (ITEC) в Университете Альпен-Адрия в Клагенфурте, [3] [27] мультимедийный фреймворк группы GPAC в Telecom ParisTech, [28] и проигрыватель dash.js [29] DASH-IF .
HTTP Live Streaming (HLS) — это протокол потоковой передачи мультимедиа на основе HTTP, реализованный Apple Inc. как часть QuickTime X и iOS . HLS поддерживает как прямой эфир, так и видео по запросу . Он работает, разбивая медиапотоки или файлы на короткие фрагменты (медиасегменты), которые хранятся в виде файлов MPEG-TS или фрагментированных файлов MP4 . Обычно это делается с несколькими битрейтами с помощью приложения сегментатора потоков или файлов, также известного как упаковщик. Одна из таких реализаций сегментатора предоставляется Apple. [30] Доступны дополнительные упаковщики, включая бесплатные/с открытым исходным кодом предложения, такие как Shaka Packager от Google [31] , а также различные коммерческие инструменты, такие как Unified Streaming. [32] Сегментатор также отвечает за создание набора файлов плейлистов в формате M3U8, которые описывают медиафрагменты. Каждый плейлист специфичен для заданного битрейта и содержит относительные или абсолютные URL-адреса фрагментов для этого битрейта. Затем клиент отвечает за запрос соответствующего плейлиста в зависимости от доступной пропускной способности.
HTTP Live Streaming — стандартная функция iPhone 3.0 и более новых версий. [33]
Apple представила свое решение на рассмотрение IETF в качестве информационного запроса на комментарии . [34] Оно было официально принято как RFC 8216. Существует ряд фирменных и открытых решений как для реализации сервера (сегментатора), так и для клиентского проигрывателя.
Потоки HLS можно идентифицировать по расширению формата URL-адреса плейлиста m3u8 или типу MIME application/vnd.apple.mpegurl. [35] Эти адаптивные потоки могут быть доступны во многих различных битрейтах, и клиентское устройство взаимодействует с сервером для получения наилучшего доступного битрейта, который может быть надежно доставлен.
Воспроизведение HLS поддерживается на многих платформах, включая Safari и собственные приложения на macOS / iOS, Microsoft Edge на Windows 10, ExoPlayer на Android и платформу Roku. Многие Smart TV также имеют собственную поддержку HLS. Воспроизведение HLS на других платформах, таких как Chrome / Firefox, обычно достигается с помощью реализации браузера / JavaScript-плеера. Доступно множество плееров с открытым исходным кодом и коммерческих плееров, включая hls.js, video.js http-streaming, BitMovin, JWPlayer, THEOplayer и т. д.
«HTTP Dynamic streaming — это процесс эффективной доставки потокового видео пользователям путем динамического переключения между различными потоками различного качества и размера во время воспроизведения. Это обеспечивает пользователям наилучшие возможности просмотра, которые могут поддерживать их пропускная способность и локальное компьютерное оборудование ( ЦП ). Другая важная цель динамической потоковой передачи — сделать этот процесс плавным и бесшовным для пользователей, так что если необходимо масштабирование или понижение качества потока, это будет плавным и почти незаметным переключением без прерывания непрерывного воспроизведения». [36]
Последние версии Flash Player и Flash Media Server поддерживают адаптивную потоковую передачу по традиционному протоколу RTMP , а также HTTP , аналогично решениям на основе HTTP от Apple и Microsoft, [37] Динамическая потоковая передача HTTP поддерживается в Flash Player 10.1 и более поздних версиях. [38] Преимущество потоковой передачи на основе HTTP заключается в том, что она не требует открытия каких-либо портов брандмауэра за пределами обычных портов, используемых веб-браузерами. Потоковая передача на основе HTTP также позволяет кэшировать фрагменты видео браузерами , прокси-серверами и CDN , что значительно снижает нагрузку на исходный сервер.
Smooth Streaming — это расширение IIS Media Services , которое обеспечивает адаптивную потоковую передачу мультимедиа клиентам по протоколу HTTP. [39] Спецификация формата основана на базовом формате медиафайлов ISO и стандартизирована Microsoft как Protected Interoperable File Format. [40] Microsoft активно участвует в усилиях организаций 3GPP , MPEG и DECE по стандартизации потоковой передачи HTTP с адаптивной скоростью передачи данных. Microsoft предоставляет комплекты разработки программного обеспечения Smooth Streaming Client для Silverlight и Windows Phone 7 , а также комплект Smooth Streaming Porting Kit, который можно использовать для других клиентских операционных систем, таких как Apple iOS, Android и Linux. [41] IIS Media Services 4.0, выпущенный в ноябре 2010 года, представил функцию, которая позволяет динамически переупаковывать видео Live Smooth Streaming H.264/AAC в формат Apple HTTP Adaptive Streaming и доставлять их на устройства iOS без необходимости повторного кодирования. Microsoft успешно продемонстрировала доставку как живого, так и по запросу 1080p HD видео с Smooth Streaming для клиентов Silverlight. В 2010 году Microsoft также сотрудничала с NVIDIA для демонстрации живого потокового 1080p стереоскопического 3D видео на ПК, оснащенных технологией NVIDIA 3D Vision . [42]
CMAF — это формат контейнера представления, используемый для доставки как HLS, так и MPEG-DASH. Таким образом, он предназначен для упрощения доставки потокового мультимедиа на основе HTTP. Он был предложен в 2016 году Apple и Microsoft и официально опубликован в 2018 году. [43]
QuavStreams Adaptive Streaming — это технология потоковой передачи мультимедиа, разработанная Quavlive. Сервер потоковой передачи — это HTTP-сервер, который имеет несколько версий каждого видео, закодированных с разными битрейтами и разрешениями. Сервер доставляет закодированные видео/аудиокадр, переключаясь с одного уровня на другой, в соответствии с текущей доступной полосой пропускания. Управление полностью основано на сервере, поэтому клиенту не нужны специальные дополнительные функции. Управление потоковой передачей использует теорию управления с обратной связью. [44] В настоящее время QuavStreams поддерживает кодеки H.264/MP3, мультиплексированные в контейнер FLV, и кодеки VP8/Vorbis, мультиплексированные в контейнер WEBM.
Uplynk обеспечивает потоковую передачу HD-видео с адаптивным битрейтом на несколько платформ, включая iOS, Android, Windows, Mac, Linux и Roku, в различных комбинациях браузеров, кодируя видео в облаке с использованием одного непатентованного адаптивного формата потоковой передачи. Вместо потоковой передачи и хранения нескольких форматов для разных платформ и устройств, Uplynk хранит и транслирует только один. Первой студией, использовавшей эту технологию для доставки, была Disney–ABC Television Group , которая использовала ее для кодирования видео для веб-приложений, мобильных устройств и планшетных потоковых приложений в приложениях ABC Player, ABC Family и Watch Disney, а также для прямых трансляций Watch Disney Channel, Watch Disney Junior и Watch Disney XD. [45] [46]
В последние годы преимущества алгоритмов самообучения в адаптивной потоковой передаче битрейта были исследованы в академических кругах. В то время как большинство первоначальных подходов к самообучению реализуются на стороне сервера [47] [48] [49] (например, выполнение контроля допуска с использованием обучения с подкреплением или искусственных нейронных сетей ), более поздние исследования сосредоточены на разработке самообучающихся клиентов HTTP Adaptive Streaming. В литературе было представлено несколько подходов с использованием алгоритма SARSA [50] или Q-learning [51] . Во всех этих подходах состояние клиента моделируется с использованием, среди прочего, информации о текущей воспринимаемой пропускной способности сети и уровне заполнения буфера. На основе этой информации самообучающийся клиент автономно решает, какой уровень качества выбрать для следующего видеосегмента. Процесс обучения управляется с использованием информации обратной связи, представляющей качество восприятия (QoE) (например, на основе уровня качества, количества переключений и количества зависаний видео). Кроме того, было показано, что многоагентное Q-обучение может применяться для улучшения справедливости QoE среди нескольких адаптивных потоковых клиентов. [52]
Технологии адаптивной скорости передачи данных на основе HTTP значительно сложнее в эксплуатации, чем традиционные потоковые технологии. Некоторые из задокументированных соображений включают такие вещи, как дополнительные затраты на хранение и кодирование, а также проблемы с поддержанием качества в глобальном масштабе. Также были обнаружены некоторые интересные динамики вокруг взаимодействий между сложной логикой адаптивной скорости передачи данных, конкурирующей со сложной логикой управления потоком TCP. [11] [53] [54] [55] [56]
Однако на практике эти критические замечания перевешиваются экономичностью и масштабируемостью доставки HTTP: в то время как потоковые решения без HTTP требуют масштабного развертывания специализированной инфраструктуры потоковых серверов, потоковая передача с адаптивной скоростью передачи на основе HTTP может использовать те же веб-серверы HTTP, которые используются для доставки всего остального контента через Интернет. [ необходима цитата ]
При отсутствии единого четко определенного или открытого стандарта для управления цифровыми правами , используемого в вышеуказанных методах, не существует 100% совместимого способа доставки ограниченного или чувствительного ко времени контента на любое устройство или проигрыватель. Это также оказывается проблемой для управления цифровыми правами, используемого любым потоковым протоколом.
Метод сегментации файлов на файлы меньшего размера, используемый некоторыми реализациями (например, HTTP Live Streaming ), может считаться ненужным из-за способности HTTP-клиентов запрашивать диапазоны байтов из одного файла видеоактива, который может иметь несколько видеодорожек с разной скоростью передачи данных, при этом в файле манифеста указывается только номер дорожки и скорость передачи данных. Однако этот подход позволяет обслуживать фрагменты любым простым HTTP-сервером и, следовательно, гарантирует совместимость с CDN . Реализации, использующие диапазоны байтов, такие как Microsoft Smooth Streaming, требуют выделенного HTTP-сервера, такого как IIS, для ответа на запросы фрагментов видеоактива.
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь )