Оптимизация потокового видео с помощью протокола DASH
3 мая 2023 г.Протокол DASH (Dynamic Adaptive Streaming over HTTP) – это все более популярная технология потоковой передачи видео, которая в последние годы выходит на первый план. Он предлагает гибкое и эффективное решение для доставки мультимедийного контента через Интернет, позволяя поставщикам контента оптимизировать доставку своего контента на широкий спектр устройств с различными сетевыми условиями.
:::информация Отказ от ответственности: эта статья была отредактирована для улучшения грамматики и ясности с использованием инструмента искусственного интеллекта для перефразирования.
:::
DASH был разработан Группой экспертов по движущимся изображениям (MPEG) для замены стандарта HTTP Live Streaming (HLS). Это очень универсальное и адаптивное решение для потоковой передачи видео, поскольку оно работает с любым видеокодеком, типом контейнера или сервером потоковой передачи и используется OTT.
Одной из самых сильных сторон DASH является его способность мгновенно приспосабливаться к изменяющимся сетевым условиям. Он делает это, разрезая видео на короткие фрагменты, часто от 2 до 10 секунд. Эти фрагменты кодируются с несколькими уровнями качества, чтобы клиент мог выбрать наиболее подходящий в зависимости от таких критериев, как пропускная способность, возможности устройства, размер экрана и личные предпочтения, тогда как ранее применялись некоторые концепции отслеживания пропускной способности, и OTT пытается достичь некоторых решений с помощью это.
DASH использует файл манифеста, обычно это файл XML. , чтобы описать доступные фрагменты видео и их качество. Файл манифеста может также включать метаданные, такие как скрытые титры, альтернативные звуковые дорожки и аудио- и видеокодеки. Клиентское приложение учитывает эти данные при выборе фрагментов для воспроизведения и при переключении между настройками качества.
Ключевым преимуществом DASH является то, что он работает с различными серверами потоковой передачи и сетями доставки контента (CDN). Распространение контента по многочисленным серверам и CDN улучшает доступность, масштабируемость и производительность для поставщиков контента. DASH является гибким и может использоваться как для прямой трансляции, так и для распространения видео по запросу благодаря поддержке расширенных функций, таких как шифрование, безопасность контента и управление цифровыми правами (DRM).
DASH поддерживается широким спектром устройств и платформ, таких как веб-браузеры, мобильные устройства, смарт-телевизоры и игровые приставки. Кроме того, он поддерживается большинством основных платформ потокового видео и сетей доставки контента, что делает его популярным вариантом как для небольших, так и для крупных приложений потокового видео.
Потенциальным недостатком DASH является его сложность, которая могут затруднить установку и настройку. Для достижения оптимальной производительности и взаимодействия с пользователем необходимо тщательное планирование и оптимизация. Тем не менее многие поставщики контента и потоковые платформы разработали инструменты и службы, облегчающие процесс внедрения DASH.
В заключение следует отметить, что протокол потоковой передачи DASH является очень гибким и универсальным решением для потоковой передачи видео, предлагая адаптацию в реальном времени к изменяющимся условиям сети, а также поддержку широкого спектра устройств и платформ.
Его открытый стандарт и поддержка нескольких серверов и CDN делают его популярным выбором для приложений любого размера, которые передают видео. Однако для достижения оптимальной производительности и взаимодействия с пользователем его сложность требует тщательного планирования и оптимизации.
Вот пример файла манифеста DASH в формате XML:
<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-main:2011">
<Period start="PT0S">
<AdaptationSet mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
<Representation bandwidth="540000" codecs="avc1.4d401f" height="360" width="640">
<SegmentTemplate media="$RepresentationID$/$Number$.mp4" initialization="$RepresentationID$/init.mp4" timescale="90000" duration="900000" startNumber="1" />
</Representation>
<Representation bandwidth="1080000" codecs="avc1.4d401f" height="540" width="960">
<SegmentTemplate media="$RepresentationID$/$Number$.mp4" initialization="$RepresentationID$/init.mp4" timescale="90000" duration="900000" startNumber="1" />
</Representation>
<Representation bandwidth="2160000" codecs="avc1.4d401f" height="720" width="1280">
<SegmentTemplate media="$RepresentationID$/$Number$.mp4" initialization="$RepresentationID$/init.mp4" timescale="90000" duration="900000" startNumber="1" />
</Representation>
</AdaptationSet>
<AdaptationSet mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
<Representation bandwidth="128000" codecs="mp4a.40.2" audioSamplingRate="44100">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
<SegmentTemplate media="$RepresentationID$/$Number$.m4a" initialization="$RepresentationID$/init.mp4" timescale="44100" duration="220500" startNumber="1" />
</Representation>
</AdaptationSet>
</Period>
</MPD>
В этом файле манифеста определены два разных набора модификаций; один для видео, а другой для аудио. Каждый адаптационный набор имеет по крайней мере одно, а часто и несколько представлений, каждое из которых имеет разную степень совершенства. Шаблон URL для получения отдельных видео- и аудиосегментов задается элементом SegmentTemplate. Кроме того, URL-адрес инициализации, указанный этим элементом, используется для доступа к сегменту инициализации.
Поддержка скрытых титров в DASH
Скрытые титры – это тип субтитров, основанный на тексте и синхронизированный с видеоконтентом. DASH может облегчить доставку скрытых субтитров. Существует множество различных протоколов, которые можно использовать для предоставления скрытых титров, включая WebVTT, TTML и CEA-608. Файл манифеста DASH может содержать дополнительные наборы AdaptationSet для различных дорожек скрытых субтитров. Каждый из этих наборов AdaptationSet может иметь собственный шаблон URL-адреса, который позволяет пользователям получать доступ к частям скрытых субтитров.
Иллюстрацию закрытого заголовка AdaptationSet можно увидеть, например, в файле манифеста DASH, представленном следующим фрагментом кода XML:
<AdaptationSet mimeType="application/ttml+xml" lang="en-US">
<Representation bandwidth="128000" codecs="ttml" id="cc1">
<SegmentTemplate media="cc1/$Number$.ttml" initialization="cc1/init.mp4" timescale="1000" duration="2000" startNumber="1"/>
</Representation>
</AdaptationSet>
Этот AdaptationSet описывает параметры для записи субтитров, использующей формат файла TTML и предназначенной для английского (США) языка. Что касается дорожки субтитров, пропускная способность, кодеки и шаблон раздела определяются элементом Представление.
Поддержка миниатюр в DASH:
Доставка уменьшенных изображений также поддерживается DASH. Эскизы изображений — это миниатюрные изображения для предварительного просмотра, которые могут быть представлены либо до, либо во время воспроизведения видео. У вас есть возможность предоставлять миниатюры в виде отдельных файлов изображений или в качестве составной части самих видеосегментов. Файл манифеста DASH может содержать дополнительные представления для различных дорожек миниатюр, каждая из которых имеет собственный шаблон URL для извлечения сегментов миниатюр.
Иллюстрацию миниатюрного представления в файле манифеста DASH можно увидеть, например, во фрагменте кода XML, представленном ниже:
<AdaptationSet mimeType="video/mp4" contentType="video" segmentAlignment="true" startWithSAP="1">
<Representation bandwidth="150000" codecs="avc1.42C015" id="thumb">
<SegmentTemplate media="thumb/$Number$.jpg" initialization="thumb/init.mp4" timescale="1000" duration="2000" startNumber="1"/>
</Representation>
</AdaptationSet>
Формат файла JPEG используется для компонента эскиза, указанного этим представлением. URL-адрес инициализации и шаблон URL-адреса сегмента эскиза задаются элементом SegmentTemplate. Шаблон URL-адреса сегмента эскиза используется для доступа к сегменту эскиза, а URL-адрес сегмента инициализации используется для доступа к сегменту инициализации.
DASH позволяет доставлять скрытые титры и миниатюры, которые могут улучшить общее впечатление от просмотра, а также предоставить дополнительный контекст и информацию, связанную с видеоконтентом. Файл манифеста DASH может содержать дополнительные AdaptationSets и представления для различных дорожек подписей и эскизов, каждая из которых может иметь собственный шаблон URL для доступа к соответствующим частям.
:::информация Изображение для этой статьи было создано с помощью Kadinsky v2.
Подсказка: проиллюстрируйте видеопоток.
:::
Оригинал