HLS и MPEG-DASH живут в теле сообщения HTTP? - PullRequest
0 голосов
/ 05 декабря 2018

Пакеты выглядят следующим образом (я предполагаю, что HLS и MPEG-DASH встраиваются в HTTP одинаково, исправьте меня, если не так)

<HTTP HEADERS>
</HTTP HEADERS>
<HTTP BODY>
    <HLS HEADERS>
    </HLS HEADERS>
    <HLS BODY>
    </HLS BODY>
</HTTP BODY>

или заголовки HTTP включены как заголовки HTTP?

<HTTP WITH HLS HEADERS>
</HTTP WITH HLSHEADERS>
<HTTP BODY>
    <HLS PAYLOAD>
    </HLS PAYLOAD>
</HTTP BODY>

1 Ответ

0 голосов
/ 07 декабря 2018

Я не уверен, что полностью ясен в вашем вопросе, но, надеюсь, объяснение структуры HLS и DASH поможет.

И HLS, и DASH предоставляют файл индекса или манифеста, который содержит информацию опотоки аудио, видео, субтитров и т. д. для потока видео или мультимедиа.

Проигрыватель просматривает индексный файл, который по сути является просто файлом XML, и использует URL-адреса для потоков мультимедиа для загрузки и последующего воспроизведения.мультимедиа - URL-адреса могут быть абсолютными или относительными к базовому URL-адресу.

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

Фактические видео- и аудиопотоки сами по себе обычно представляют собой фрагментированную структуру - либо TS (транспорт MPEGStream) или фрагмент фрагментированного MP4 (fMP4).

Существует множество примеров файлов манифеста DASH, включая этот, с сайта Mozilla на момент написания:

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="urn:mpeg:dash:schema:mpd:2011"
  xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd"
  type="static"
  mediaPresentationDuration="PT654S"
  minBufferTime="PT2S"
  profiles="urn:mpeg:dash:profile:isoff-on-demand:2011">

  <BaseURL>http://example.com/ondemand/</BaseURL>
  <Period>
    <!-- English Audio -->
    <AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.5" lang="en" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
      <Representation id="1" bandwidth="64000">
        <BaseURL>ElephantsDream_AAC48K_064.mp4.dash</BaseURL>
      </Representation>
    </AdaptationSet>
    <!-- Video -->
    <AdaptationSet mimeType="video/mp4" codecs="avc1.42401E" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
      <Representation id="2" bandwidth="100000" width="480" height="360">
        <BaseURL>ElephantsDream_H264BPL30_0100.264.dash</BaseURL>
      </Representation>
      <Representation id="3" bandwidth="175000" width="480" height="360">
        <BaseURL>ElephantsDream_H264BPL30_0175.264.dash</BaseURL>
      </Representation>
      <Representation id="4" bandwidth="250000" width="480" height="360">
        <BaseURL>ElephantsDream_H264BPL30_0250.264.dash</BaseURL>
      </Representation>
      <Representation id="5" bandwidth="500000" width="480" height="360">
        <BaseURL>ElephantsDream_H264BPL30_0500.264.dash</BaseURL>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>

(https://developer.mozilla.org/en-US/docs/Web/Apps/Fundamentals/Audio_and_video_delivery/Setting_up_adaptive_streaming_media_sources#MPEG-DASH_Encoding)

Глядя на детали этого манифеста:

enter image description here

...