Dash相关知识总结

Dash相关知识总结

1. DASH介绍

DASH,又叫MPEG DASH,DASH:Dynamic Adaptive Streaming over HTTP ,是一种在互联网上传送动态码率的Video Streaming技术,类似于苹果的HLS,DASH会通过media presentation description (MPD)将视频内容切片成一个很短的文件片段,每个切片都有多个不同的码率,DASH Client可以根据网络的情况选择一个码率进行播放,支持在不同码率之间无缝切换。

四个部分组成:

Part 1: Media presentation description and segment formats

Part 2: Conformance and reference software

Part 3: Implementation guidelines

Part 4: Segment encryption and authentication

DASH(Dynamic Adaptive Streaming over HTTP)即自适应流媒体传输,典型的系统框图如下 :

img

​ 简单概括来说,就是在服务器端提前存好同一内容的不同码率、不同分辨率的多个分片以及相应的描述文件MPD,客户端在播放时即可以根据自身性能以及网络环境选择最适宜的版本。

img

​ DASH内容准备提供不同码率的视频文件(使用不同的质量需求和网络环境),然后使用特定的分片方法, 将视频文件分片,然后分片传输到客户端进行播放。MPD文件时在视频文件进行分片时获得的视频本身的属性信息和视频分片信息。

2. Media Presentation Description (MPD)

​ MPD是分层数据模型。以一种XML文件表示,描述了视频的所有信息 。一个MPD包含一个或者多个Period。 每个Period都包含媒体组件,如视频组成 , 不同的编码器,音频的语言或者字幕等。这些组件都有确定的特性,如码率、帧率、音频通道、音频采样率等,这些在一个Period中不能改变。然而,客户端能够根据给定时段内可用的可用比特率,分辨率,编解码器等在一段Period内进行调整。

MPD model

​ 媒体组件都放置在AdaptationSets 中,每一个Period可以包含一个或者多个AdaptationSets。每个Period可以包含一个或多个AdaptationSets,它们可以对逻辑上属于一起的不同多媒体组件进行分组。 例如,具有相同编解码器,语言,分辨率,音频通道格式(例如,5.1,立体声)等的组件可以在相同的AdaptationSet内。该机制允许客户端排除掉一系列不满足要求的媒体内容。一个AdaptationSet中包括同一内容不同的可替换版本的表述,不同的分辨率,比特率等。虽然单个表示足以提供可播放的流,但是多个表示为客户提供了适应媒体流的可能性。 对其当前的网络条件和带宽要求,因此保证流畅的播放。

​ 每个Period可以也可以包含**Subset ** ,它可以限制AdaptationSet的组合和表达MPD生成者的意图。

MPD的切片

​ Representations 被分成多个Segments,使得在播放期间可以切换不同的表示。

  • 将视频在时域上进行切分

    将一段1080p,10s的视频切分成5种码率5个片段,每个片段2s的视频

    CUT

  • 可能的下载情况(由于网络状况等原因,可以下载不同分辨率,不同码率质量的视频),如下:

    image

MPD字段介绍

1)Period

一条完整的mpeg dash码流可能由一个或多个Period构成
每个Period代表某一个时间段
同一个Period内,意味着可用的媒体内容及其各个可用码率(Representation)不会发生变更。
直播情况下,“可能”需要周期地去服务器更新MPD文件,服务器可能会移除旧的已经过时的Period,或是添加新的Period。新的Period中可能会添加新的可用码率或去掉上一个Period中存在的某些码率(Representation)。

2)AdaptationSet

一个Period由一个或者多个Adaptationset组成。

Adaptationset由一组可供切换的不同码率的码流(Representation)组成,

这些码流中可能包含一个(ISO profile)或者多个(TS profile)media content components,

因为ISO profile的mp4或者fmp4 segment中通常只含有一个视频或者音频内容,

而TS profile中的TS segment同时含有视频和音频内容,当同时含有多个media component content时,每个被复用的media content component将被单独描述。

3)media content component:

一个media content component表示表示一个不同的音视频内容

比如不同语言的音轨属于不同的media content component,

而同一音轨的不同码率(mpeg dash中叫做Representation)属于相同的

4)media content component。

如果是TS profile,同一个码率可能包括多个media content components。

5)Representation

每个Adaptationset包含了一个或者多个Representations;
一个Representation包含一个或者多个media streams,每个media stream对应一个media content component。
为了适应不同的网络带宽,dash客户端可能会从一个Representation切换到另外一个Representation,如果不支持某个Representation的编码格式,在切换时可以忽略之。

6)Segment

每个Representation由一个或者多个segment组成 ;

每个Representation由一个或者多个segment组成,只由一个segment组成的形式不能应用于网络直播。

每个segment由一个对应的URL指定,也可能由相同的URL+不同的byte range指定。dash 客户端可以通过HTTP协议来获取URL(+byte range)对应的分片数据。

Representation的Segments一般都采用1个Init Segment+多个普通Segment的方式

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值