http - HLS 和 MPEG-DASH 是否存在于 HTTP 消息正文中?

标签 http http-live-streaming mpeg-dash

数据包看起来像这样吗(我假设 HLS 和 MPEG-DASH 以相同的方式适合 HTTP,如果错误请纠正我)

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

或者像这样将 header 包含为 HTTP header ?

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

最佳答案

我不确定我是否完全清楚您的问题,但希望对 HLS 和 DASH 结构的解释会有所帮助。

HLS 和 DASH 都提供索引或 list 文件,其中包含有关视频或媒体流的音频、视频、字幕等流的信息。

播放器查看索引文件(本质上只是一个 XML 文件),并使用媒体流的 URL 下载然后播放媒体 - URL 可以是绝对的,也可以是相对于基本 URL 的。

视频流的信息通常包括每个视频片段的不同比特率流。这允许播放器从相关流中选择最适合设备和当前网络条件的下一个片段。

实际的视频和音频流本身通常是碎片化结构 - 基于 TS(MPEG 传输流)或碎片化 MP4 (fMP4) 的风格。

有很多示例 DASH list 文件可用,包括在撰写本文时来自 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 )

查看此 list 的详细信息:

enter image description here

关于http - HLS 和 MPEG-DASH 是否存在于 HTTP 消息正文中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53621375/

相关文章:

python - 如何将这些 header 添加到我的 python urllib opener?

http - 在获得响应之前发出多个请求

ios - 如何将 URL 文件 'Smooth streaming' 转换为 Apple HLs 格式?

android - 如何从服务器播放音频文件 Mp3

html - 如何在 Google Chrome 中加载 mpeg-dash 视频

c++ - HTTP 响应状态行最大大小

javascript - 通过 Angular http 请求发布文件

ffmpeg - 我正在使用 ffmpeg 在实时流上叠加图像。我如何根据屏幕的宽度进行缩放以使其完全适合

javascript - 尝试使用 MSE 播放 webm 时出错, block 未附加,视频停止

带有缩略图 block 的 FFMPEG Dash